Sunteți pe pagina 1din 15

1

Sumrio

Sumrio
Diagrama de Bloco do Mtodo de Gauss ...................................................................... 2
Pseudocdigo do Mtodo de Gauss ............................................................................... 3
Programa em Scilab do Mtodo da Gauss ................................................................... 3
Exemplo ............................................................................................................................ 5
Algoritmo de Mtodo de Gauss Jacobi com m iteraes ............................................ 7
Pseudocdigo do Mtodo de Gauss Jacobi com m iteraes ...................................... 8
Programa Scilab do Mtodo de Gauss Jacobi com m iteraes ................................. 8
Exemplo ............................................................................................................................ 9
Algoritmo de Mtodo de Gauss Seidel com m iteraes ............................................... 12
Pseudocdigo do Mtodo de Gauss Seidel com m iteraes ......................................... 13
Programa Scilab do Mtodo de Gauss Seidel com m iteraes ..................................... 13
Exemplo .......................................................................................................................... 14

Diagrama de Bloco do Mtodo de Gauss


Inicio

n, a[i,j], b[i]

k1,n-1,1

ik+1,n,1

ma[i,k]/a[k,k]
a[i,k] 0

jk+1,n,1

a[i,j]a[i,j]-m*a[k,j]

b[i]b[i]-m*b[k]

x[n]b[n]/a[n,n]

kn-1,1,-1

s0
jk+1,n,1

ss+a[k,j]*x[j]

x[k] (b[k]-s)/a[k,k]

x[i]

Fim

Pseudocdigo do Mtodo de Gauss


Dados Iniciais
Ler n, nmeros de equaes e incgnitas do sistema de equaes lineares
Ler a[i,j], coeficientes das variveis do sistema de equaes lineares
Ler b[i], termos independentes do sistema de equaes lineares
Para k de 1 at n-1 passo 1 faa
Para i de k+1 at n passo 1 faa
a[i, k ]
m
a[k , k ]
a[i,k]=0
Para j de k+1 at n passo 1 faa a[i,j]=a[i,j]-m*a[k,j] Fim_Para
b[i]=b[i]-m*b[k]
Fim_Para
Fim_Para
b[n]
x[n]
a[n, n]
Para k de n-1 at 1 passo -1 faa
s=0
Para j de k+1 ate n passo 1 faa s=s+a[k,j]*x[j] Fim_Para
(b[k ] s)
x[k ]
a[k , k ]
Fim_Para
Escreva x[i]

Programa em Scilab do Mtodo da Gauss


function x = GaussE(a,b,n)
// Matriz triangular superior
for k=1:1:n-1
for i=k+1:1:n
m = a(i,k)/a(k,k)
a(i,k)=0
for j=k+1:1:n
a(i,j)=a(i,j)-m*a(k,j)
end
b(i)=b(i)-m*b(k)
end
end
// Soluo do sistema
x=zeros(n,1)
x(n)=b(n)/a(n,n)
for k=n-1:-1:1
s=0
for j=k+1:1:n
s=s+a(k,j)*x(j)
end

4
x(k)=(b(k)-s)/a(k,k)
end
endfunction

Exemplo
10 x1 2 x 2 x 3 7

x1 5 x 2 x 3 8
2 x 3x 10 x 6
2
3
1
Dados Iniciais
Ler n=3
10 2 1
7


a 1 5 1 , b 8
2 3 10
6


Para k de 1 at 2 passo 1 faa
Para i de 2 at 3 passo 1 faa
a[2,1] 1
m

0.1
a[1,1] 10
a[2,1]=0
Para j de 2 at 3 passo 1 faa a[2,2]=a[2,2]-m*a[1,2]=5-0.1*2=4.8 Fim_Para j=2
Para j de 3 at 3 passo 1 faa a[2,3]=a[2,3]-m*a[1,3]=1-0.1*1=0.9 Fim_Para j=3
b[2]=b[2]-m*b[1]=-8-0.1*7=-8.7
Fim_Para i=2
Para i de 3 at 3 passo 1 faa
a[3,1] 2
m

