%Programa 3.2 (Triangularizacion superior seguida de sustitucion regresiva - pagina 150).
% Calculo de la solucion del sistema lineal AX=B mediante la reduccion a la forma
% triangular superior de la matriz ampliada [AB] seguida de la sustitucion regresiva.
%
%Sintaxis
% X = uptrbk(A,B)
%
%Entrada
% - A es una matriz invertible de orden n x n (cuadrada)
% - B es una matriz de orden n x 1 (columna)
%Resultados
% - X es la matriz de orden N x 1 que contiene la solucin de AX=B.
%Inicializamos X con una matriz C que sirve de almacen temporal
[N N]=size(A);
X=zeros(N,1);
C=zeros(1,N+1);
%Calculo de la matriz ampliada Aug=[AB]
Aug=[A B];
for p=1:N-1
%Pivoteo parcial en la columna q-esima
[Y,j]=max(abs(Aug(p:N,p)));
%Intercambio las filas q-esima y (j+q-1)-esima
C=Aug(p,:);
Aug(p,:)=Aug(j+p-1,:);
Aug(j+p-1,:)=C;
if Aug(p,p)==0
'A es singular. No hay solucion o no es unica'
break
end
%Proceso de eliminacion en la columna q-esima
for k=p+1:N
m=Aug(k,p)/Aug(p,p);
Aug(k,p:N+1)=Aug(k,p:N+1)-m*Aug(p,p:N+1);
end
end
%Sustitucion regresiva en [UY] usando el programa 3.1
X=backsub(Aug(1:N,1:N),Aug(1:N,N+1));
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario