Vous êtes sur la page 1sur 2

function x=Eliminacion_gaussiana_con_pivotamiento(A,b) n=length(A); for i=1:n-1 [m,r]=max(abs(A(i:n,i)));%devuelve en r la posicion del maximo en el vector columna abs(a(i:n,i)): i+r-1 aux=A(i,i:n); A(i,i:n)=A(i+r-1,i:n);%intercambio

de filas A(i+r-1,i:n)=aux; aux=b(i);%intercambio del termino independiente b(i)=b(i+r-1); b(i+r-1)=aux; for k=i+1:n l(k,i)=A(k,i)/A(i,i); for j=i+1:n A(k,j)=A(k,j)-l(k,i)*A(i,j); end b(k)=b(k)-l(k,i)*b(i); end end C=A; % Resolucion del sistema triangular x=zeros(n,1); x(n)=b(n)/A(n,n); for i=n-1:-1:1 s=0; for j=i+1:n s=s+A(i,j)*x(j); end x(i)=(b(i)-s)/A(i,i); end return

function X=jacobi(A,B,P,delta,max1) %Datos % - A es una matriz invertible de orden NxN. % - B es una matriz de orden Nx1. % - P es una matriz de orden Nx1: el punto inicial. % - delta es la tolerancia para P. % - max1 es el nmero mximo de iteraciones. %Resultados % - X es una matriz de orden Nx1: % la aproximacin a la solucin de AX=B generada por el mtodo % iterativo de Jacobi N=length(B); for k=1:max1 for j=1:N X(j)=(B(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j); end err=abs(norm(X'-P)); relerr=err/(norm(X)+eps); P=X';

if(err<delta)|(relerr<delta) break end end X=X';

function X=gseid(A,B,P,delta,max1) %Datos % - A es una matriz invertible de orden NxN. % - B es una matriz de orden Nx1. % - P es una matriz de orden Nx1: el punto inicial. % - delta es la tolerancia para P. % - max1 es el nmero mximo de iteraciones. %Resultados % - X es una matriz de orden Nx1: % la aproximacin a la solucin de AX=B generada por el mtodo % iterativo de Gauss-Seidel N=length(B); for k=1:max1 for j=1:N if j==1 X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1); elseif j==N X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N); else % X contiene la aproximacin k-sima % y P la k-1-sima. X(j)=(B(j)-A(j,1:j-1)*P(1:j-1)-A(j,j+1:N)*P(j+1:N))/A(j,j); end end err=abs(norm(X'-P)); relerr=err/(norm(X)+eps); P=X'; if(err<delta)|(relerr<delta) break end end X=X';