0.2
a[1,1] 10
a[3,1]=0
Para j de 2 at 3 passo 1 faa a[3,2]=a[3,2]-m*a[1,2]=3-0.2*2= 2.6 Fim_Para j=2
Para j de 3 at 3 passo 1 faa a[3,3]=a[3,3]-m*a[1,3]=10-0.2*1=9.8 Fim_Para j=3
b[3]=b[3]-m*b[1]=6-0.2*7=4.6
Fim_Para i=3
Fim_Para k=1
Para k de 2 at 2 passo 1 faa
Para i de 3 at 3 passo 1 faa
a[3,2] 2.6
m

0.5416666666
a[2,2] 4.8
a[3,2]=0
Para j de 3 at 3 passo 1 faa
a[3,3]=a[3,3]-m*a[2,3 ]= 9.8-0.5416666666*0.9=9.3125 Fim_Para j=3
b[3]=b[3]-m*b[2]=4.6-0.5416666666*-8.7=9.3125
Fim_Para i=3
Fim_Para k=2

b[3] 9.3125

1
a[3,3] 9.3125
Para k de 2 at 1 passo -1 faa
s=0
x[3]

6
Para j de 3 ate 3 passo 1 faa s=s+a[2,3]*x[3]=0+0.9*1=0.9 Fim_Para j=3
(b[2] s) 8.7 0.9
x[2]

2
a[2,2]
4.8
Fim_Para k=2
Para k de 1 at 1 passo -1 faa
s=0
Para j de 2 ate 3 passo 1 faa s=s+a[1,2]*x[2]=0+2*(-2)=-4 Fim_Para j=2
Para j de 3 ate 3 passo 1 faa s=s+a[1,3]*x[3]=-4+1*1=-3 Fim_Para j=3
(b[1] s) 7 (3)
x[1]

1
a[1,1]
10
Fim_Para
Escreva x[1] = 1
Escreva x[2] = -2
Escreva x[3] = 1

Algoritmo de Mtodo de Gauss Jacobi com m iteraes


Inicio

n, m, a[i,j], b[i]

k1,n,1
x[k]b[k]/a[k,k]

k1,m,1
l1,n,1
y[l]x[l]

i1,n,1
s[i]b[i]

j1,n,1
F

I<>j
V
s[i]s[i]-a[i,j]*y[j]

x[i]s[i]/a[i,i]

x[i]
Fim

Pseudocdigo do Mtodo de Gauss Jacobi com m iteraes


Dados Iniciais

Ler n, nmeros de equaes e incgnitas do sistema de equaes lineares


Ler m, nmero de iteraes
Ler a[i,j], coeficientes das variveis do sistema de equaes lineares
Ler b[i], termos independentes do sistema de equaes lineares
b[k ]
Para k de 1 at n passo 1 faa x[k ]
a[k , k ]
Para k de 1 at m passo 1 faa
Para l de 1 at n passo 1 faa y[l]=x[l]
Para i de 1 at n passo 1 faa
S[i]=b[i]
Para j de 1 de n passo 1 faa Se i<>j ento s[i]=s[i]-a[i,j]y[j] Fim_Para
s[i ]
x[i ]
a[i, i ]
Fim_Para
Fim_Para
Escreva x[i]

Programa Scilab do Mtodo de Gauss Jacobi com m


iteraes
function [x,e] = GaussJacobi(a,b,n,m)
x=zeros(n,1)
y=zeros(n,1)
s=zeros(n,1)
d=zeros(n,1)
for k=1:1:n
x(k)=b(k)/a(k,k)
end
for k=1:1:m
for l=1:1:n
y(l)=x(l)
end
for i=1:1:n
s(i)=b(i)
for j=1:1:n
if i<>j then
s(i)=s(i)-a(i,j)*y(j)
end
end
x(i)=s(i)/a(i,i)

