Está en la página 1de 9

Gauss simple

clc ; clear
disp('metodo de la eliminacion simple')
n=input('ingrese el orden de la matriz n= ');
disp('ingrese la matriz A')
for i=1:n
for j=1:n
fprintf('a(%d %d)= ',i,j);
a(i,j)=input('\');
end
end
a
disp('ingrese la matriz B');
for i=1:n
fprintf('b(%d)= ',i);
b(i)=input('\');
end
b
for i=1:n
a(i,n+1)=b(i);
end
aux=0;
for j=1:n-1
if a(j,j)~=0
for i=j+1:n
k(i,j)=-a(i,j)/a(j,j);
for r=j:n+1
a(i,r)=a(j,r)*k(i,j)+a(i,r);
a
end
end
else
aux=1;
break
end
end
a
if aux==0
for i=n:-1:1
suma=0;
for j=i+1:n
suma=suma+a(i,j)*x(j);
end
x(i)=(a(i,n+1)-suma)/a(i,i);
end
disp('la solucion es')
x
else
disp('no se puede hallar la solucion, pivotin nulo')
end

gauss jordan
clear all ;
clc;
fprintf('Dame la matriz aumentada\n\n');
f=input('Cuantas filas tiene la matriz: ');
c=input('Cuantas columnas tiene la matriz: ');
for k=1:c

for j=1:f
fprintf('fila : %x\n',j)
fprintf('columna : %x',k)
r=input('Numero de esta fila y columna: ');
a(j,k)=r;
j=j+1;
end
k=k+1;
end
a
pause
for k=1:c-1
a(k,:)=a(k,:)/a(k,k);
for j=k+1:f
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j+1;
a
pause
end
k=k+1;
a
pause
end
for k=f:-1:2
for j=k-1:-1:1
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j-1;
a
pause
end
k=k-1;
a
pause
end
fprintf('resultado\n');

pivotin parcial
clc; clear
disp('
METODO DE GAUSS CON PIVOTING
PARCIAL');
fprintf('\n');
n=input('Ingrese el numero de FILAS de su matriz i= ');
m=input('Ingrese el numero de COLUMNAS de su matriz j= ');
while (m~=n)
fprintf('\n');
fprintf('ERROR: La matriz tiene que ser CUADRADA (i=j)');
fprintf('\n');
n=input('Ingrese el numero de FILAS de su matriz i= ');
m=input('Ingrese el numero de COLUMNAS de su matriz j= ');
end
fprintf('\n');
disp('Ingrese los ELEMENTOS de su matriz')
for i=1:n
for j=1:m
fprintf('a(%d,%d)=',i,j);
a(i,j)=input('\');
end
end
a

disp ('Ingrese los terminos independientes')


for i=1:m
fprintf ('b(%d)=',i);
b(i)=input('\');
end
b
for i=1:n;
a(i,n+1)=b(i);
end
a
for j=1:n-1;
r=j;
for i=j+1:n
if abs(a(i,j))<=0
fprintf('LA MATRIZ ES SINGULAR');
break
if abs(a(i,j))>a(r,j);
r=i
end
end
end
for m=1:n+1;
t=a(j,m);
a(j,m)=a(r,m);
a(r,m)=t;
end
a
for i=j+1:n
k(i,j)=-a(i,j)/a(j,j);
for r=j:n+1
a(i,r)=k(i,j)*a(j,r)+a(i,r);
end
end
end
a
x(n)=(a(n,n+1))/a(n,n);
for i=n-1:-1:1;
suma=0;
for j=i+1:n;
suma=suma+a(i,j)*x(j);
end
x(i)=(a(i,n+1)-suma)/a(i,i);
end
fprintf('\n');
fprintf( 'SOLUCION =')
fprintf('\n');
x

Crown
% FACTORIZACION lU CROULT
clc
clear
fprintf(' FACTORIZACION LU CROULT\n\n\n');
disp('ingrese la matriz en corchetes y seraparando filas y columnas
con , y ; respectivamente')
A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
[n,m]=size(A);
C=[A,b];

fprintf('\nLa Matriz C, que corresponte a la matriz aumentada [Ab] es


= \n');
disp(C)
if n==m
for k=1:n
u(k,k)=1;
suma=0;
for p=1:k-1
suma=suma+L(k,p)*u(p,k);
end
L(k,k)=(A(k,k)-suma);
for i=k+1:n
suma=0;
for r=1:k-1
suma=suma+L(i,r)*u(r,k);
end
L(i,k)=(A(i,k)-suma);
end
for j=k+1:n
suma=0;
for s=1:k-1
suma=suma+L(k,s)*u(s,j);
end
u(k,j)=(A(k,j)-suma)/L(k,k); %
end
end
memoriau=1;
memoriaL=1;
for i=1:n
memoriaL=memoriaL*L(i,i);
end
producto=memoriaL*memoriau;
if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i);
end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i);
end
else
fprintf('\nEl determinante es igual a cero, por lo tanto el sistema
tiene infinita o ninguna solucion\n')
end
end
fprintf('\n Matriz Ab:\n')
disp(C)
fprintf('\n Matriz L:\n')
disp(L)
fprintf('\n Matriz U:\n')
disp(u)
fprintf('\n El vector Z:\n')
disp(z)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');

for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end

doolitle
clc ; clear
format long
fprintf(' FACTORIZACION LU DOOLITLE\n\n\n');
A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
[n,m]=size(A);
C=[A,b];
fprintf('\nLa Matriz C, que corresponte a la matriz aumentada [Ab] es
= \n');
disp(C)
if n==m
for k=1:n
L(k,k)=1;
suma=0;
for p=1:k-1
suma=suma+L(k,p)*u(p,k);
end
u(k,k)=(A(k,k)-suma);
for i=k+1:n
suma=0;
for r=1:k-1
suma=suma+L(i,r)*u(r,k);
end
L(i,k)=(A(i,k)-suma)/u(k,k);
end
for j=k+1:n
suma=0;
for s=1:k-1
suma=suma+L(k,s)*u(s,j);
end
u(k,j)=(A(k,j)-suma);
end
end
memoriau=1;
memoriaL=1;
for i=1:n
memoriau=memoriau*u(i,i);
end
producto=memoriaL*memoriau;
if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i);
end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i);

end
else
fprintf('\nEl determinante es igual a cero, por lo tanto el sistema
tiene infinita o ninguna solucion\n')
end
end
fprintf('\n Matriz Ab:\n')
disp(C)
fprintf('\n Matriz L:\n')
disp(L)
fprintf('\n Matriz U:\n')
disp(u)
fprintf('\n El vector Z:\n')
disp(z)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end

choleski
clc ;
clear ;
disp('METODO DE CHOLESKY');
n=input('Ingresar el orden de la matriz: ');
a=input('Ingrese la matriz a: ');
for i=1:n
for j=1:n
fprintf('a(%d,%d)=',i,j);
a(i,j)=input(' ');
end
end
b=input('Ingrese b: ');
for i=1:n
fprintf('b(%d)=',i);
b(i)=input('\');
end
a=[a,b'];
L(1,1)=a(1,1)^0.5;
i=2;
while i<=n
L(i,1)=a(1,i)/L(1,1);
i=i+1;
end
i=1;
while i<=n
s=0;
k=1;
while k<=i-1
s=s+L(i,k)^2;
k=k+1;
end
L(i,i)=sqrt(a(i,i)-s);
if i==n
L
end
j=i+1;
while j<=n
s=0;

k=1;
while k<=i-1
s=s+L(i,k)*L(j,k);
k=k+1;
end
L(j,i)=(a(j,i)-s)/L(i,i);
j=j+1;
end
i=i+1;
end
U=L'
n=length(b);
c(1)=b(1)/L(1,1);
i=2;
while i<=n
c(i)=(b(i)-L(i,1:i-1)*c(1:i-1)')/L(i,i);
i=i+1;
end
n=length(c);
x(n)=c(n)/U(n,n);
i=n-1;
while i>=1
x(i)=(c(i)-U(i,i+1:n)*x(1+i:n)')/U(i,i);
i=i-1;
end
X=x'

seider
clc ; clear
disp('metodo de gauss seider')
n=input('ingrese el orden de la matriz');
disp('ingrese los coeficientes de la matriz A')
for i=1:n
for j=1:n
fprintf('a(%d,%d)= ',i,j);
a(i,j)=input(' \');
end
end
a
disp('ingrese los coeficientes independientes')
for i=1:n
fprintf('b(%d)= ',i);
b(i)=input('\');
end
disp('ingrese la solucion inicial')
for i=1:n
fprintf('xo(%d)= ',i)
xo(i)=input('\');
end
tol=input('ingrese la tolerancia')
N=input('ingrese el numero maximo de iteraciones')
k=1;
aux=0;
while k<=N
for i=1:n
suma=0;
for j=1:i-1

suma=suma+a(i,j)*x(j);
end
for j=(i+1):n
suma=suma+a(i,j)*xo(j);
end
x(i)=(b(i)-suma)/a(i,i);
end
if norm(x-xo,inf)<=tol
norm(x-xo,inf)
aux=1;
break
end
k=k+1;
xo=x
end
if aux==1
disp('la solucion es :')
x
else
fprintf('la solucion no fue hallada luego de %d iteracciones',N)
end

jacobi
clc ; clear
disp('metodo de jacobi')
n=input('ingrese el orden de la matriz');
disp('ingrese los coeficientes de la matriz A')
for i=1:n
for j=1:n
fprintf('a(%d,%d)= ',i,j);
a(i,j)=input(' \');
end
end
disp('ingrese los coeficientes independientes')
for i=1:n
fprintf('b(%d)= ',i);
b(i)=input('\');
end
disp('ingrese la solucion inicial')
for i=1:n
fprintf('xo(%d)= ',i)
xo(i)=input('\');
end
tol=input('ingrese la tolerancia')
N=input('ingrese el numero maximo de iteraciones')
k=1;
aux=0;
while k<=N
for i=1:n
suma=0;
for j=1:i-1
suma=suma+a(i,j)*xo(j);
end
for j=(i+1):n
suma=suma+a(i,j)*xo(j);
end
x(i)=(b(i)-suma)/a(i,i);
end
if norm(x-xo,inf)<=tol

aux=1;
break
end
k=k+1;
xo=x
end
if aux==1
disp('la solucion es :')
x
else
fprintf('la solucion no fue hallada luego de %d iteracciones',N)
end

También podría gustarte