Você está na página 1de 11

Prof. Dr. Ernesto D.R.

Santibanez-Gonzalez
DECOM/ICEB
Clculo Numrico
Sistemas Equaes Lineares
Aula Pratica Scilab 28 de Junho
Mtodos Iterativos
Mtodo de Gauss-Seidel
2013
Trabalho individual
Enviar o arquivo .sce (Scilab) como segue:
1. Nome de arquivo:
nome aluno_Lab _5_Turma 5 (ou
8)_bcc760.sce, por exemplo:
paula_Lab_5_Turma5_bcc760.sce
2.- email a po.researcher@gmail.com
3.- Assunto email:
Nome
aluno_BCC760_Lab_5_Turma_2013
4.- No precisa escrever mais nada.
5.- No esquea anexar arquivo Scilab.
6.- Prazo: hoje final aula
Exerccios - Scilab
1. Programar em Scilab o mtodo de Gauss-Seidel e
resolver o exerccio (Sistema de Equaes Linear)
fornecido na slide seguinte. Observar que o exerccio
deve ser resolvido separadamente para os dois pontos
iniciais fornecidos. ;
2. Programar em Scilab o critrio de convergncia alpha e
integrar com o mtodo de Gauss-Seidel;
Observao: Nas slides #7,8 e 9 fornecido o cdigo Scilab do
mtodo de Gauss Seidel. Esse cdigo NO est completo nem
livre de erros. O aluno deve corrigir como parte do trabalho e
integrar com o critrio alpha de convergncia.
Exerccio Resolver em Scilab
Usando Gauss Seidel
1) Ponto inicial e error. Responda se pode garantir convergncia usando alpha
2) Ponto inicial e error. Responda se pode garantir convergncia usando alpha
|
|
|
|
|

\
|
=
0
0
0
0
) 0 (
x
05 . 0 =
|
|
|
|
|

\
|
=
1
1
1
1
) 0 (
x
01 . 0 =

= + + +
= + +
= +
= + +
5 . 2 2 . 0 3 . 0 1 . 0
0 . 1 2 . 0 2 . 0 1 . 0
6 . 2 1 . 0 2 . 0 2 . 0
2 . 0 1 . 0 1 . 0 5 . 0
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
x x x x
x x x x
x x x x
x x x x
Mtodo de Gauss-Seidel Dever de casa
Convergncia - Critrio de Sassenfeld
Sejam
e

=
=
+ + +
=
n
j
j
n
a
a
a
a a a
2
11
1
11
1 13 12
1
| |
| |
| |
| | | | | | K

n i a a a
a
a a a a a
ii
n
i j
ij j
i
j
ij
ii
in ii i ii i i
i
K
K K
, 3 , 2 | | / |] | | | [
| |
| | | | | | | | | |
1
1
1
1 1 1 2 2 1 1
= + =
+ + + + +
=

+ =

=
+
Prof. Dr. Ernesto Santibaez-Gonzalez
Critrio de Sassenfeld - Dever de casa
Seja
Se < 1, o mtodo de Gauss-Seidel gera
uma sequncia convergente para qualquer
. Quanto menor , mais rpida a
convergncia.
Observaes cdigo Scilab
//Metodo Gauss-Seidel passo por passo sem operador de
loop
//Criterio Sassenfeld de convergencia
//Aula lab 28 junho 2013 BCC760 prof. Dr. Ernesto D.R.S.
Gonzalez
//O codigo Nao considera integrar criterio alpha ou de
Sassenfeld (if then else) com metodo de Gauss-Seidel
(loop). Observe que o codigo considera uso de
Sassenfield!
//Exercicio:o aluno deve realizar essa integracao clc;
//aluno deve corrigir e completar o cdigo
//lembrar evitar uso de acentos em codigo Scilab
//Dados Problema Ax=b
//matriz A e vetor b
A=[5 1 1; 3 4 1; 3 3 6]; b=[5;6;0];
//imprimir em consola disp()
printf("Dados matriz A e vetor b\n");
disp(A);disp(b);
//Calculo criterio Sassenfeld
beta1=(abs(A(1,2))+abs(A(1,2)))/A(1,1)
beta2=(abs(A(2,1))*beta1+abs(A(2,3)))/A(2,2)
beta3=(abs(A(3,1))*beta1+abs(A(3,2))*beta2)/A(3,3)
betamax=max(beta1,beta2,beta3)
//imprimir betas e max beta
printf("valor beta1=%f beta2=%f beta3=%f
betamax=%f\n",beta1,beta2,beta3,betamax)
//verificar convergencia e imprimir
if betamax<1 then printf("ok convergencia\n\n")
else
printf("nao podemos garantir convergencia\n")
end
//Algoritmo Gauss-Seidel
//vetor inicial x0=y0=z0=0 e erro=0.05 criterio parada
x0=0;y0=0;z0=0;k=0
printf("valores iniciais x0=%f y0=%f z0=%f\n",x0,y0,z0)
erro=0.05;deltamax=100;
printf("error maximo = %f\n\n",erro)
while deltamax>erro
//calculo valores variaveis
x1=(b(1)-A(1,2)*y0-A(1,3)*z0)/A(1,1)
y1=(b(2)-A(2,1)*x1-A(2,3)*z0)/A(2,2)
z1=(b(3)-A(3,1)*x1-A(3,2)*y1)/A(3,3)
//calculo delta
deltax1=abs(x1-x0);
deltay1=abs(y1-y0);
deltaz1=abs(z1-z0);
deltamax=max(deltax1,deltay1,deltaz1);
k=k+1
//imprimir
printf("iteracao k=%d\n",k)
printf("valores de variaveis\n")
printf("x=%f y=%f z=%f \n",x1,y1,z1)
x0=x1;y0=y1;z0=z1;
end
Tabela iteraes exemplo 3
Iterao
0 0 0 0
1 1 0,75 -0,88
2 1,03 0,95 -0,99
3 1,01 0,99 -1
Dever de casa:
Resolver usando esse cdigo o seguinte
Problema Engenharia Eltrica
24 V
16 V
3
4 2
6
6
3
2
4
i1
i3
i2
i4
Usar Lei de Kirchhoff para determinar as correntes i1, i2, i3 e i4
18V

Você também pode gostar