Trabalho 1 de Métodos 1
Primeiro trabalho de Métodos 1.
Equipe:
- Cassiano
- Edilson
- Esdras
- Silveira Neto
Problema:
O valor de Π pode ser obtido através das equações sen(x)=0 e cos(x)+1=0. Pede-se:
- Calcule o valor de Π pelas duas equações, implementando o método de Newton-Raphson.
- Calcule o valor de Π pelas duas equações, implementando o método da Secante.
- Compare os resultados.
Dados de Entrada: ξ (Precisão).
Dados de Saída: Π, Quadro comparativo.
Requisitos:
- Implementação em Linux
- Implementação em C++
- Compilação estática
TODO: O TODO está dentro do tarball.
Análise das funções:
Seja f(x)=sen(x) (em vermelho no gráfico) e g(x)=cos(x)+1 (em azul).
Um bom método para achar um intervalo para o método é procurar um intervalo [a,b] onde a função seja negativa para a e positiva para b. Como cos(x)
[-1,1] então g(x)
[0,2]. Então não vamos usar g(x). Já f(x) possui a imagem em [-1,1].
O intervalo escolhido foi [3.1, 3.2] pois
f(3.1)=0.0415806624333 e (3.2)=-0.0583741434276. Ou seja, como f(3.1)<0 e f(3.2)>0 então existe algum valor entre 3.1 e 3.2 que zera a função f.
Outra maneira seria procurar, através da derivada de g(x), um intervalo em que ocorrece uma mudança na inclinação.
g(3.0)=0.0100075033996
g(3.1)=0.000864849726721
g(3.2)=0.00170522420525
g(3.3)=0.0125202300911
Entre 3.1 e 3.2, g parou de decrescer e começou a crescer. Então se há um zero, e sabemos que sim, ele está neste intervalo.
Referências:
- C++ Language Tutorial
- Data Format and Conversion Information for Heritage Data at the National Space Science Data Center
- Como fazer um Makefile dos engenheiros do hawaii.
Downloads:
Temporáriamente hospedados no 4shared.
7 Comentários »
Feed RSS dos comentários deste post URI do TrackBack
Deixe um comentário
Blog no WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.



Isso do método para derivar uma função é necessário para que o programa seja capaz de iterar sobre qualquer função e não somente essa função sen(x)=0 e cos(x)+1=0.
Acho que o Bento quer assim.
Comentário por silveira — 9 Dezembro 2006 #
Sugestão do Marco, usar essa aproximação, pela tangente:
d/dx [f(x)] ~= (f(x2) – f(x1)) /(x2 – x1)
Comentário por silveira — 9 Dezembro 2006 #
E se a gente colocasse o programa pra procurar intervalos através de valores randômicos? Acho que o Bento gostaria…
Comentário por Esdras — 9 Dezembro 2006 #
Eu falei com o Cassiano e agente concluiu que isolamento é isolamento e refinamento é refinamento.
Comentário por silveira — 9 Dezembro 2006 #
O que eu quis dizer é que a gente poderia botar o bicho pra testar intervalos randômicos, mais ou menos como a gente faz no papel. Qual a idéia de vocês?
Comentário por Esdras — 10 Dezembro 2006 #
Eu não acho uma boa, foge ao escopo do trabalho, poderia até ser, como um extra.
Eu queria saber se você já escreveu algo do trabalho, porque eu estou escrevendo. Não é inteligente nós estarmos fazendo trabalho repetido
Comentário por silveira — 10 Dezembro 2006 #
eu tenho medo! tem q testar as restrições de convergencia??
Comentário por frango — 26 Dezembro 2006 #