Computação Científica destrinchada

Eu acabei de fechar meu período do mestrado e uma das matérias mais complicadas em termos de cálculos foi Computação Científica (COC757), ministradas pelos professores Breno Jacob, Álvaro Coutinho e Danilo Machado. A matéria aborda temas de álgebra linear aplicados a computação científica, tais como:

- aritmética de ponto flutuante
- overflow e underflow
- análises de sensibilidade e condicionamento
- sistema de equações lineares
- eliminação de Gauss e fatoração LU
- eliminação de Gauss-Jordan
- método dos mínimos quadrados
- fatorização QR
- transformação Householder
- rotação de Givens
- ortogonalização de Gram-Schmidt
- cálculo de autovalores e autovetores
- polinômio característico
- método de Jacobi
- iteração QR
- método de potência e método de iteração inversa
- iteração com coeficiente de Rayleigh
- método de Lanczos
- equações não lineares
- método de Newton
- método da secante

Os professores decidiram usar o livro Scientific Computing: An Introductory Survey, de Michael T. Heath (ISBN 9780072399103), que é bem completo e tem um site com notas de aula e exercícios interativos.

Apesar do livro ter uma grande quantidade de material extra no site, eu tentei buscar na internet material para complementar meu estudo e devo reconhecer que tive bastante dificuldade para achar bons sites ou boas explicações e demonstrações.

Isso me inspirou a listar nesse post alguns arquivos, códigos, provas antigas e sites que me ajudaram a passar nessa matéria e aprender a utilidade desses métodos.


- Exercícios em Matlab - Householder

- Exercícios em Matlab - Householder

- Apostila sobre Fatoração LU

- Exercícios em Matlab - Método de Newton

- Exercícios em Matlab - Polinômio característico

- Exercícios em Matlab - Método de potência

- Exercícios em Matlab - Método de potência inverso com shift

- Exercícios em Matlab - Método de potência inverso

- Exercícios em Matlab - Rayleigh

- Livro de Álgebra Linear com exercícios e resoluções

- Implementação do método QR em Matlab

- Implementação do método de Lanczos em Matlab

- Capítulo 9 de um ótimo livro falando sobre autovalores e autovetores

- Listagem de provas e suas respostas (Illinois Institute of Technology)

- Povas e Gabaritos de Álgebra Linear 1 da PUCRIO

- Prova antiga COPPE - Parte 1

- Prova antiga COPPE - Parte 2


Eu ainda vou publicar aqui nossas listas desse período quando tiver tempo.

Gostaria de agradecer aos professores e aos colegas de disciplina, que ajudaram a compilar esse material que foi fundamental para todos nós.

Ciência 2.0 é uma experiência válida?

A edição americana de abril de 2008 da Scientific American trouxe um artigo bem interessante entitulado "Science 2.0 -- Is Open Access Science the Future?" (algo como Ciência 2.0 -- A ciência do acesso público será o futuro?). Esse artigo é uma continuação natural do artigo "Science 2.0: Great New Tool, or Great Risk?" (Ciência 2.0: Grande ferramenta ou grande risco?) da edição de janeiro e ambos discutem como a web 2.0 pode impactar a forma como fazemos ciência na nossa sociedade.

Se formos parar para pensar, a divulgação dos avanços científicos foi a parte que menos mudou na ciência até hoje. A séculos que temos pessoas isoladas em seus laboratórios, escondendo o trabalho uma das outras, aguardando a liberação de verbas ou a aceitação de seu artigo numa publicação para tornar público o grande avanço que está fechado a sete chaves. Quem trabalha como ciência sabe que até hoje ainda é assim, com a diferença que os artigos que eram feitos à pena, passaram a serem feitos a caneta, a serem datilografados e hoje são enviados em PDF atachado num email. Só isso mudou.

A Ciência 2.0 é, na prática, uma tentativa de trazer ao conhecimento científico as ferramentas colaborativas da web 2.0. Eu mesmo já comecei a experimentar um pouco disso num projeto que participei aqui na UFRJ. Eu e mais outra pessoa estávamos desenvolvendo um sistema de meteorologia que continha várias etapas e uma tarefa minha dependia de uma tarefa da outra pessoa e vice versa. Tentamos fazer por email uma espécie de checklist ("Já fiz minha parte, é sua vez","Já pode fazer isso", "Estou aguardando aquilo"...) mas foi muito pouco prático. Acabamos acelerando o trabalho criando uma planilha simples no Google Docs, onde separaramos as tarefas entre os participantes e, a medida que a tarefa era sendo concluída, ela ficava em vermelho. Habilitamos a planilha para ser editada pelos participantes e visualizada (sem edição) por nossos chefes. Desse jeito nos organizamos e ainda mostramos serviço.

Esse é um exemplo muito simples perto do que está sendo proposto. O artigo cita comunidades científicas que usam ferramentas colaborativas como wiki para desenvolvimento de pesquisa. Na área de meteorologia, um exemplo muito bom é o do OpenGrads. Sua proposta se baseia exatamente na Ciência 2.0 colaborativa para fazer um visualizador de dados que atenda as reais necessidades do publico alvo, melhorando o GrADS. Já escrevemos um post sobre esse projeto aqui no blog, entitulado OpenGrADS: uma nova versão do GrADS com grandes melhorias.

Outro ponto abrodado nos dois artigos é a chamada Blogophobia, uma aversão ao uso de blogs para manter e difundir a atualização profissional. Esse blog mesmo é um exemplo de como essa nova mídia pode ser interessante. Desde minha última busca no Google, esse é o único blog em português brasileiro a tratar de meteorologia operacional e tendências na área. Todos os outros ou falam de nuvens ou de meio ambiente. O mais próximo é o blog do pessoal da MetSul, que comenta quase em tempo real a previsão do tempo para o Sul do Brasil.

Esse texto da Scientific American é leitura obrigatória para aqueles que querem entender como o mundo de hoje, com seus códigos livres e sistemas colaborativos, pode transformar a forma como fazemos ciência.

Ou não.