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.
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.
-
[Tudo que você queria saber sobre Git e GitHub, mas tinha vergonha de perguntar] (http://tableless.com.br/tudo-que-voce-queria-saber-sobre-git-e-github-mas-tinha-vergonha-de-perguntar/)
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.
-
Disciplina-metodos-computacionais é o nome deste repositório no GitHub
-
birocoles é o meu nome no GitHub
-
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.
-
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.
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
-
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.
-
CFD Python: 12 steps to Navier-Stokes :: Lorena A. Barba group
-
Notebook Gallery - Links to the best IPython and Jupyter Notebooks
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/).
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:
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:
- https://nbviewer.jupyter.org/github/birocoles/Disciplina-metodos-computacionais/tree/master/Content/
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.
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:
-
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. -
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.
-
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 :).