/Disciplina-metodos-computacionais

Material utilizado na disciplina ''Métodos computacionais aplicados à Geofísica - MCOM'', que é ministrada no programa de pós-graduação em geofísica do Observatório Nacional

Primary LanguageJupyter Notebook

Métodos computacionais aplicados à Geofísica - MCOM

Disciplina oferecida no [2o trimestre] (http://www.on.br/conteudo/dppg_e_iniciacao/dppg/neweb_geo/conteudo/2trim2016-atualizado.pdf) do programa de pós-graduação em geofísica do Observatório Nacional - MCTI

Responsável: Vanderlei C. Oliveira Jr.

Como as coisas estão organizadas aqui

O gif acima foi só para chamar a sua atenção. O importante vem logo abaixo.

Esta página é um repositório no GitHub. Mas que raio é isso? Pois é, muita gente ao redor do mundo tem utilizado o Git e o GitHub para fazer colaborações em suas pesquisas, divulgar a pesquisa, divulgar o material desenvolvido em disciplinas, palestras, seminários, etc. AO LONGO DESTE CURSO, NÃO SERÁ COBRADO O CONHECIMENTO SOBRE Git OU GitHub. Mas, como conhecimento nunca é demais, abaixo segue uma lista de links úteis sobre Git e GitHub. Para quem tiver interesse, eu sugiro que os links sejam acessados na ordem.

Beleza, é possível que as informações acima tenham sido completamente inúteis para este curso. Sendo assim, vamos agilizar um pouco as coisas, afinal, você não quer ficar lendo um monte de baboseiras, tal como estas duas últimas frases que você acabou de ler :P Pois bem, a ideia é que você utilize este repositório apenas como uma página que contém todo o material do curso. Dessa forma, eu coloquei logo abaixo uma figura da parte superior desta página. Isso mesmo, uma figura da parte superior desta página. O objetivo é apontar o que é útil pra você no meio desse monte de coisa. Eu optei por fazer assim porque, no início, o GitHub é meio assustador. Eu coloquei números para identificar os pontos importantes e, logo abaixo da imagem, os pontos são descritos.

  1. Disciplina-metodos-computacionais é o nome deste repositório no GitHub

  2. birocoles é o meu nome no GitHub

  3. Arquivo onde está escrito isso que você está lendo agora. O GitHub se encarrega de deixar as coisas bonitas. Se quiser saber mais, a notação utilizada para escrever estas coisas é o Markdown.

  4. ISSO É IMPORTANTE! Esta pasta contém os códigos a serem utilizados neste curso. No item Visualização online dos Jupyter Notebooks, descrito nesta página, há uma descrição de como acessar o conteúdo desta pasta.

Pronto, só isso. Agora, leia o conteúdo abaixo, com atenção. Há várias informações úteis sobre a disciplina.

Tópicos abordados durante a disciplina

No diretório Content há uma descrição breve sobre os ítens listados abaixo .

  • First steps in Python

  • Topics of linear algebra

  • Special matrices

  • Numerical solution of linear systems

  • Numerical solution of non-linear systems

  • Interpolation

  • Numerical solution of differential equations

  • Numerical integration

  • Transformations

Recommended bibliography

  • Kinzelbach, W. Groundwater modelling: An introduction with sample programs in BASIC, Elsevler, 1986

  • Press, W. H., Teukolsky, S. A, Vetterling, W. T. e Flannery, B. P. Numerical recipes in C: The art of scientific computing, second edition, Cambridge University Press, 1992

  • Horn, R. A. and Johnson, C. R. Topics in matrix analysis, Cambridge University Press, 1994

  • Lapidus, L. and Pinder, G. F. Numerical solution of partial differential equations in science and engineering, John Wiley & Sons, Inc., 1999

  • Kelley, C. T. Iterative methods for optimization, SIAM, 1999, versão pdf

  • Boyd, S. and Vandenberghe, L. Convex optimization, Cambridge University Press, 2004

  • Kreyszig, E. Advanced engineering mathematics, 9th edition, John Wiley & Sons, Inc., 2006

  • Golub, G. H. and Van Loan, C. F. Matrix computations, 4th edition, Johns Hopkins University Press, 2013

  • Papers

P.S.: This list may be updated along the course.

Useful links

A linguagem Python

Diferentemente de C ou Fortran, a linguagem Python é interpretada. Isso signififca que o código não precisa ser previamente compilado e os comandos são executados imediatamente. De acordo com a Software Carpentry, quando estamos programando, o tempo total necessário para obtermos a solução desejada é determinado por duas coisas: o tempo gasto por você para desenvolver o código e o tempo gasto pelo computador para rodar o código. Estes fatores devem ser levados em consideração no momento da escolha de uma linguagem de programação. Para fins acadêmicos de pesquisa e ensino, a linguagem Python oferece algumas vantagens, dentre as quais eu destaco o fato de ser gratuita e distribuída livremente na internet, relativamente fácil de aprender e extremamente bem documentada.

Para mais informações, eu recomendo (fortemente) que você acesse o site da Software Carpentry. Mais especificamente, dê uma olhada nas lições [Programming with Python] (http://swcarpentry.github.io/python-novice-inflammation/). Os códigos Python serão feitos utilizando-se o [Jupyter Notebook] (http://jupyter.org/).

Jupyter Notebook

O Jupyter Notebook é um arquivo com extensão .ipynb e permite combinar código, texto, equações feitas em LaTeX, figuras e animações. Além disso, é gratuito e extremamente bem documentado. Esta poderosa feramenta computacional possibilita reunir (quase) todas as etapas envolvidas no desenvolvimento de um código com fins acadêmicos, desde a leitura e processamento dos dados até a visualização dos resultados. Para informações sobre o Jupyter Notebook, acesse:

Visualização online dos Jupyter Notebooks

Os Jupyter Notebooks estão armazenados dentro do diretório Content e podem ser visualizados como páginas estáticas no nbviewer no link abaixo:

Neste link, acesse o conteúdo das pastas normalmente. Para visualizar um determinado Jupyter Notebook, apenas clique sobre ele.

Por exemplo, para visualizar o Jupyter Notebook code-template.ipynb, dentro da pasta Content, acesse o link acima e, em seguida, clique no arquivo.

Note que, desta forma, os Jupyter Notebooks são vistos como páginas estáticas. Para executar um determinado Jupyter Notebook, é necessário baixa-lo e instalar os programas necessários de acordo com a seção Instalação do Python e de suas dependências.

Instalação do Python e de suas dependências

Uma maneira fácil de baixar e instalar a última versão do Python e de suas dependências é utilizar a distribuição Anaconda, da Continuum Analytics. Para tanto:

  1. Acesse o link do Anaconda, escolha o instalador PYTHON 2.X adequado para o seu sistema operacional e siga as instruções. O Anaconda já vem com quase tudo o que você precisa para fazer os seus primeiros códigos.

  2. Para checar se a instalação deu certo, abra uma janela do prompt de comando, caso você esteja no Windows, ou um terminal, se estiver no Linux.

  3. Digite o comando: conda list. Este comando mostrará uma lista de coisas que foram instaladas pelo Anaconda. Deve aparecer algo do tipo:

Nesta lista, procure os itens: python, ipython, ipython-notebook, jupyter, numpy, matplotlib e scipy. Se estes itens estiverem na lista, fique tranquilo(a)... pelo menos por enquanto :).