Está en la página 1de 3

MÉTODO JACOBI

A=ingresar(' INGRESE LA MATRIZ DE COEFICIENTES A= ')

b=ingresar(' INGRESE LA MATRIZ DE TERMINOS INDEPENDIENTES b= ')

x=ingresar(' INGRESE EL VECTOR (EN COLUMNAS) CON LAS APROXIMACIONES INICIALES= ')

niter=ingresar(' INGRESE EL NUMERO DE ITERACIONES ')

tole=ingresar(' INGRESE EL VALOR DE LA TOLERANCIA ')

detA=det(A); %Se calcula el porcentaje de la matriz de coeficientes A

if detA==0 %Verifica que el determinante sea diferente de cero para poder dar solución a las
ecuaciones, si es cero, no tiene unica solución

disp(' EL DETERMINANTE ES CERO, EL SISTEMA NO TIENE SOLUCION UNICA ')

return

end

n=length(b)

D=diag(diag(A))

L=-tril(A,-1)

U=-triu(A,1)

mostrar(' SOLUCION: ')

mostrar(' LA MATRIZ DE TRANSICION DE JACOBI ES : ')

Tj=inv(D)*(L+U)

mostrar(' ')

mostrar(' Tj ')

mostrar(' ')

mostrar(Tj)

respec=max(abs(eig(Tj)))
mostrar(' ')

mostrar(' EL RADIO ESPECTRAL ES IGUAL A ',respec)

mostrar(' ')

si respec>1

mostrar(' EL RADIO ESPECTRAL ES MAYOR QUE 1 ')

mostrar(' EL METODO NO CONVERGE ')

fin

mostrar(' EL VECTOR DE ITERACION DE JACOBI ES: ')

Cj=inv(D)*b

mostrar(' ')

mostrar(' Cj ')

mostrar(' ')

mostrar(Cj)

i=0

err=tole+1

z=[i,x(1),x(2),x(3),err]

mientras err>tole & i<niter

xinic=Tj*x+Cj

err=norm(xinic-x)

%err=max(abs(xinic-x))

%err=norm(xinic-x)/norm(xinic)

x=xinic;
i=i+1

z(i,1)=i

z(i,2)=x(1)

z(i,3)=x(2)

z(i,4)=x(3)

z(i,5)=err

fin

mostrar(' SOLUCION HALLADA EN i ITERACIONES ')

mostrar(' ')

para in=1:n

mostrar(' X ',in,xinic(in))

fin

mostrar(' ')

mostrar(' CON UN ERROR DE ')

mostrar(' ')

mostrar (err)

mostrar(z)

También podría gustarte