Arquivo da tag: EPs

Métodos Matemáticos para Atuária – EP2: Integração entre Excel e Python

Os EPs finais envolvem a utilização do Excel em conjunto com Python. Aqui apresentamos um breve tutorial sobre a como rodar macros de Excel em Python. Vamos exemplificar fazendo uma regressão não-linear. Como EP2 você deverá fazer o tutorial e completar as partes que faltam. O resultado final deve ser um notebook ou um script que leia os dados da planilha fornecida (que deverá estar aberta) e envie para a planilha do Excel  o gráfico com os dados e o ajuste resultante da regressão.  O EP deve trazer comentários que expliquem cada passo em detalhes. A entrega do EP2 deve ser feita pelo email rvuspaulas@gmail.com até dia 09 de julho. Dúvidas devem ser enviadas para o email pessoal.

Siga os seguintes passos:

1. Instale o Anaconda

Toda a infraestrutura  para utilizar Python pode ser instalada no Windows instalando-se o Anaconda.

2. Teste a interface com Excel

O Anaconda contém o xlwings, que dará “asas” pythonicas para seu Excel. Abra o Jupyter notebook disponível em sua lista de programas após a instalação do Anaconda.  Em seguida, tente os seguintes comandos no notebook:


import xlwings as xw
wb = xw.Workbook()
xw.Range('A1').value = [['x1','x2','x3'], [10.0,20.0,30.0]]
xw.Sheet(1).name='Aba1'

Este código  importará o xlwings, abrirá uma planilha do Excel, escreverá uma tabela a partir da célula A1 e renomeará a aba como “Aba1”.

Altere os valores na tabela do Excel e leia os novos valores no Jupyter notebook com:

tabelas=xw.Range('Aba1','A1').table.value

Verifique o conteúdo da tabela com

 tabelas 

3. Dataframes

Uma maneira mais eficiente para lidarmos com conjuntos de dados maiores é utilizarmos a biblioteca pandas, que também já é instalada junto com o Anaconda. Como exemplo vamos usar os dados que estão nesta planilha: Dados_Regressao.xlsx .

Primeiro deixe apenas a planilha Dados_Regressao. Em seguida execute:

#Importe a biblioteca pandas
import pandas as pd
#Conecte-se com a planilha ativa usando:
wb = xw.Workbook.active()
#Leia a planilha em um dataframe
df=xw.Range('A1:C215').options(pd.DataFrame).value
#Veja o conteúdo do dataframe
df

O Dataframe permite várias manipulações interessantes nos dados. Por exemplo, é possível selecionar dados que satisfaçam alguma propriedade. Tente:

df[(df.X<3)&(df.Y>80.)]

Isso irá selecionar apenas as linhas que simultaneamente tenham X<3 e Y>80. Em seguida construa um gráfico com estes dados usando:


import matplotlib.pyplot as plt
% matplotlib inline

fig = plt.figure()

plt.plot(df['X'], df['Y'], 'bo');
plt.grid();
plt.xlabel('X');
plt.ylabel('Y');

4. Envie o gráfico para a planilha do Excel

Para enviar a o gráfico para a planilha execute:


plot = xw.Plot(fig);
plot.show('Grafico1',sheet='Aba1', left=200, top=20);

 

5. EP

Faça uma regressão usando como modelo  Y = exp(-B1 X)/(B2+B3X).  Algumas dicas importantes:

  1.  Use  numpy e scipy com
    
    from numpy import *
    from scipy.optimize import curve_fit
    
    
  2.  Defina o modelo como uma função e use curve_fit
  3.  Use
    x=arange(0.,6.,0.01)
    b1,b2,b3=popt
    y=func(x,b1,b2,b3)
    
  4.  Para construir o gráfico use algo como
    fig = plt.figure()
    plt.plot(df['X'], df['Y'], 'bo',label='dados');
    plt.plot(x,y,'r-',label='modelo')
    plt.grid();
    plt.xlabel('X');
    plt.ylabel('Y');
    plt.legend();
    
