|
|
|
|
Strumenti |
06-07-2014, 09:43 | #1 |
Member
Iscritto dal: Sep 2009
Messaggi: 34
|
[Matlab] Problema Fattorizzazione LU con pivoting parziale
Dovrei implementare su Matlab una funzione che calcoli la fattorizzazione LU di una matrice con pivoting parziale.
Solo che c'è qualche errore che non riesco ad individuare nel codice, perchè dopo aver fattorizzato, scrivendo su Matlab inv(P)*L*U non mi torna fuori la matrice A di partenza.. Codice:
function [L, U, P] = GaussPP(A, b) n = length(A); L = eye(n); P = eye(n); for k=1 : n-1 [~, idx] = max(abs(A(k:n, k))); idx = idx+k-1; if idx > k s1 = A(k, :); A(k, :) = A(idx, :); A(idx, :) = s1; s1 = P(k, :); P(k, :) = P(idx, :); P(idx, :) = s1; s2 = b(k); b(k) = b(idx); b(idx) = s2; end for i=k+1 : n L(i, k) = A(i, k) / A(k, k); for j=k+1 : n A(i, j) = A(i, j) - L(i, k)*A(k, j); end b(i) = b(i) - L(i, k)*b(k); end end U = triu(A); end |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:25.