Resolver lu
// del producto entre los valores del renglon i con los
// valores de la columna i
function valor = prodpunt(desde,hasta,renglon,v1,v2)valor =0;
for i=desde:hasta
valor = valor + (v1(renglon,i)*v2(i));
end
return valor;
endfunction
//Este algoritmo encuentra los valores que dan solucion al sistema//haciendo sustitución hacia adelante. La matriz A tiene que ser
// triangular inferior.
function res = sustitAdelante(A,b) // valores de entrada la matriz A y el vector b
n =length(b); // n sera igual al numero de elementos del vector v
res(1) = b(1)/A(1,1); // con esto encontramo s el primer elemento del vector solución
for j=2:n // para los siguientes elementos delvector solucion se requiere de hacer un despeje
res(j) = (b(j) - prodpunt(1,j-1,j,A,res)) / A(j,j); // para esto utilizamos la funcion prodpunt
end
return res;
endfunction//Este algoritmo encuentra los valores que dan solucion al sistema
//haciendo sustitución hacia atrás. La matriz A tiene que ser
// triangular superior.
function res = sustitAtras(A,b)
n =length(b); // n será igual al tamaño del vector b
res(n) = b(n)/A(n,n); // se encuentra el ultimo valor del vector solución
j=n-1;
while j>=1 // mientras que j sea mayor o igual que1 realizara un despeje, para lo que utiliza la función prodpunt
res(j) = (b(j) - prodpunt(j+1,n,j,A,res)) / A(j,j); // asi se encuentran los valores del vector solución faltantes
j =j-1; // una vez encontrado el valor para j= n-1 va a encontrar j-2 por eso es sustitución hacia atras
end
return res;
endfunction
clc;
function res=descomponerLU(A)
tam=size(A);n=tam(1);
L=zeros(n,n);
U=zeros(n,n);
for i=1:n
L(i,i)=1
end
for i=1:n
for j=1:i-1
L(i,j)=(1/U(j,j))*(A(i,j)-getfactor(i,j,A,U,L,%f))
end
for j=1:n...
Regístrate para leer el documento completo.