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:
Os tópicos a serem estudados (e nos quais as avaliações estarão baseadas) são aqueles que constam no índice desse livro. O aproveitamento do curso será avaliado por 2 ou 3 provas (idênticas para todas as turmas, aplicadas simultaneamente) e alguns exercícios programas. À turma do Cursão (C), serão oferecidos exercícios programas diferenciados e alguns tópicos extras. O aluno do Cursão não é obrigado a seguir a ementa diferenciada. Pode, se preferir, fazer os programas comuns às outras turmas. Lembro, uma vez mais, que as provas serão as mesmas, baseadas no livro citado acima. Os alunos que optarem por seguir a ementa coordenada devem, contudo, fazer a prova em sua turma original (C). A correção das provas também será coordenada. Sugere-se aos que não tenham interesse na ementa diferenciada que assistam as aulas em alguma das turmas coordenadas.

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:
disponível on-line aqui. Uma outra ótima fonte de informações (e códigos muito bons) é a GNU Scientific Library (GSL). Creio que seja imperativo citar também a obra prima
em qualquer curso que envolva computação. É uma fonte constante de inspiração.

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


Para finalizar, deixo alguns exemplos de erros (e tragédias) devido a problemas computacionais:
  1. 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.
  2. Collection of Software Bugs, da webpage do Prof. T. Huckle.
  3. Software Horror Stories, da webpage do Prof. N. Dershowitz. (Notem que a estória da sonda Mariner 1 é, provavelmente, mais uma lenda urbana).
Este Post marca o renascimento deste Blog, que foi reorganizado. Os posts antigos estão agora arquivados, os respectivos links estão na coluna à esquerda. Em princípio, não será permitido comentários aqui. Os comentários são incentivados, mas no nosso Fórum. Há um procedimento de inscrição. Os interessados ainda não inscritos devem seguí-lo e se identificarem de maneira inequívoca.

Sigam-me os bons!

This page is powered by Blogger. Isn't yours?