Etiquetado ,

BOLETIM DE NOTAS PARCIAL

 

Vejam o boletim parcial de notas . As notas finais estarão disponíveis dia  07/07.

Etiquetado , ,

Método de Monte Carlo: Notas de Aula e EP extra

O último tópico a ser  abordado em nosso curso de Cálculo numérico é a integração de Monte Carlo.  Como material de leitura de apoio há  notas de aula escritas pelo Prof. Nestor Caticha disponíveis. Neste tópico também temos um EP extra que pode ser entregue até o dia 7 de julho por email.  Este EP servirá como EP sub. Serão escolhidos para cálculo da nota  final os 4 melhores EPs entregues.

Um livro bastante interessante é  Dunn e Shultis, Exploring Monte Carlo Methods (experimente dar uma busca neste título aqui).

Etiquetado , , ,

EP4: Resolução Numérica de EDOs

O Exercício Programa 4 está disponível em EP4.pdf.  A entrega deve ser feita até o dia 07 de julho por email. Mais informação sobre o modelo de FitzHugh-Nagumo aqui.

Etiquetado , , ,

EP3: Integração Numérica em Física

O EP3 consiste no cálculo de integrais relevantes em problemas de física utilizando os métodos do Trapézio, Simpson, Romberg e  Quadratura Gaussiana.

O arquivo está disponível em  EP3.pdf  (EP3.tex). O EP3 deve ser entregue no dia 13 de junho.

Etiquetado , ,

EP2: Adiamento de entrega

A entrega do EP2 está adiada para  dia 12/05/11.  Aproveito para deixar algumas dicas:

1.  A informação sobre o layout do problema pode ser fornecida na forma de um arquivo que  numere os nós da malha, indique quem são os vizinhos de cada nó e quais são os nós com potencial fixado.

2. Utilize “from scipy.io import write_array”    e  “from scipy.io import read_array”  para escrever e ler dados em arquivos. Para escrever os dados em um arquivo basta fazer algo como:

filename =’nome_do_arquivo.dat’

file = open(filename,”w”)
for i in range(len(x)):
        file.write(“%f %f\n” %(x[i]))
 file.close()

Para ler dados de um arquivo faça:

x = loadtxt(filename)

O resultado será uma lista com nome x.

3. Uma boa forma de exibição visual de seus resultados é utilizar griddata e contour. Experimente e adapte o  código deste link.

Etiquetado , , ,

Exercício Programa 2

O EP2 está disponível no arquivo EP2.pdf (EP2.tex). A data de entrega fica adiada para dia 5 de maio de 2011 (quinta feira).

 

 

Etiquetado ,

Adiamento de entrega do EP1

Em virtude  das dificuldades técnicas iniciais que tem sido enfrentadas a entrega do EP1 está adiada para dia 31 de março.

 

 

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 , , , , ,

Datas Importantes

As provas de Cálculo Numérico serão realizadas nas seguintes datas:

P1: 28 de abril de 2011

P2: 27 de junho de 2011

SUB: 30 de junho de 2011

As provas têm o mesmo peso e a SUB destina-se apenas àqueles que perderam pelo menos uma das provas ou decidiram não entregar pelo menos uma das provas.

Os EPs terão as seguintes datas de entrega:

EP1: 24 de março de 2011

EP2: 28 de abril de 2011

EP3: 26 de maio de 2011

EP4: 27 de junho de 2011

Os EPs são individuais e deverão ser entregues em papel na sala de aula nos dias indicados e no formato descrito no EP1.  Contaremos o tempo em aulas. Cada aula de atraso implicará em multa de 1.5 pontos na nota final do EP.

Se houver detecção de plágio, de outros colegas ou da internet, a nota atribuída ao EP ou prova será anulada.

Não haverá aula nos dias 9 e 16 de junho.

 

 

Etiquetado , , , ,