9
end
end
// Calculo do erro
for i=1:1:n
d(i)=x(i)-y(i)
end
e = max(abs(d))/max(abs(x))
endfunction

Exemplo
10 x1 2 x 2 x 3 7

x1 5 x 2 x 3 8
2 x 3x 10 x 6
2
3
1
Analisando as condies de convergncias
Como |2|+|1|<|10| e |1|+|1|<5 e |2|+|3|<|10| esto gera uma seqncia de valores que
converge a soluo do sistema de equaes lineares.
Dados Iniciais
Ler n = 3, nmeros de equaes e incgnitas do sistema de equaes lineares
Ler m =2, nmero de iteraes
10 2 1
7


a 1 5 1 , b 8
2 3 10
6


b[1]
7
Para k de 1 at 3 passo 1 faa x[1]

0.7 Fim_Para k=1


a[1,1] 10
b[2]
8
Para k de 2 at 3 passo 1 faa x[2]

1.6 Fim_Para k=2


a[2,2] 5
b[3]
6
Para k de 3 at 3 passo 1 faa x[3]

0.6 Fim_Para k=3


a[3,3] 10
Para k de 1 at 2 passo 1 faa
Para l de 1 at 3 passo 1 faa y[1]=x[1]=0.7 Fim_Para l=1
Para l de 2 at 3 passo 1 faa y[2]=x[2]=-1.6 Fim_Para l=2
Para l de 3 at 3 passo 1 faa y[3]=x[3]=0.6 Fim_Para l=3
Para i de 1 at 3 passo 1 faa
S[1]=b[1]=7
Para j de 1 de 3 passo 1 faa Se 1<>1 falso Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 1<>2 ento s[1]=s[1]-a[1,2]y[2]=7-2*(-1.6)=10.2 Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 1<>3 ento s[1]=s[1]-a[1,3]y[3]=10.2-1*(0.6)=9.6 Fim_Para j=3
s[1] 9.6
x[1]

0.96
a[1,1] 10

10
Fim_Para i=1
Para i de 2 at 3 passo 1 faa
S[2]=b[2]=-8
Para j de 1 de 3 passo 1 faa
Se 2<>1ento s[2]=s[2]-a[2,1]y[1]=-8-1*(0.7)=-8.7 Fim_Para j=1
Para j de 2 de 3 passo 1 faa Se 2<>2 falso Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 2<>3 ento s[2]=s[2]-a[2,3]y[3]=-8.7-1*(0.6)=-9.3 Fim_Para j=3
s[2]
9.3
x[2]

1.86
a[2,2]
5
Fim_Para i=2
Para i de 3 at 3 passo 1 faa
S[3]=b[3]=6
Para j de 1 de 3 passo 1 faa
Se 3<>1ento s[3]=s[3]-a[3,1]y[1]=6-2*(0.7)=4.6 Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 3<>2 ento s[3]=s[3]-a[3,2]y[2]=4.6-3*(-1.6)=9.4 Fim_Para j=2
Para j de 3 de 3 passo 1 faa Se 3<>3 falso Fim_Para j=3

s[3]
9.4

0.94
a[3,3] 10
Fim_Para i=3
Fim_Para k=1
Para k de 2 at 2 passo 1 faa
Para l de 1 at 3 passo 1 faa y[1]=x[1]=0.96 Fim_Para l=1
Para l de 2 at 3 passo 1 faa y[2]=x[2]=-1.86 Fim_Para l=2
Para l de 3 at 3 passo 1 faa y[3]=x[3]=0.94 Fim_Para l=3
Para i de 1 at 3 passo 1 faa
S[1]=b[1]=7
Para j de 1 de 3 passo 1 faa Se 1<>1 falso Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 1<>2 ento s[1]=s[1]-a[1,2]y[2]=7-2*(-1.86)=10.72 Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 1<>3 ento s[1]=s[1]-a[1,3]y[3]=10.72-1*(0.94)=9.78 Fim_Para j=3
s[1] 9.78
x[1]

