GAUSS JORDAN function x = GaussJ(A,b) % Implementacion del metodo Gauss−Jordan % para resolver sistemas de ecuaciones % lineales. %% x = GaussJordan(A,b) %% Regresa x, la solucion del sistema Ax=b. %FIEE % Se crea la matriz aumentada A = [A b]; n = size(A,1); for i=1:n % Dividir renglon entre el pivote A(i ,:) = A(i,:)/A(i, i ); % Hacer ceros en la columna i for j=1:n if i˜=j A(j ,:) = A(j,:) − A(i,:)∗A(j, i ); end end end x = A(:,n+1);
GAUSS-SEIDEL function [x,err,k]=Gseidel_M(A,b,x0,tol,iter) % Método iterativo, Gauss-Seidel matricial % A: Matriz de coeficientes % b: Vector de terminos % x0: solucion inicial % tol: tolerancia % iter: numero de iteraciones [n,m]=size(A); if n~=m error('Matriz no cuadrada.'); end k=0; condi=0; while (condi==0 & k
PROGRAMA DE ELIMINACIÓN DE GAUSS %Programa de Eliminación de Gauss para un SEL
clc;clear disp(' ') disp(' ELIMINACION GAUSS CON PIVOTE PARA S.E.L.') disp(' ****************************************') disp(' ') disp(' Se tiene la ecuación matricial Ax=b') N=input(' Ingrese el número de ecuaciones: '); H=zeros(N,N); A=input(' Ingrese la matriz de coeficientes A[]: '); disp(' ') disp([A]) b=input(' Ingrese el vector columna de terminos independientes b[]: '); disp(' ') disp([b]); fprintf('La matriz ampliada es [A|b]:\n');disp([A b]); DET=1;R=0;I=1; while I<=(N-1) c=0;f=0; V=A(I:N,I); O=max(max(abs(V))); while c
H=tril(A); for g=1:N; H(g,g)=0; end A=A-H; DET=DET*A(N,N)*(-1)^R; if DET==0 disp(' "Hay un 0 en la diagonal principal" '); break else x(N)=b(N)/A(N,N); I=N-1; end while I>=1 x(I)=b(I); J=1+I; while J<=N x(I)=x(I)-A(I,J)*x(J); J=J+1; end x(I)=x(I)/A(I,I); I=I-1; end format short disp(' La matriz triangulizada es: '),disp(' '),disp([A]) for l=1:length(x); fprintf(' El valor de la variable x%d es: %f \n',l,x(1,l)) end disp(' ') fprintf(' La determinante de la matriz A es:\n'),disp(DET)
MÉTODO DE GAUSS CON PIVOTE % INVERSA % B=INVERSA(A) clc;clear; disp('INVERCION DE MATRICES POR EL METODO DE GAUSS CON PIVOTE') fprintf('*****************************************************\n\n'); % Devuelve en B la inversa de A. B es calculada % mediante la parcial ficticio para n sistemas que % permiten calcular las columnas de A a=input('\nDigite la matriz entre corchetes A[]:'); n=length(a); b=eye(n); % b es la identidad p=1:n; %transformacion del sistema en uno triangular for i=1:n-1 [m,r]=max(abs(a(i:n,i))); r=r+i-1; p([i r])=p([r i]); % pivotaje for k=i+1:n l=a(p(k),i)/a(p(i),i); a(p(k),i+1:n)=a(p(k),i+1:n)-l*a(p(i),i+1:n); b(p(k),:)=b(p(k),:)-l*b(p(i),:); end a a(p(i+1:n),i)=0; end a %resolucion de los sistemas triangulares x=zeros(n);
for i=n:-1:1 x(i,:)=(b(p(i),:)-a(p(i),i+1:n)*x(i+1:n,:))/a(p(i),i); end disp('La matriz inversa de A es :'); disp(x)
GAUSS SEIDEL 2 function x = GaussS(A,b,x0) % Implementacion del metodo Gauss−Seidel para % la solucion de sistemas de ecuaciones, % tomando como aproximacion inicial x0. % % x = GaussSeidel(A,b,x0) %% Regresa x, la solucion del sistema Ax=b. % El criterio de terminacion es que % norm(x−xAnt,Inf)/norm(x,Inf)
MÉTODO DE ELIMINACIÓN SIMPLE DE GAUSS %Metodo Eliminacion Gauss simple clc;clear; disp('METODO ELIMINACION GAUSS SIMLE PARA S.E.L') fprintf('********************************\n\n'); %Los datos se almacenan en el archivo datos.m %como matriz ampliada en la variable a %Los datos se ingresan en la variable a A=input('Ingrese los coeficientes del sistema A[]: '); b=input('Ingrese los terminos independientes del sistema b[]: ');
a=[A b]; %Calculos adicionales [m,n]=size(a); b=a(:,n); disp('matriz ampliada [A|b]:') disp(a) an=a; %valores iniciales descomposicion N la respuesta se %almacena en las matrices N y M N(:,1)=a(:,1); M(1,:)=a(1,1:m)/a(1,1); % eliminacion hacia adelante for i=1:m-1 for j=i+1:m fprintf('\n eliminacion fila %g columna %g \n',j,i) a(j,:)=a(j,:)-a(i,:)*a(j,i)/a(i,i); disp(a) end %descomposicion lu crout N(i+1:m,i+1)=a(i+1:m,i+1); M(i+1,i:m)=a(i+1,i:m)/(a(i+1,i+1)); end x(m)=a(m,m+1)/a(m,m); for k=m-1:-1:1 s=0; for p=k+1:m s=s+a(k,p)*x(p); end x(k)=(a(k,m+1)-s)/a(k,k); end % presentacion de resultados disp('matrices en la que X se almacena'); disp('matriz inferior =');disp(N); disp('matriz superior = ');disp(M); disp('solucion del sistema AX=B'); disp(x)
JACOBBI function x = Jaco(A,b,x0) % Implementacion del metodo Jacobi para la % solucion de sistemas de ecuaciones, tomando % como aproximacion inicial x0. %% x = Jaco(A,b,x0) %% Regresa x, la solucion del sistema Ax=b. % El criterio de terminacion es que % norm(x−xAnt,Inf)/norm(x,Inf)
while 1 x = T∗x + c; if (norm(x−xAnt,Inf)/norm(x,Inf)
JACOBI (2do Método) function [x,err,k]=Jacobi_M(A,b,x0,tol,iter) % Método iterativo, Jacobi matricial % A: Matriz de coeficientes % b: Vector de terminos % x0: solucion inicial % tol: tolerancia % iter: numero de iteraciones [n,m]=size(A); if n~=m error('Matriz no cuadrada.'); end k=0; condi=0; while (condi==0 & k