Programação

  • Página Inicial: Informações Gerais | Suplementos

    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.

    .

    EMENTA (janus)

    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

    1. Equações de Lotka-Volterra (modelos predador-presa): [01]  [02] [03] [-]
    2. Burden and Faires, Numerical Analysis, 2010. Capítulo 5.

    .

     MODELO DE RELATÓRIO DE ENTREGA  |  PROGRAMAS-EXEMPLO

    1. Programa-exemplo #1: em Python, implementa métodos de um passo explícitos com parte gráfica.
    2. 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).
    3. euler-implicito-2d.py: Um exemplo com método de um passo IMPLÍCITO usando python.
    4. relatorio-latex.zip: Um exemplo com relatório usando latex.
    5. 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:

    Notas-Tarefas-fev-11.pdf

    .

    TAREFAS COMPUTACIONAIS E ATALHOS PARA SUBIR

    • Discussão mediada de tópicos da disciplina.

    • Faça o seguinte:

      1. 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).
      2. Escolha ao menos 4 métodos numéricos de um passo explícitos.
      3. 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").
      4. 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}).
      5. 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. 

  • 1. Problema de Cauchy

    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.

  • 2. Métodos de passo único (ou de um passo)

    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

  • 3. Métodos de passo único de altas ordens | Runge-Kuttas explícitos

    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.

  • 4. Estabilidade absoluta dos métods de passo único

    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:

    1. Ilustração do comportamento de estabilidade (ou de não estabilidade):  Prof. Luke Olson  |  Python code

  • 5. Métodos lineares de passo múltiplo

    1. Burden, seções 5 e 6, pp. 302-321 (c.f. topo da página da disciplina).
    2. Lambert, Capítulo 2, pp. 11-43.
  • 6. Zero estabilidade

    Notas de aula, CAP6.

  • 7. Métodos preditores-corretores

    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-...

  • Tópico 8

  • Tópico 9