Buscar

Método Decomposição LU em SCILAB

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

clc
clear
n = 4;
A = [225 0 -25 0; 0 175 0 -125; -225 0 275 -50; 0 -25 -250 275];
b = [1400 100 2000 0];
L = zeros(n,n);
U = zeros(n,n);
for j=1:n
 L(j,j) = 1;
 for i=1:j
 soma = 0.0;
 for k=1:i-1
 soma = soma + L(i,k)*U(k,j);
 end
 U(i,j) = A(i,j) - soma; 
 end
 for i=j+1:n
 soma = 0.0;
 for k=1:j-1
 soma = soma + L(i,k)*U(k,j);
 end
 L(i,j) = (A(i,j)-soma)/U(j,j);
 end
end
printf('Matriz L: \n')
disp(L)
printf('\nMatriz U: \n')
disp(U)
printf('\nMatriz LU: \n')
disp(L*U)
printf('\nMatriz A: \n')
disp(A)
// resolve L y = b: substituicao progressiva
y = zeros(1,n);
y(1) = b(1)/L(1,1);
for i=2:n
 soma = 0.0;
 for j=1:i-1
 soma = soma + L(i,j)*y(j);
 end
 y(i) = (b(i)-soma)/L(i,i);
end
// resolve U x = y: substituicao regressiva
x(n) = y(n)/U(n,n);
for i=n-1:-1:1
 soma = 0.0;
 for j=i+1:n
 soma = soma + U(i,j)*x(j);
 end
 x(i) = (y(i)-soma)/U(i,i);
end
printf('Resultados: \n')
disp(x)

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Perguntas Recentes