Está en la página 1de 4

METODO JACOBI

Diagrama de flujo en matlab


Programación en Matlab

clear all
clc

n=input('Numero de ecuaciones (n): ');


A=input('INTRODUCIR LA MATRIZ A, MATRIZ 2D: ');
b= input('INTRODUCIR LA MATRIZ b, vector columna:
');
m= input('NUMERO MAXIMO DE ITERACIONES (m): ');
E= input('Error permitido (valor de la norma): ');

X0=zeros(1,n);
X=X0;
K=0;
Norma=1;

while Norma>1e-8
K=K+1;
fprintf('%d',K);
for i=1:n
suma=0;
for j=1:n
if i~=j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.6f',X(1));
end
Norma=norm(X0-X);
fprintf('%10.6f\n',Norma);
X0=X;
if K>=m
break
end
end

Para el siguiente sistema de ecuaciones:


15 x 1+ 4 x 2+ x3 =30−2 x1 +10 x 2−x 3=203 x 1+2 x 2+ 6 x3 =12

Verificar convergencia, obtener la solución con un error de 10−1

Dando forma: x k+1= β+ α . x k

x1 2 0 −4 /15 −1/15 x 1

| | |||
x 2 2 1/5
= + 0
x 3 2 −1/2 −1/3
1/10 . x 2
0 x3
|| |
0 −0.266 −0.066
|
α = 0.2 0
−0.5 −0.3 |
0.1 ; max |α|=0.8<1
0

‖α‖=max { 0.32,0 .3,0 .8 }< 1

∴ { x k }→ { x ¿ }

Iterando:

x k+1= β+ α . x k

K=0

Sea x 0 =β

2 0 −0.266 −0.066 2 1.336


1 0 1
|||
x =β +α . x x = 2 + 0.2 0
2 −0.5 −0.3
0.1 . 2 = 2.6
0 2 0.4 || | | |
K=1

2 0 −0.266 −0.066 1.336 1.282


2
x =β +α . x x = 1 2
2 +
|||
0.2 0
2 −0.5 −0.3
0.1
0
. 2.6
0.4
=
|| | | |
2.3072
0.552

1.282 1.336
|
max 2.3072− 2.6
0.552 0.4
=
|
0.29281 −1 −1
=1.2∗10 <10 ( falso)
2.3072 2.3072

K=2

2 0 −0.266 −0.066 1.282 1.3498


3

|| |
x 3=β +α . x 2 x = 2 + 0.2 0
2 −0.5 −0.3 0 0.552 || | | |
0.1 . 2.3072 = 2.3116
0.6668
1.3498 1.282
|
max 2.3116 −2.3072
0.6668 0.552 |=
0.1148
=0. 4∗10−1< 10−1 (cumple)
2.3072 2.3116

1.3498
| |
∴ x=x' ' ' = 2.3116 es la solucion con ℇ=10−1
0.6668

Resultados en matlab

También podría gustarte