Está en la página 1de 10

Mtodo de Jacobi

Para resolver

dada una aproximacin inicial

Entrada:
El nmero de ecuaciones e incgnitas n; los elementos
A, los elementos
tolerancia

de b; los elementos

de la matriz
de

; la

; el nmero mximo de iteraciones N.

Salida:
La solucin aproximada

o el mensaje de que se rebaso el nmero de

iteraciones.

Seudocdigo del Algoritmo de Jacobi


%% Metodo Jacobi
clear all
close all
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Ingreso de matrices y vectores
A=[10 5 0 0;5 10 -4 0;0 -4 8 -1;0 0 -1 5];%Matriz de coeficientes
b=[6 25 -11 -11];%Ingreso de vector fila
[m n]=size(A);

Xo=zeros(1,m);
K=0;
Norma=1;
fprintf('k x(1) x(2) x(3) x(4) Norma\n')
while Norma>0.5*(10^(-7))
K=K+1;
fprintf('%2d',K)
for i=1:4
suma=0;
for j=1:4
if i~=j
suma=suma+A(i,j)*Xo(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.4f',X(i))
end
Norma=norm((Xo-X),2);
fprintf('%10.4f\n',Norma)
Xo=X;
if K>100
disp('No se alcanzo la convergencia')
break
end
end

Resultados Obtenidos
K

x(1)

x(2)

x(3)

x(4)

Norma

0.6000

2.5000 -1.3750 -2.2000

3.6525

2 -0.6500

1.6500 -0.4000 -2.4750

1.8197

3 -0.2250

2.6650 -0.8594 -2.2800

1.2083

4 -0.7325

2.2687 -0.3275 -2.3719

0.8402

5 -0.5344

2.7352 -0.5371 -2.2655

0.5587

6 -0.7676

2.5523 -0.2906 -2.3074

0.3878

7 -0.6762

2.7676 -0.3873 -2.2581

0.2578

8 -0.7838

2.6832 -0.2735 -2.2775

0.1790

9 -0.7416

2.7825 -0.3181 -2.2547

0.1190

10 -0.7913

2.7436 -0.2656 -2.2636

0.0826

11 -0.7718

2.7894 -0.2862 -2.2531

0.0549

12 -0.7947

2.7714 -0.2619 -2.2572

0.0381

13 -0.7857

2.7926 -0.2714 -2.2524

0.0253

14 -0.7963

2.7843 -0.2603 -2.2543

0.0176

15 -0.7921

2.7940 -0.2646 -2.2521

0.0117

16 -0.7970

2.7902 -0.2595 -2.2529

0.0081

17 -0.7951

2.7947 -0.2615 -2.2519

0.0054

18 -0.7974

2.7929 -0.2591 -2.2523

0.0037

19 -0.7965

2.7950 -0.2601 -2.2518

0.0025

20 -0.7975

2.7942 -0.2590 -2.2520

0.0017

21 -0.7971

2.7952 -0.2594 -2.2518

0.0011

22 -0.7976

2.7948 -0.2589 -2.2519

0.0008

23 -0.7974

2.7952 -0.2591 -2.2518

0.0005

24 -0.7976

2.7951 -0.2589 -2.2518

0.0004

25 -0.7975

2.7953 -0.2589 -2.2518

0.0002

26 -0.7976

2.7952 -0.2588 -2.2518

0.0002

27 -0.7976

2.7953 -0.2589 -2.2518

0.0001

28 -0.7976

2.7952 -0.2588 -2.2518

0.0001

29 -0.7976

2.7953 -0.2588 -2.2518

0.0001

30 -0.7976

2.7953 -0.2588 -2.2518

0.0000

31 -0.7976

2.7953 -0.2588 -2.2518

0.0000

32 -0.7976

2.7953 -0.2588 -2.2518

0.0000

33 -0.7976

2.7953 -0.2588 -2.2518

0.0000

34 -0.7976

2.7953 -0.2588 -2.2518

0.0000

35 -0.7976

2.7953 -0.2588 -2.2518

0.0000

36 -0.7976

2.7953 -0.2588 -2.2518

0.0000

37 -0.7976

2.7953 -0.2588 -2.2518

0.0000

38 -0.7976

2.7953 -0.2588 -2.2518

0.0000

39 -0.7976

2.7953 -0.2588 -2.2518

0.0000

40 -0.7976

2.7953 -0.2588 -2.2518

0.0000

41 -0.7976

2.7953 -0.2588 -2.2518

0.0000

42 -0.7976

2.7953 -0.2588 -2.2518

0.0000

43 -0.7976

2.7953 -0.2588 -2.2518

0.0000

44 -0.7976

2.7953 -0.2588 -2.2518

0.0000

45 -0.7976

2.7953 -0.2588 -2.2518

0.0000

46 -0.7976

2.7953 -0.2588 -2.2518

0.0000

47 -0.7976

2.7953 -0.2588 -2.2518

0.0000

Anlisis de Resultados

La convergencia se dio en la iteracin 47, por lo que fue demorado por ende se
obtuvo el mismo resultado que se obtiene por el mtodo directo.

Mtodo de Gauss- Seidel


Para resolver

dada una aproximacin inicial

Entrada:
El nmero de ecuaciones e incgnitas n; los elementos
A, los elementos
tolerancia

de b; los elementos

de la matriz
de

; la

; el nmero mximo de iteraciones N.

Salida:
La solucin aproximada
iteraciones.

o el mensaje de que se rebaso el nmero de

Seudocdigo del Algoritmo de Jacobi


%% Metodo Gauus -siedel
clear all
close all
clc
format short
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Ingreso de matrices y vectores
A=[10 5 0 0;5 10 -4 0;0 -4 8 -1;0 0 -1 5]%Matriz de coeficientes
b=[6 25 -11 -11]%Ingreso de vector fila
[m n]=size(A);
Xo=zeros(1,m);
X=Xo;
K=0;
Norma=1;
fprintf('k x(1) x(2) x(3) x(4) Norma\n')
while Norma>0.5*(10^(-7))
K=K+1;
fprintf('%2d',K)
for i=1:4
suma=0;
for j=1:4
if i~=j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.4f',X(i))

end
Norma=norm((Xo-X),2);
fprintf('%10.4f\n',Norma)
Xo=X;
if K>100
disp('No se alcanzo la convergencia')
break
end
end

Resultados Obtenidos
k

x(1)

x(2)

x(3)

x(4)

Norma

0.6000

2.2000 -0.2750 -2.2550

3.2188

2 -0.5000

2.6400 -0.3369 -2.2674

1.1864

3 -0.7200

2.7253 -0.2958 -2.2592

0.2396

4 -0.7626

2.7630 -0.2759 -2.2552

0.0604

5 -0.7815

2.7804 -0.2667 -2.2533

0.0273

6 -0.7902

2.7884 -0.2625 -2.2525

0.0126

7 -0.7942

2.7921 -0.2605 -2.2521

0.0058

8 -0.7961

2.7938 -0.2596 -2.2519

0.0027

9 -0.7969

2.7946 -0.2592 -2.2518

0.0012

10 -0.7973

2.7950 -0.2590 -2.2518

0.0006

11 -0.7975

2.7952 -0.2589 -2.2518

0.0003

12 -0.7976

2.7952 -0.2589 -2.2518

0.0001

13 -0.7976

2.7953 -0.2588 -2.2518

0.0001

14 -0.7976

2.7953 -0.2588 -2.2518

0.0000

15 -0.7976

2.7953 -0.2588 -2.2518

0.0000

16 -0.7976

2.7953 -0.2588 -2.2518

0.0000

17 -0.7976

2.7953 -0.2588 -2.2518

0.0000

18 -0.7976

2.7953 -0.2588 -2.2518

0.0000

19 -0.7976

2.7953 -0.2588 -2.2518

0.0000

20 -0.7976

2.7953 -0.2588 -2.2518

0.0000

21 -0.7976

2.7953 -0.2588 -2.2518

0.0000

22 -0.7976

2.7953 -0.2588 -2.2518

0.0000

23 -0.7976

2.7953 -0.2588 -2.2518

0.0000

Anlisis de Resultados
La convergencia se dio en la iteracin 23, por lo que fue mucho ms rpida por
ende se obtuvo el mismo resultado que se obtiene por el mtodo directo pero mas
rpido que por el mtodo de Jacobi.

Mtodo SOR

Para resolver

dado el parmetro

y la aproximacin inicial

Entrada:
El nmero de ecuaciones e incgnitas n; los elementos
A, los elementos
tolerancia

de b; los elementos

de la matriz
; el parmetro

, la

; el nmero mximo de iteraciones N.

Salida:
La solucin aproximada
iteraciones.

o el mensaje de que se rebaso el nmero de

Seudocdigo del Algoritmo de Jacobi


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%
clear all
close all
clc
A=[10 5 0 0;5 10 -4 0;0 -4 8 -1;0 0 -1 5]%Matriz A
b=[6 25 -11 -11]%Matriz Resultados
for i=1:4
N(i,:)=A(i,:)/A(i,i);
b(i)=b(i)/A(i,i);
end
N
U=triu(N)
L=tril(N)
Xo=zeros(1,4);
X=Xo;
D=[1/10 0 0 0;0 1/10 0 0;0 0 1/8 0;0 0 0 1/5];
Tj=D*(L+U)
I=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]
syms Lamda
Tjj=det(Tj-Lamda*I)
R=solve(Tjj)
R1=vpa(R)