0.978
a[1,1] 10
Fim_Para i=1
Para i de 2 at 3 passo 1 faa
S[2]=b[2]=-8
Para j de 1 de 3 passo 1 faa
Se 2<>1ento s[2]=s[2]-a[2,1]y[1]=-8-1*(0.96)=-8.96 Fim_Para j=1
Para j de 2 de 3 passo 1 faa Se 2<>2 falso Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 2<>3 ento s[2]=s[2]-a[2,3]y[3]=-8.96-1*(0.94)=-9.9 Fim_Para j=3
s[2]
9.9
x[2]

1.98
a[2,2]
5
Fim_Para i=2
Para i de 3 at 3 passo 1 faa
x[3]

11
S[3]=b[3]=6
Para j de 1 de 3 passo 1 faa
Se 3<>1ento s[3]=s[3]-a[3,1]y[1]=6-2*(0.96)=4.08 Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 3<>2 ento s[3]=s[3]-a[3,2]y[2]=4.08-3*(-1.86)=9.66 Fim_Para j=2
Para j de 3 de 3 passo 1 faa Se 3<>3 falso Fim_Para j=3
s[3]
9.66
x[3]

0.966
a[3,3] 10
Fim_Para i=3
Fim_Para k=2
Escreva x[1]=0.978
Escreva x[2]=-1.98
Escreva x[3]=0.966

12

Algoritmo de Mtodo de Gauss Seidel com m iteraes


Inicio

n, m, a[i,j], b[i]

k1,n,1

x[k] 0

k1,m,1
i1,n,1

s[i] b[i]

j1,n,1

