Está en la página 1de 8

A=[4 -1 1;4 -8 1;-2 1 5]

b=[7;-21;15]
U=tri
L=tril(A)
D=diag(diag(A))
TU=U-D %tridiagonal superior
U=A-tril(A) %opción 2
TL=L-D
L=A-triu(A)
function[x]=jacobi(A,b,x0)
D=diag(diag(A));
U=A-tril(A);
L=A-triu(A);
x=inv(D)*(L+U)*x0+inv(D)*b;
end
Para ejecutar en ventana de
comando:
[x]=jacobi([4 -1 1;4 -8 1; -2 1 5],
[7;-21;15],[0;0;0])
x0=x; %renombrar punto inicial
[x]=jacobi([4 -1 1;4 -8 1; -2 1 5],
[7;-21;15],x0) %Calcular iteraciones
function[xn,iter,error]=met_jacobi(A,b,x0,tol,it
ermax)
format long

D=diag(diag(A));
CU=tril(A)-A;
CL=triu(A)-A;

G=inv(D)*(CL+CU);
C=inv(D)*b;
iter=1;
error=1;
xn=x0;

while error>tol && iter<itermax


xn=G*xn+C;
error=norm(A*xn-b,inf);
iter=iter+1;
end
[xn,iter,error]=met_jacobi([4 -1 1; 4 -8 1; -2 1 5],[7;
-21; 15],[0;0;0],0.0000001,1000)

Calcular solución exacta:


A=[4 -1 1; 4 -8 1; -2 1 5]
b=[7; -21;15]
x=A\b %Opción 1
x=inv(A)*b %Opción 2
[x y]=meshgrid(-5:0.5:10);
z=-4*x+y+7;
surf(x,y,z)
hold on
z=-21-4*x+8y;
surf(x,y,z)
hold on
z=15+2*x-y
surf(x,y,z)

También podría gustarte