Pj=0.40441971744021392020421602271848
w=((2)/(1+sqrt(1-((Pj)^(2)))))
Norma=1;
K=0
fprintf('K X(1) X(2) X(3) X(4) Norma\n')
while Norma>0.5*(10^(-7))
K=K+1;
fprintf('%2',K)
for i=1:4
sumaL=0;
sumaU=0;
for j=1:4
if i~=j
sumaL=sumaL+L(i,j)*X(j);
sumaU=sumaU+U(i,j)*Xo(j);
end
end
X(i)=X(i)+w*(b(i)-sumaL-X(i)-sumaU);
fprintf('%10.7f',X(i))
end
Norma=norm((Xo-X),2);
fprintf('%10.7f\n',Norma)
Xo=X;
if K>100
disp('No se alcanzo la convegencia')
break
end
end

Resultados Obtenidos.

X(1)

X(2)

X(3)

X(4)

Norma

0.6267714 2.2841790 -0.2433028 -2.3489937

3.3447397

-0.5942430 2.7183450 -0.3124032 -2.2586205

1.3008915

-0.7665315 2.7600874 -0.2757169 -2.2549882

0.1810659

-0.7806466 2.7809267 -0.2659949 -2.2531192

0.0270466

-0.7909014 2.7894153 -0.2617510 -2.2523159

