Você está na página 1de 7

Engenharia de Sistemas Trabalho Mtodos numricos ISEP

Teoria de Erros Mtodo das Bissees Sucessivas Mtodo de Newton Interpolao Derivao Numrica Integrao Numrica

Trabalho realizado: Pgina 1

Engenharia de Sistemas Trabalho Mtodos numricos ISEP


Diogo Branco 1120340 Eduardo Gil

Introduo
No mbito da unidade curricular de mtodos numricos foi-nos proposto realizar um relatrio final com todos os trabalhos realizados ao longo do semestre em programao java. Neste relatrio vo ser expostos os diferentes trabalhos (programas), bem como uma pequena descrio para cada mtodo utilizado; um exemplo resolvido para cada programa e por fim um manual de utilizador como nos foi requesitado.

Pgina 2

Engenharia de Sistemas Trabalho Mtodos numricos ISEP

Descrio: O programa est dividido em mtodos (java). Para cada um dos mtodos numricos, existe um mtodo correspondente em linguagem de programao java. Outros ainda esto presentes com a funo de suporte (casas decimais, nmeros significativos, etc) Existe um mtodo principal, que chama o menu. Nele esto disponveis as opes que permitem escolher o mtodo de clculo desejado. Nessas opes constam: 1.Teoria de Erros solicita-se ao utilizador que digite uma funo. Em segida solicitada a derivada da funo em ordem a (x) e em ordem a (y). Seguem-se os valores de (x) e de (y) que deve tomar a funo e, por fim, o valor do erro que queremos associar para cada uma das variveis. O resultado vir em ordem ao previamente introduzido. mostrado o valor da funo e o valor do erro associado. Cdigo chave :

Pgina 3

Engenharia de Sistemas Trabalho Mtodos numricos ISEP

2.Mtodo de Newton solicita-se ao utilizador que digite uma funo. Em seguida solicitada a 1 e 2 derivada da funo em ordem a (x). Seguem-se os valores dos limites inferior e superior da raiz e, por fim, o valor do erro que queremos associar. O resultado vir em ordem ao previamente introduzido. Como resultado obteremos o n de iteraes, a raiz obtida e o erro estimado. Est contemplada a validao do mtodo. Cdigo chave :
if (a1<0 & a2!=0 & a3>0){ validao do mtodo : se f(x)*f(y)<0, d(x) !=0 e se ddx >0 double x, xn1=0; double a4 = fx(strf, a, 0)*fx(strddx, a, 0); if (a4>0){ x = a; } atribui a x valor com o mesmo sinal da derivada else { x = b; } double e = 100; int k=0; System.out.println("N iterao Raiz Erro "); while (Math.abs(e)>erro ||k>100){ at erro menor que pedido double a5 = fx(strf, x, 0); ..clculo funo double a6 = fx(strdx, x, 0); ..clculo da derivada xn1 = x-(a5/a6); aplicao da frmula e = Math.abs(xn1-x); erro x = xn1; System.out.println(" " +k+ " " +xn1+ " " +e); k++; }

Pgina 4

Engenharia de Sistemas Trabalho Mtodos numricos ISEP

3.Mtodo das Bisseces Sucessivas solicita-se ao utilizador que digite uma funo. Pedem-se os limites inferior e superior da raiz e, por fim, o valor do erro que queremos associar. Como resultado obteremos o n de iteraes, a raiz obtida e o erro estimado. Cdigo chave :
while (Math.abs(e)>erro||k>100){ at erro menor que pedido x = (a+b)/2; if ((fx(strf, a, 0)*fx(strf, x, 0))<0){ verifica se o intervalo contm a raiz b = x; assume o valor e = b-a; assume erro } else { se o intervalo no contm a raiz, o valor o outro extremo a = x; e = b-a; }
A parte inteira de um valor deve ser separada da parte decimal por uma , (vrgula). Quando pedido para introduzir uma funo dado um exemplo ( x*Math.sin(x) +3*Math.cos(y)), cujo objectivo o de informar o utilizador que deve introduzir a funo da mesma forma que a introduz em cdigo java.

4.Mtodo da Interpolao Neste mtodo pedido ao utilizador um valor inicial que deve corresponder ao n de valores a introduzir na criao da tabela que servir de base para o nosso clculo. Indicamos qual o valor para o qual queremos interpolar e de seguida preenchemos as tabela com os valores de x e de f(x). O resultado mostrado. Cdigo chave :
for (j=1;j<n;j++){ Para cada ordem.. for (i=n-1;i>=j;i--) { y[i]=((t-x[i-j])*y[i]-(t-x[i])*y[i-1])/( x[i]-x[i-j]);

Pgina 5

Engenharia de Sistemas Trabalho Mtodos numricos ISEP

5.Derivao Tal como no mtodo anterior, solicitado o n e os valores de uma tabela. O mtodo verifica as distncias de modo a efectuar as diferenas finitas progressivas, centradas ou regressivas. O resultado so os valores da tabela da funo derivada. Cdigo chave :
Antes deste ciclo calcula o 1 valor (regressiva) e o ltimo (progressiva). for(int q=1;q<(n-1);q++){ if ((x[q+1]-x[q])<(x[q]-x[q-1])){ menor ? d[q]=(y[q+1]-y[q])/(x[q+1]-x[q]); calculo da progressiva } else if (numsigni(x[q+1]-x[q])==numsigni(x[q]-x[q-1])){ igual ? d[q]=((y[q+1])-(y[q-1]))/((x[q+1])-(x[q-1])); clculo da centrada } else if ((x[q+1]-x[q])>(x[q]-x[q-1])){ maior ? d[q]=(y[q]-y[q-1])/(x[q]-x[q-1]); calculo da regressiva }

6.Integrao Tal como no mtodo anterior, solicitado o n e os valores de uma tabela. O resultado o clculo de uma rea. Cdigo chave :
val=((x[q+1]-x[q])/2)*(y[q+1]+y[q]) subtrai n+1 por n e divide por 2 (calcula o h) multiplica pela soma dos dois valores da funo correspondentes. O valor final a soma do resultado acima em todos os pontos

Pgina 6

Engenharia de Sistemas Trabalho Mtodos numricos ISEP

Conluso

Pgina 7

Você também pode gostar