Académique Documents
Professionnel Documents
Culture Documents
DEPARTAMENTO DE COMPUTAO
E SISTEMAS DE INFORMAO
INSTITUTO DE CINCIAS EXATAS E APLICADAS
Trabalho 1
Implementao de Algoritmos Numricos
Anlise Numrica
Maio 2015
Joao Monlevade
Sumrio
I.
Introduo..................................................................................................... 3
III.
Problema....................................................................................................... 11
IV.
Desenvolvimento.......................................................................................... 12
V.
Testes.......................................................................................................... 13
VI.
Concluses.................................................................................................... 20
VII.
Bibliografia.................................................................................................... 21
Anexo 1 Algoritmos.............................................................................................. 21
I.
Introduo
Nesse trabalho vamos exemplificar as aplicaes aprendidas em clculo
matemticos
apresentados.
Isso
nos
apresenta
matemtica
computacional, que tem como objetivo aprender processos numricos para soluo
de problemas, com mais confiabilidade, agilidade e menor erro.
Os fatores que so levados em conta quando se usa um computador para
resolver os problemas matemticos apresentados so: o tempo de execuo,
normalmente menor, a memria utilizada, que nos dias atuais no apresenta grande
significncia uma vez que os computadores atuais apresentam grande quantidade de
memria, o terceiro fator o erro de arredondamento que pode depender de
condies de configuraes do sistema ou dos limites de representaes do mesmo.
Uma definio para algoritmos numricos pode ser: So os algoritmos
voltados ao processamento numrico, isto , s operaes aritmticas que formam o
cerne do algoritmo. O seu objetivo obter um ou mais resultados numricos. Um
algoritmo numrico de boa qualidade tem as seguintes caractersticas: (alcides).
Para o nosso trabalho quatro algoritmos so apresentados e testados a fim de
verificar o seu funcionamento. Alm de testa-lo tambm os comparamos com
exemplos disponveis na bibliografia do curso.
Aps isso, vamos analisar os resultados e o funcionamento de cada algoritmo
apresentado e depois tirar uma concluso vlida do experimento.
II.
Algoritmos Numricos
Os algoritmos numricos podem ser vistos como uma facilitao da resoluo
para sistemas lineares, pois com ele usamos o computador para a resoluo dos
problemas. Desta forma, nos permite resolver de maneira mais rpida e com maior
preciso o nosso problema. Estes algoritmos so aplicados em diversas reas de
estudo e para resoluo de diversos problemas matemticos.
O principal fator em nosso caso o uso do computador, possibilitando uma
resoluo mais rpida, eficiente e precisa. Isso nos permite trabalhar com problemas
muito maiores, e mais complexos.
Os Algoritmos tratados no trabalho so regularmente usados para a resoluo
de sistema lineares, como Jordan e Jacobi, outros algoritmos so implementados
para mtodos voltados a encontrar razes de uma funo, como o mtodo de
bisseco e o mtodo de newton.
O primeiro algoritmo estudado nesse trabalho, uma evoluo da eliminao
de Gauss, conhecido como eliminao de Gauss-Jordan, nesse caso o objetivo
zerar os elementos acima e abaixo do elemento de pivotao, assim ao terminar o
processo a matriz se encontra escalonada.
Exemplo de Gauss Jordan
Isto quer dizer que se conseguirmos chegar da matriz B matriz B', a soluo
do sistema imediata. Podemos, ainda, dividir cada linha pelo elemento da diagonal,
e assim chegar matriz identidade.
Por exemplo:
matemtico criado por Carl Gustav Jacobi. Este mtodo usado para aplicaes mais
robustas em relao aos casos resolvidos pelo mtodo de Gauss. Com sistemas
grandes ou com um vasto nmero de entradas, Jacobi se mostra mais eficiente para
achar os coeficientes. Este mtodo consiste em isolar as incgnitas e de modo
Com
Co = Cm= 1 e
Ci = 4 se i for mpar e
Ci = 2 se i for par.
III.
Problema
Desenvolvimento
Os algoritmos foram desenvolvidos no Matlab, por facilitar a processo de
V.
Testes
Para testar cada um dos algoritmos propostos, pegamos os exemplos do livro
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
A
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
Tabela 1 - Resposta do mtodo de Jordan
b
-2,8352
13,2316
2,1099
27,1104
6,1382
-44,3192
13,243
b
2,8352
13,231
6
2,1099
27,110
4
6,1382
44,319
2
13,243
Passando os parmetros para o Matlab, a sada gerada pelo mesmo foi a seguinte:
Iter
x1
x2
x3
Err
or
0
5,
7
2,
5
0,
8
-
1
4,79
0,975 0,9975
-2,44
Mtodo de Jacobi
4
5
-1,953
1,026
4,999
-2
-2
-1,999
2,0001
1,9834 2,0072
1,9998
Fa
Fb
10
6,3206
12
9,4834
11
11
12
9,4834
11,5
7,0594
0,5
11,5
12
9,4834
11,75
0,2013
0,25
11,5
11,625
5
6
7
8
9
10
11
12
11,687
5
11,718
8
11,734
4
11,742
2
11,742
2
11,742
2
11,743
2
11,743
7
14,849
7
7,0594
7,0594
3,6975
1,8136
0,8223
0,3145
0,0576
0,0576
0,0576
0,0254
0,0092
11,75
9,4834 11,625
11,75
9,4834
11,75
9,4834
11,75
9,4834
11,75
9,4834
11,75
9,4834
11,746
1
11,744
1
11,744
1
11,744
1
9,4834
9,4834
9,4834
9,4834
11,687
5
11,718
8
11,734
4
11,742
2
11,746
1
11,744
1
11,743
2
11743
7
11,743
9
Fx
DeltaX
14,849
1
7
3,6975
1,8136
0,8223
0,3145
0,0576
0,125
0,0625
0,0313
0,0156
0,0078
0,0716 0,0039
0,0069
0,002
0,001
0,0254
0,0005
0,0092
0,0011 0,0002
x
4
DFx
234
121,82
3,3846
52
80,368
3,0853
2
70,656
3,0056
7
3
70,003
3
70
Fx
144
36,469
3
6,4056
0,3906
0,0018
0
NewtonCotes(0,pi,3,6)
x(i)
y(i)
0
0,0000
0,523598
0,5000
1,047197
0,8660
1,570795
1,0000
C(i)
1
3
3
2
Para o segundo caso o valor encontrado para a integral igual a 2.0020. Assim
podemos ver que o resultado gerado por n=2, ou seja, pela regra de 1/3 de Simpson
fornece um resultado mais exato que resultado gerado pelo mtodo de 3/8 de
Simpson. Os valores encontrado so iguais ao apresentados pelo exemplo
apresentado no livro, isso mostra que nossas implementaes esto funcionando
corretamente.
VI.
Concluses
Com tudo apresentado acima, podemos ver o funcionamento e as tcnicas
aplicadas
para
implementao
dos
mtodos
numricos.
Com
essas
dos
algoritmos
implementados,
pode-se
concluir
que
tais
mtodos
VII.
Bibliografia
Anexo 1 Algoritmos
Algoritmo 1 Jordan
% Gauss-Jordan method
% m = numero de linhas
% n = numero de colunas
[m,n]=size(a);
% este for vai passar por todas as
linhas eliminando-as uma a uma
for j=1:m-1
% este for realiza o
pivoteamento em cada coluna nao
nula de cada linha
for z=2:m
if a(j,j)==0
t=a(1,:);a(1,:)=a(z,:);
a(z,:)=t;
end
end
% este for converte os
elementos
abaixo
da
diagonal
principal para zeros
for i=j+1:m
a(i,:)=a(i,:)a(j,:)*(a(i,j)/a(j,j));
end
end
Algoritmo 2 Jacobi
function [x,Iter,CondErro] = Jacobi(n,A,b,Toler,IterMax)
%Objetivo: resolver o sistema Ax=b pelo mtodo iterativo de Jacobi
%n,A,b,Toler,IterMax = ordem,matriz,vetor independente,tolerancia,numero
%maximo de iteracoes
NormaNum =0;
NormaDen=0;
for i=1:n
t=abs(v(i)-x(i));
if t>NormaNum
NormaNum =t;
end
if abs(v(i))>NormaDen
NormaDen = abs(v(i));
end
x(i)=v(i);
end
NormaRel = NormaNum/NormaDen;
fprintf('\nIter = %d ' ,Iter);
x
fprintf('NormaRel
=
%f
\n',NormaRel);
if
NormaRel<=Toler
|
Iter>=IterMax
break;
end
end
if NormaRel<=Toler
CondErro =0;
else
CondErro =1;
end
h = (b-a)/m;
fprintf('i
x(i)
y(i)
c(i)\n');
for i = 0:m
x = a+i*h;
%Funo y(x)
y = sin(x);
j = p+fix(0.5*n-abs(mod(i,n)0.5*n));
k = 1+fix((n-mod(i,n))/n)fix((m-mod(i,m))/m);
Integral = Integral+y*c(j)*k;
%plot(i,Integral,'.')
%hold on;
fprintf('%d
%.4f
%.4f
%.4f\n',i,x,y,c(j)*k);
end
Integral = n*h/d(n)*Integral