Arquivo da tag: python

C + Python = Cython

Aprenda a utilizar códigos em C dentro do Python com Cython.

Um exemplo interessante usando Cython.

Etiquetado , ,

FORTRAN + Python

É possível chamar subrotinas compiladas em FORTRAN dentro do Python. Aprenda a fazer isso no curso

Python: Interoperation with FORTRAN.

Etiquetado ,

Exercício Programa 1

O Exercício Programa 1 (EP1) está disponível em EP1.pdf (em LaTeX: EP1.tex). A data de entrega é 24 de março de 2011.

Duas das referências indicadas podem ser baixadas nos links a seguir:

1. R.M. May,  Simple mathematical models with very complicated dynamics

2. R.M.C. de Almeida, A Ciência da Complexidade

Etiquetado , , , , ,

Cálculo Numérico: Resumo da Semana 2

Nesta semana discutimos algoritmos para solução de equações em uma dimensão ou, equivalentemente, algoritmos para encontrar raízes de equações.  O resumo da semana em PDF está no arquivo  solucaoeqs.pdf, em LaTeX está no arquivo solucaoeqs.tex. Como exercício compile e altere o arquivo .tex.

Ao final deste segmento do curso teremos discutido cinco algoritmos:

  1. Método incremental de busca (buscaraiz.py)
  2. Dicotomia (dicotomia.py)
  3. Método por iteração de mapa
  4. Newton-Raphson (newtonRaphson.py)
  5. Brent (brent.py)

Até o momento descrevemos com algum detalhe os três primeiros. Para cada um dos algoritmos há uma implementação em Python nos links acima. Você também precisará de erros.py, que gerencia as mensagens de erro. No resumo da semana há exemplos de uso no shell interativo, procure repetí-los e alterá-los.

 

 

Etiquetado , ,

Python no Windows: Python(x,y)

Uma forma simples de instalar e programar em python no Windows é através do python(x,y). No pacote , além de python, também virá dois sistemas integrados de desenvolvimento (Qt e Eclipse) e um shell iterativo para aplicações científicas (spyder). A instalação é bem simples.

 

 

Etiquetado ,

Cálculo Numérico: Resumo da Semana 1

Na primeira semana  a ementa do curso, objetivos gerais, critérios e datas de avaliação foram apresentados.  As ferramentas básicas: linux, python e latex foram apresentadas.

Fizemos um breve tutorial em python. Uma boa ideia para começar a se familiarizar com a linguagem é repetir este tutorial de forma independente. O primeiro programa em python está no arquivo gases.py e pode ser executado no terminal utilizando: python gases.py.

Em seguida, para ilustrarmos o ciclo completo  de trabalho, utilizamos como exemplo o cáculo numérico de derivadas. Implementamos derivadas numéricas em python no arquivo diferencas_finitas.py.

Toda a discussão está resumida em no arquivo LaTeX  semana1.tex. Utilize este arquivo como modelo para escrever seus EPs. Você pode abrir  este arquivo clicando diretamente no ícone do arquivo (como no windows). Um bom editor de texto para Ubuntu é o Kile que pode ser instalado selecionando-se Sistema>Administração>Gerenciador de Pacotes Synaptic  e buscando por “kile”.

Para compilar o arquivo tex você pode utilizar o próprio Kile ou  ir ao terminal, entrar no diretório adequado (use “cd” para mudar de diretório e “ls” para listá-lo) e executar o seguinte comando:

pdflatex semana1.tex

Este comando irá gerar o arquivo semana1.pdf (e outros arquivos auxiliares *.dvi e *.aux).

O programa em python que implementa o cálculo de derivadas numéricas e produz gráficos é diferencas_finitas_plot2.py. Os gráficos com os resultados para arctan(x) ( aproveitando para colocar figuras no blog 😉 ):

 

Etiquetado , , ,

Semana 1: Informação suplementar- Ferramentas

Em nosso curso queremos utilizar uma plataforma profissional para computação científica. O aluno pode, se desejar, utilizar análogos em windows. No entanto, suporemos sempre que está sendo utilizado o trio: Ubuntu+Python+Latex

Ubuntu

O Ubuntu pode ser baixado em www.ubuntu.com. Há várias formas de instalá-lo:

  1. Se você deseja ter apenas Ubuntu em seu computador ou deseja mantê-lo em conjunto com o Windows siga as instruções neste site.
  2. Você pode também instalar o Ubuntu em uma máquina virtual dentro do Windows usando wubi. Esta seria a forma indicada caso você não deseje alterar partições no seu computador. Esta forma é mais fácil mas é apenas indicada para que você conheça o Ubuntu.

