Tratamento Numérico de Equações Diferenciais 2020
Programação
-
MAP5725 - Tratamento numérico de equações diferenciais
De 06/01 a 14/02, de segundas às quintas-feiras das 8h às 10h, sala 144-B, IME-USP.
.
Professor Alexandre Roma
roma@ime.usp.br
Atendimento regular às segundas-feiras, 11-12h, Sala 288-A, ou sob demanda.
.
Monitor Genilson S. de Lima
genilson@ime.usp.br
Aulas de exercícios: quartas-feiras, 8-10h, Sala 144-B.
Atendimento para dúvidas: quintas-feiras, 11h-12h, Sala 169-B.
.
PRÉ-REQUISITOS: pressupõe-se que o aluno saiba programar em alguma linguagem de alto nível (Python, C/C++, Fortran ou Scilab) aprendida numa disciplina introdutória de programação científica e que tenha cursado ao menso duas disciplinas de cálculo diferencial e integral. Alguma intimidade com a teoria de equações diferenciais ordináriass é desejável mas não é essencial. Exemplos comuputacionais serão dados com frequência mormente em Python ou Scilab.
AVALIAÇÃO
Frequência mínima de 70% nas aulas (lista de presença). Duas provas: P1 (30/01) e P2 (13/02). Tarefas computacionais (TCi, i=1,2 e 3 ou 4) a serem devolvidas em uma semana, em geral às terças-feiras por upload no paca até 23:50h. ATENÇÃO: haverá desconto de 1.0 ponto por dia de atraso, sem fracionamento. Cálculo de M, a média numérica:
M=(P1+P2+TC)/3, onde TC é a média aritmética das tarefas computacionais.
Média lançada: A SE 8.9<M, B SE 7.9<M<9.0, C SE 4.9<M<8.0 e R SE 0.0<M<5.0.
.
P1 - esboço de solução (0.5 de bônus na nota da prova se encontrar e corrigir erros).
SUPLEMENTO TEÓRICO | LEITURAS SUGERIDAS
- Equações de Lotka-Volterra (modelos predador-presa): [01] [02] [03] [-]
- Burden and Faires, Numerical Analysis, 2010. Capítulo 5.
.
MODELO DE RELATÓRIO DE ENTREGA | PROGRAMAS-EXEMPLO
- Programa-exemplo #1: em Python, implementa métodos de um passo explícitos com parte gráfica.
- Programa-exemplo #2: em Python, implementa testes de convergência numérica baseado em tabelas de erros absolutos (e em diferenças relativas entre soluções com passos de integração sucessivamente menores).
- euler-implicito-2d.py: Um exemplo com método de um passo IMPLÍCITO usando python.
- relatorio-latex.zip: Um exemplo com relatório usando latex.
- sugestoes-entregas.txt: Sugestões para os relatórios e programas a serem entregues.
.
PLANILHA COM AS NOTAS
A planilha com as notas provisórias pode ser acessada no link a seguir:
.
TAREFAS COMPUTACIONAIS E ATALHOS PARA SUBIR
-
Fórum
-
Fórum
Discussão mediada de tópicos da disciplina.
-
Faça o seguinte:
- Escolha um modelo matemático escalar (apenas uma variável de estado) que tenha solução exata conhecida.Você vai resolvê-lo numericamente e usar a solução exata para calcular o erro global absoluto em um instante de tempo, por exemplo, t=T (instante de tempo final).
- Escolha ao menos 4 métodos numéricos de um passo explícitos.
- Para cada método, resolva o modelo do item 1 utilizando n=16*2^{m} pontos de discretização no domínio para m=1,2,3...M (diremos "No m-ésimo caso o erro foi..." e faremos um total de M casos para cada método - você escolhe um M "satisfatório").
- Calcule o erro absoluto no instante de tempo escolhido anteriormente e calcule quantas vezes ele é maior com relação ao caso anterior (isto é, calcule a razãos entre erros absolutos de casos sucessivos, e_{m}/e_{m+1}).
- Comente os resultados.
Você deve também, para cada método, traçar a solução exata (linha contínua preta) e algumas soluções numéricas obtidas para alguns m's e notar que conforme a quantidade de pontos aumenta (isto é, h diminui) as soluções numéricas convergem para a exata. Este processo pode ser usado para dizermos se o passo de integração é suficientemente "pequeno" ou não (grosseiramente falando, ele será "pequeno" quando aproximações numéricas obtidas com passos sucessivamente menores se sobrepuserem no gráfico).
ATENÇÃO: se entregue no dia, a tarefa tem nota de 0 a dez. Um ponto será descontado por cada dia de atrazo (sem fracionamento) até no máximo 5 dias em atraso. Bônus de um ponto será atribuído se você exceder as expectativas (e.g. vários métodos a mais, análises mais sofisticadas, relatórios muito melhores, dificuldade destacada do modelo (e.g. multidimensional), ...). Máximo um ponto de bônus.
-
ENUNCIADO: tarefa2.pdf
O objetivo dessa tarefa é implementar alguns métodos de passo simples para um sistema de equações e comparar a estabilidade absoluta em cada caso.
Desconto de 1.0 ponto por dia de atraso (sem fracionamento e até um máximo de 5 dias de atraso). Bônus de 1.0 ponto por exceder as expectativas.
-
Enunciado: tarefa3.pdf
O objetivo dessa tarefa é utilizar alguns algoritmos com controle automático do tamanho do passo.
-
Enunciado: tarefa4.pdf
Essa tarefa tem alguns testes usando métodos de passo múltiplo.
-
Roma et al.: Notas de Aula, Capítulo 1.
Para facilitar o entendimento, sugiro trabalhar nos exercícios resolvidos e propostos nesse material.
Tarefa Computacional 1 (TC1): enunciado e atalho para subir em breve.
-
Roma et al., Notas de Aula, Capítulo 2 (pode ler nesta versão o parágrafo 2.5.3)
Sugiro resolver exercícios resolvidos e propostos no capítulo. Veja também o livro do Burden para suplementar os exercícios.
.
SUPLEMENTO
-
Roma et al., Notas de aula em elaboração, Capítulo 3.
Refaça exercícios resolvidos e resolva os exercícios propostos. Veja também o Capítulo 5 do Burden.
-
Roma et al., Notas de aula em elaboração, Capítulo 4.
Refaça os exercícios resolvidos e resolva os exercícios propostos. Veja também o Capítulo 5 do Burden para mais exercícios e outros aspectos do conteúdo.
.
SUPLEMENTO:
- Ilustração do comportamento de estabilidade (ou de não estabilidade): Prof. Luke Olson | Python code
-
- Burden, seções 5 e 6, pp. 302-321 (c.f. topo da página da disciplina).
- Lambert, Capítulo 2, pp. 11-43.
-
Notas de aula, CAP6.
-
Notas de aula, CAP7.
ESTUDO DIRIGIDO PARA CAPS. 6 & 7 (notas de aula):
CAP6: exercícios 6.6-6.8, 6.10-6.11 | exemplos 6.1-6.3, pp.92-94 | leia todos os resolvidos pp.11-121
CAP7: exercício 7.4 p.134 (use a solução exata como inicialização) e 7.5 p.135 | leia todos os ressolvidos pp.135-...
-
-