F
I<>j
V
s[is[i]-a[i,j]*x[j]

x[i] s[i]/a[i,i]

x[i]

Fim

13

Pseudocdigo do Mtodo de Gauss Seidel com m iteraes


Dados Iniciais
Ler n, nmeros de equaes e incgnitas do sistema de equaes lineares
Ler m, nmero de iteraes
Ler a[i,j], coeficientes das variveis do sistema de equaes lineares
Ler b[i], termos independentes do sistema de equaes lineares
Para i de 1 at n passo 1 faa x[k ] 0
Para k de 1 at m passo 1 faa
Para i de 1 at n passo 1 faa
s[i]=b[i]
Para j de 1 de n passo 1 faa Se i<>j ento s[i]=s[i]-a[i,j]x[j] Fim_Para
s[i ]
x[i ]
a[i, i ]
Fim_Para
Fim_Para
Escreva x[i]

Programa Scilab do Mtodo de Gauss Seidel com m


iteraes
function [x,e] = GaussSeidel(a,b,n,m)
x=zeros(n,1)
y=zeros(n,1)
s=zeros(n,1)
d=zeros(n,1)
for k=1:1:m
for l=1:1:n
y(l)=x(l)
end
for i=1:1:n
s(i)=b(i)
for j=1:1:n
if i<>j then
s(i)=s(i)-a(i,j)*x(j)
end
end
x(i)=s(i)/a(i,i)
end
end
// Calculo do erro
for i=1:1:n
d(i)=x(i)-y(i)
end
e = max(abs(d))/max(abs(x))
endfunction

14

Exemplo
10 x1 2 x 2 x 3 7

x1 5 x 2 x 3 8
2 x 3x 10 x 6
2
3
1
Analisando as condies de convergncias
Como |2|+|1|<|10| e |1|+|1|<5 e |2|+|3|<|10| esto gera uma seqncia de valores que
converge a soluo do sistema de equaes lineares.
Dados Iniciais
Ler n = 3, nmeros de equaes e incgnitas do sistema de equaes lineares
Ler m =2, nmero de iteraes
10 2 1
7


a 1 5 1 , b 8
2 3 10
6


Para i de 1 at 3 passo 1 faa x[1] 0 Fim_Para k=1
Para i de 2 at 3 passo 1 faa x[2] 0 Fim_Para k=2
Para i de 2 at 3 passo 1 faa x[3] 0 Fim_Para k=3
Para k de 1 at 2 passo 1 faa
Para i de 1 at 3 passo 1 faa
s[1]=b[1]=7
Para j de 1 de 3 passo 1 faa Se 1<>1 falso Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 1<>2 ento s[1]=s[1]-a[1,2]x[2]=7-2*0=7 Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 1<>3 ento s[1]=s[1]-a[1,3]x[3]=7-1*0=7 Fim_Para j=3

s[1]
7

0.7
a[1,1] 10
Fim_Para i=1
Para i de 2 at 3 passo 1 faa
s[2]=b[2]=-8
Para j de 1 de 3 passo 1 faa
Se 2<>1 ento s[2]=s[2]-a[2,1]x[1]=-8-1*0.7=-8.7 Fim_Para j=1
Para j de 2 de 3 passo 1 faa Se 2<>2 falso Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 2<>3 ento s[2]=s[2]-a[2,3]x[3]=-8.7-1*0=-11.5 Fim_Para j=3
x[1]

s[2]
8.7

1.74
a[2,2]
5
Fim_Para i=2
Para i de 3 at 3 passo 1 faa
s[3]=b[3]=6
Para j de 1 de 3 passo 1 faa
x[2]

15
Se 3<>1 ento s[3]=s[3]-a[3,1]x[1]=6-2*0.7=4.6 Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 3<>2 ento s[3]=s[3]-a[3,2]x[2]=4.6-3*(-1.74)=-9.82 Fim_Para j=2
Para j de 3 de 3 passo 1 faa Se 3<>3 falso Fim_Para j=3

s[3]
9.82

0.982
a[3,3] 10
Fim_Para i=3
Fim_Para k=1
Para k de 2 at 2 passo 1 faa
Para i de 1 at 3 passo 1 faa
s[1]=b[1]=7
Para j de 1 de 3 passo 1 faa Se 1<>1 falso Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se 1<>2 ento s[1]=s[1]-a[1,2]x[2]=7-2*(-1.74)=10.48 Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 1<>3 ento s[1]=s[1]-a[1,3]x[3]=10.48-1*(0.982)=9.498 Fim_Para j=3
s[1] 9.498
x[1]

0.9498
a[1,1]
10
Fim_Para i=1
Para i de 2 at 3 passo 1 faa
s[2]=b[2]=-8
Para j de 1 de 3 passo 1 faa
Se 2<>1 ento s[2]=s[2]-a[2,1]x[1]=-8-1*0.9498=-8.9498 Fim_Para j=1
Para j de 2 de 3 passo 1 faa Se 2<>2 falso Fim_Para j=2
Para j de 3 de 3 passo 1 faa
Se 2<>3 ento s[2]=s[2]-a[2,3]x[3]=-8.9498-1*(0.982)=-9.9318 Fim_Para
j=3
x[3]

s[2]
- 9.9318

-1.98636
a[2,2]
5
Fim_Para i=2
Para i de 3 at 3 passo 1 faa
s[3]=b[3]=6
Para j de 1 de 3 passo 1 faa
Se 3<>1 ento s[3]=s[3]-a[3,1]x[1]=6-2*(0.9498)=4.1004 Fim_Para j=1
Para j de 2 de 3 passo 1 faa
Se
3<>2
ento
s[3]=s[3]-a[3,2]x[2]=4.1004-3*(-1.98636)=10.05948
Fim_Para j=2
Para j de 3 de 3 passo 1 faa Se 3<>3 falso Fim_Para j=3
x[2]

s[3] 10.05948

1.005948
a[3,3]
10
Fim_Para i=3
Fim_Para k=2
Escreva x[1]=0.9498
Escreva x[2]=-1.98636
Escreva x[3]=1.005948
x[3]

S-ar putea să vă placă și