Um bom lugar para começar a aprender Ubuntu é o http://www.ubuntu-br.org.

Python

O Python básico é parte integrante do Ubuntu. Você vai, no entanto, precisar instalar alguns módulos extras.  No pyscience você encontrará informações úteis. Os módulos extras que precisaremos instalar são o numpy, matplotlib e o scipy. Para instala-los basta abrir um terminal no Ubuntu e lá digitar na sequência:

  1. sudo apt-get install python-numpy python-scipy
  2. sudo apt-get install python-matplotlib

LaTex

Veja aqui como instalar o LaTex no Ubuntu . Muito provavelmente será interessante também que você instale o editor kile e o visualizador de PDFs okular. Para isso basta no terminal entrar:

  1. sudo apt-get install kile
  2. sudo apt-get install okular

Uma alternativa WYSIWYG (What You See Is What You Get) é o LyX. Se não quiser abandonar o windows você pode instalar o LyX no Win7 ou instalar LaTeX no Windows .

Etiquetado , , , ,

Cálculo Numérico: apresentação geral

O objetivo geral do curso é aprendermos a resolver problemas em Física utilizando computação. O curso tem três pilares: 1. tecnologias eficazes e soluções eficientes; 2.  métodos numéricos e introdução à análise numérica; 3. exemplos em física contemporânea.

Tecnologias para Computação Científica

Neste espírito, procuraremos apresentar um conjunto mínimo de ferramentas eficientes para as  demandas da computação científica moderna. Este conjunto mínimo é composto pelo sistema operacional Linux (Ubuntu, em particular), pela linguagem de alto nível Python e pelo sistema de produção de documentos baseado em LaTeX.

Métodos Numéricos

Os métodos numéricos que discutiremos em detalhe estão divididos em seis classes.

  1. Solução de equações por iteração
  2. Solução de sistemas de equações lineares
  3. Interpolação e ajuste de dados
  4. Integração numérica
  5. Solução de equações diferenciais ordinárias
  6. Simulações de Monte Carlo

A compreensão mais completa  desses métodos e de sua aplicação exige que discutamos também aspectos teóricos das aproximações numéricas envolvidas. A estes aspectos teóricos  denomina-se análise numérica. Nesse curso faremos uma introdução à análise numérica.

Exemplos em Física Contemporânea

A idéia do curso é dar oportunidade para que os alunos acumulem experiência prática com os métodos apresentados tanto  em problemas  de exemplo quanto em contextos de interesse da Física contemporânea. Como o curso é oferecido para estudantes de terceiro semestre em Física,  excluiremos tópicos em física que requerem  maior amadurecimento e contato com  modelos matemáticos mais avançados e com evidência empírica e conceitos mais  complexos (por exemplo, mecânica quântica ou eletrodinâmica).

Adotamos por definição que “Física é aquilo que os físicos fazem”. Assim, utilizaremos também exemplos em finanças,  sistemas biológicos, sociais e tecnológicos.

Critérios de Avaliação

Teremos duas provas (P1 e P2) com pesos iguais e uma prova substitutiva (SUB).  A prova sub somente poderá ser feita por alunos que não fizerem pelo menos uma das provas. O aluno poderá comparecer à prova e decidir não entregá-la voltando para fazer a SUB.  As questões de prova serão escolhidas dentre questões propostas em seis listas de exercício que serão fornecidas  antes de cada tópico do curso.  O plágio (vulgo: cola) em provas resultará em nota zero para todos envolvidos.

Teremos também 4 EPs  individuais que deverão ser entregues na forma de 4 relatórios  impressos em datas estabelecidas e em formato que será detalhado no EP1. O EP1 terá a forma de um tutorial que tem por objetivo dirigir a utilização do Linux, Python e LaTeX utilizando um problema numérico como exemplo. O plágio em EPs resultará em nota zero para todos envolvidos.
A nota final seguirá a seguinte prescrição.

Se as médias aritméticas  obedecerem

MP=(P1+P2)/2 >4    e  MEP=(EP1+EP2+EP3+EP4)/4>4

então   a média final será

MF=0.4 MP +0.6 MEP

Caso contrário a média final corresponderá à pior das duas médias.

Tópicos Avançados Excluídos desse Curso

Consideramos também partes importantes do toolkit para computação científica que, no entanto, ficarão de fora de nosso curso:   linguagens C com bibliotecas numéricas (em particular, GSLigraph),  linguagem estatística R, base de dado MySQL, processamento simbólico com Maxima (ou Maple ou Mathematica), computação paralela com MPI,  processamento em GPUs com CUDA ou OpenCL.

Etiquetado , , , , , , , ,