Sábado, 6 de Janeiro de 2007
Cálculo Numérico 2007
Caras e caros,
em março começamos o curso. Será, basicamente, uma introdução aos algorítmos numéricos fundamentais para a Computação Científica (lembrem-se que IMECC = Instituto de Matemática, Estatística e Computação Científica). Alguem pode estar perguntando: ora, mas o que vem a ser exatamente Computação Científica? A grosso modo, são as técnicas e estratégias computacionais voltadas à solução de problemas científicos, grande parte dos quais são de natureza numérica. Como vocês logo verão, para se atacar numericamente com propriedade um dado problema, devemos, primeiro, resolvê-lo, ou, pelo menos, ter um bom grau de conhecimento e domínio de seus detalhes. Por lo tanto, as estratégias computacionais voltadas à solução de problemas citadas acima se confundem com as próprias estratégias para a solução de problemas, o que faz com que a chamada Computação Científica esteja frequentemente tão associada à area do problema em questão que é quase impossível identificar exatamente onde termina, por exemplo, a Física dos fulerenos (veja o Post Alquimia Virtual) e começa a Computação Científica necessária para descrevê-los, exíbi-los, etc. O estudo das estratégias para a solução de um dado problema, científico ou não, pertence á area chamada Heurística. Teremos pouco tempo para discutir esses tópicos, mas os interessados devem consultar a clássica e profundamente influente obra: How to solve it, de G. Polya.
Voltando aos aspectos mais prosaicos, o curso, apesar de ter uma das turmas (C, a nossa) reservada para o Cursão, será coordenado. A ementa com todos os dados relevantes deve(ria), com boa probabilidade, ficar pronta antes do início das aulas. Será, obviamente, divulgada neste Blog imediatamente, no link correspondente na coluna à esquerda. Contudo, baseado na história desta disciplina, posso adiantar que a referência central será, provavelmente, o livro:
Ementa diferenciada
Nossa turma terá um curso voltado a aplicações científicas. Apesar de não ter nada em contra a pacotes de análise numérica, nada tenho a favor. Meus alunos deverão programar seus algorítmos. Creio que esta é única maneira do estudante realmente entender as sutilezas envolvidas na elaboração de algorítmos numéricos/científicos. Os programas podem ser feitos em FORTRAN ou C, porém, haverá suporte apenas à linguagem C. (C puro, e não suas versões turbinadas cheias de "+ " e outras insígneas). Como guia para a linguagem C, sugere-se o Vade meCum dos Profs. Julio Stern e Routo Terada, da USP. Todos os pontos extras que serão tratados no curso estão muito bem descritos no texto:
O curso estará pautado pelos Exercícios Programas (EP). O número exato de EPs será decidido em breve, assim que a ementa do curso coordenado esteja pronta. Creio, porém que serão dois EPs por mês, o primeiro será divulgado ainda antes das aulas. São problemas de dificuldade média ou elevada e que podem ser feitos em grupos. Acho que todos já me conhecem, mas se há alguma dúvida, gostaria de relembrá-los do comportamento que se espera dos alunos do Cursão, muito bem resumido na essência do Código de Honra do Caltech:
Para finalizar, deixo alguns exemplos de erros (e tragédias) devido a problemas computacionais:
em março começamos o curso. Será, basicamente, uma introdução aos algorítmos numéricos fundamentais para a Computação Científica (lembrem-se que IMECC = Instituto de Matemática, Estatística e Computação Científica). Alguem pode estar perguntando: ora, mas o que vem a ser exatamente Computação Científica? A grosso modo, são as técnicas e estratégias computacionais voltadas à solução de problemas científicos, grande parte dos quais são de natureza numérica. Como vocês logo verão, para se atacar numericamente com propriedade um dado problema, devemos, primeiro, resolvê-lo, ou, pelo menos, ter um bom grau de conhecimento e domínio de seus detalhes. Por lo tanto, as estratégias computacionais voltadas à solução de problemas citadas acima se confundem com as próprias estratégias para a solução de problemas, o que faz com que a chamada Computação Científica esteja frequentemente tão associada à area do problema em questão que é quase impossível identificar exatamente onde termina, por exemplo, a Física dos fulerenos (veja o Post Alquimia Virtual) e começa a Computação Científica necessária para descrevê-los, exíbi-los, etc. O estudo das estratégias para a solução de um dado problema, científico ou não, pertence á area chamada Heurística. Teremos pouco tempo para discutir esses tópicos, mas os interessados devem consultar a clássica e profundamente influente obra: How to solve it, de G. Polya.
Voltando aos aspectos mais prosaicos, o curso, apesar de ter uma das turmas (C, a nossa) reservada para o Cursão, será coordenado. A ementa com todos os dados relevantes deve(ria), com boa probabilidade, ficar pronta antes do início das aulas. Será, obviamente, divulgada neste Blog imediatamente, no link correspondente na coluna à esquerda. Contudo, baseado na história desta disciplina, posso adiantar que a referência central será, provavelmente, o livro:
- Cálculo Numérico: Aspectos Teóricos e Computacionais, de Márcia A.G. Ruggiero e Vera Lúcia da Rocha Lopes.
Ementa diferenciada
Nossa turma terá um curso voltado a aplicações científicas. Apesar de não ter nada em contra a pacotes de análise numérica, nada tenho a favor. Meus alunos deverão programar seus algorítmos. Creio que esta é única maneira do estudante realmente entender as sutilezas envolvidas na elaboração de algorítmos numéricos/científicos. Os programas podem ser feitos em FORTRAN ou C, porém, haverá suporte apenas à linguagem C. (C puro, e não suas versões turbinadas cheias de "+ " e outras insígneas). Como guia para a linguagem C, sugere-se o Vade meCum dos Profs. Julio Stern e Routo Terada, da USP. Todos os pontos extras que serão tratados no curso estão muito bem descritos no texto:
- Numerical Recipes: The art of scientific computing, de W. Press, S. Teukolsky, W. Vetterling and B. Flannery,
- The art of Computer Programming, 3 volumes, do legendário D.E. Knuth,
O curso estará pautado pelos Exercícios Programas (EP). O número exato de EPs será decidido em breve, assim que a ementa do curso coordenado esteja pronta. Creio, porém que serão dois EPs por mês, o primeiro será divulgado ainda antes das aulas. São problemas de dificuldade média ou elevada e que podem ser feitos em grupos. Acho que todos já me conhecem, mas se há alguma dúvida, gostaria de relembrá-los do comportamento que se espera dos alunos do Cursão, muito bem resumido na essência do Código de Honra do Caltech:
Never take unfair advantage of any other
member of the community
member of the community
Para finalizar, deixo alguns exemplos de erros (e tragédias) devido a problemas computacionais:
- Some disasters attributable to bad numerical computing (Falha do sistema de mísseis Patriot, Explosão do Ariane 5, Naufrágio da plataforma Sleipner A), da webpage do Prof. D.N. Arnold.
- Collection of Software Bugs, da webpage do Prof. T. Huckle.
- Software Horror Stories, da webpage do Prof. N. Dershowitz. (Notem que a estória da sonda Mariner 1 é, provavelmente, mais uma lenda urbana).