0.0139954

-0.7948775 2.7928866 -0.2600223 -2.2519906

0.0055636

-0.7965132 2.7943084 -0.2593144 -2.2518572

0.0022838

-0.7971828 2.7948905 -0.2590245 -2.2518026

0.0009350

-0.7974570 2.7951289 -0.2589058 -2.2517802

0.0003828

-0.7975692 2.7952265 -0.2588572 -2.2517711

0.0001568

10

-0.7976152 2.7952664 -0.2588373 -2.2517673

0.0000642

11

-0.7976340 2.7952828 -0.2588292 -2.2517658

0.0000263

12

-0.7976417 2.7952895 -0.2588258 -2.2517651

0.0000108

13

-0.7976449 2.7952922 -0.2588245 -2.2517649

0.0000044

14

-0.7976462 2.7952933 -0.2588239 -2.2517648

0.0000018

15

-0.7976467 2.7952938 -0.2588237 -2.2517647

0.0000007

16

-0.7976469 2.7952940 -0.2588236 -2.2517647

0.0000003

17

-0.7976470 2.7952941 -0.2588236

-2.2517647

0.0000001

18

-0.7976470 2.7952941 -0.2588235

-2.2517647

0.0000001

19

-0.7976470 2.7952941 -0.2588235

-2.2517647

0.0000000

Anlisis de Resultados
Los resultados convergieron en la iteracin 19, el mtodo de SOR fue mucho ms
rpido gracias al peso realizado por w quien fue calculado por la descomposicin
LU el cual me determina una aproximacin ms precisa y rpida que los mtodos
anteriores.

También podría gustarte