Você está na página 1de 12

Definio de LU:

Para uma dada matriz Anxn cuja submatrizes principais so n, e


utilizando o seguinte teorema Ax=b, possvel reescrev-la atravs de duas
matrizes, uma L que ser triangular inferior com diagonal unitria e uma matriz
U que ser triangular superior.
Prova:
Ax=b
Ux=y
Ly=b
Ax=Ly
Ax=LUx
A=LU

Ex.:
A=|211|
|321|
|121|

=


L21*U11=1
L21*U12 + U22 = 4
L21= 1

=


1 2
1 4
1 0
L21 1
U11 U12
0 U22
1 2
1 4
1 0
1 1
1 2
0 2
Cdigo no matlab:
A=[3 1 2; 4 10 4; 6 5 8];
[z,n]=size(A);
U = zeros(n);
for k=1:n
U(k,k)=1;
end
L = zeros(n);
for k=1:n
L(k,k)=1;
end
p=n;
for i=1:n
p=p-1;
for j=1:p
m=i+j;
U(m,i) = (A(m,i)/A(i,i))*(-1);
L(m,i) = (A(m,i)/A(i,i));
end
A=U*A;
U = zeros(n);
for k=1:n
U(k,k)=1;
end
end

B=L*A

Print da tela:
Print do comando LU do Matlab:












Print da comparao entre o algoritmo implementado e a funo do Matlab:












Definio de QR:
Se baseando no teorema Ax=b, e dada uma matriz A, possivel
escrever tal matriz em duas matrizes Q ortogonal, que utilizar um rotator para
se escrita e R que ser triangular superior.
Prova:
Existe um rotator tal que:
Q(transposto)A= r11, onde r11=(a11+a21)(elevado ao quadrado)
0

defina: r12 a12
r22 = Q(transposto)a22

Seja
R= r11 r12
0 r22

Portanto temos:
Q(transposto)A=R
Ax=b
Q(transposto)Ax= Q(transposto)b
Rx=W ->resoluo por substituio para trs

Decomposio QR
Q(transposto)A=R
QQ(transposto)=QR
IA=QR
A=QR

Ex.:



x1=1
x2=1

cos = x1/ (sqrt)(x1 + x2) = 1/(sqrt)2
sen = x2/ (sqrt)(x1 + x2) = 1/(sqrt)2


Q =



Q = 1/(sqrt)2



R = Q(transposto)*A

R = 1/(sqrt)2





1 2
1 3
Cos -sen
sen cos
1 -1
1 1
1 1
-1 1
1 2
1 3
R = 1/(sqrt)2


Implementao no Matlab:
A = [2 4;6 8];
x1 = 1;
x2 = 1;
costeta = x1 / (sqrt((x1^2) + (x2^2)));
senteta = x2 / (sqrt((x1^2) + (x2^2)));
[z,n] = size(A);
Q = zeros(n);
for i=1:n
for k = 1 : z
if i==k
Q(i,k) = costeta;
elseif k>i
Q(i,k) = senteta * (-1);
else
Q(i,k) = senteta;
end
end
end
Qt = Q'
R = Qt * A
B = Q * R

Print da tela no Matlab:
2 5
0 1
Print do comando no Matlab:













Print da comparao entre o algoritmo implementado e a funo do Matlab:













Definio do Mtodo Gauss-Siedel
No mtodo de Gauss-Seidel, um sistema de equaes lineares Ax = b
escrito de forma equivalente x = Cx + g por separao da diagonal. Seja x(0)
uma aproximao inicial, pelo processo iterativo queremos calcular x(1),
x(2)...x(k) por:

Portanto, no mtodo de Gauss-Seidel, quando calcularmos xj(k+1) usamos
todos os valores de x1(k+1); : : : ; x j-1 (k+1) que j foram calculados e os
valores x j+1 (k); : : : ; x(k) n restantes.

Ex.:
Resolver o sistema abaixo pelo mtodo de Gauss-Seidel

10 x
1
+ 2 x
2
3 x
3
+ 2 x
4
= 32
2 x
1
15 x
2
+ 3 x
3
2 x
4
= -59
1 x
1
3 x
2
+ 20 x
3
+ 2 x
4
= -38
2 x
1
+ 2 x
2
1 x
3
+ 30 x
4
= 160

Isola-se, da mesma maneira, em cada equao, uma varivel.

x
1
= (32 2 x
2
+ 3 x
3
2 x
4
)/10
x
2
= (-59 - 2 x
1
3 x
3
+ 2 x
4
)/(-15)
x
3
= (-38 1 x
1
+ 3 x
2
2 x
4
)/20
x
4
= (160 2 x
1
2 x
2
+ 1 x
3
)/30

Sendo (0,0,0,0)
T
o ponto de partida, calcula-se x
1
neste ponto.
x
1
= (32 0 + 0 0) / 10 = 3,2
J se usa este valor de x
1
no clculo de x
2
, isto :
x
2
= (-59 2 x 3,2 + 0 0)/(-15) = 4,36
x
3
= (-38 3,2 + 3 x 4,36 0)/20 = -1,41
x
4
= (160 2 x 3,2 2 x 4,36 + (-1,41))/30 = 4,78

Chegamos ao valor (3,2 , 4,36 , -1,41 , 4,78)
T

Da a sequncia de valores:
(0,0,0,0) (3,2 , 4,36 , -1,41 , 4,78) (0,95 , 3,14 , -1,95 , 5,00)
(0,99 , 3,01 , -2,00 , 5,00) (1,00 , 3,00 , -2,00 , 5,00)
(1,00 , 3,00 , -2,00, 5,00)

Implementao no Matlab:
aux = 0;
i= 0;
%x2 = 0;
for i=1:10
x2 = aux;
x1 = -x2/2 + 3/2;
aux = (-2/10)*x1 + 1;
taxa = aux - x2;
i = i+1;
end
x1
x2
taxa
i


Print da Tela no Matlab












Referncias Bibliogrficas:
http://www.dma.uem.br/kit/arquivos/arquivos_pdf/sassenfeld.pdf
http://www.raymundodeoliveira.eng.br/Metodo_Gauss_Seidel.htm

Você também pode gostar