projeto calculo numerico
Linguagens utilizadas: C, Matlab e Octave
Nome: Lucas Tonon
RA:147035
Nome: Daniel Vaz
RA: 120847
Limeira, 2013
1. Erros numéricos
1.1
Representação
Programa C
#include
#include
int main () { int i=1, x=30000; float s=0; for(i=1; ie iteracoes = iteracoes+1; c=(b+a)/2; if f1(a)*f1(c)e2 iteracoes = iteracoes+1; c=((a*feval(f1,b))-(b*feval(f1,a)))/(feval(f1,b)-feval(f1,a)); a=b; b=c; disp(c) end secante=c iteracoes endfunction
f1=@(x) (x/2) - tan(x) + 0.5; a=-1; b=1; t = a:0.1:b; plot(t,f1(t),'-') raiz(f1, a, b)
f1=@(x) 2*cos(x) - ((e.^x)/2); a=0; b=pi; t = a:0.1:b; plot(t,f1(t),'-') raiz(f1, a, b)
Resultado
%Para a funcao (x/2) - tan(x) + 0.5
Bisseccao:
0
0.50000
0.75000
0.62500
0.68750
0.71875
0.70312
0.71094
0.70703
0.70508
0.70605 bisseccao = 0.70605 iteracoes = 11
Secante:
0.70633
0.70633
secante = 0.70633 iteracoes = 2
%Para a funcao 2*cos(x) - ((e.^x)/2);
Bisseccao:
1.5708
0.78540
1.1781
0.98175
0.88357
0.93266
0.90812
0.89584
0.90198
0.90505
0.90351
0.90428
bisseccao = 0.90428 iteracoes = 12
Secante:
0.90479
0.90479
secante = 0.90479 iteracoes = 2
A vantagem de se usar este programa é que a certeza do método da bissecção e a eficiência do método da secante são combinadas. Neste programa, o método da secante começa a calcular a partir do resultado obtido no método da bissecção, assim uma boa quantidade de iterações. Com o método da secante, encontramos uma aproximação maior ainda, que a bissecção não seria capaz de encontrar.
2.2
Sequências oscilantes
Programa Octave function newton(f, df, x0, max, eps) count=0; x0 while (eps>=1e-5 & count 0.001 iteracao = iteracao + 1;
Z = X; %salvar os valores atuais para calcular erro depois for i = 1:n
j = 1:n; % definir uma matriz de elementos dos coeficientes
j(i) = []; % eliminar o coeficiente de desconhecida a partir dos
coeficientes