2012-09-09 93 views
0

如何在Cholesky方法的求解階段推導替換算法的前向和後向?如何比較功能choleskiSol?

如何比較功能choleskiSol

這是我的代碼choleskisol

function x = choleskiSol(L,b) 
% Solves [L][L’]{x} = {b} 
% USAGE: x = choleskiSol(L,b) 

n = length(b); 

if size(b,2) > 1 
    b = b’; 
end % {b} must be column vector 

for k = 1:n % Solution of [L]{y} = {b} 
    b(k) = (b(k) - dot(L(k,1:k-1),b(1:k-1)’))/L(k,k); 
end 

for k = n:-1:1 % Solution of {L}’{x} = {y} 
    b(k) = (b(k) - dot(L(k+1:n,k),b(k+1:n)))/L(k,k); 
end 
x = b; 

回答

2

標準Cholesky分解(CHOL(A))在MATLAB分解對稱(正定)矩陣,A,成上三角形式。要求解線性方程組,必須簡單地取上三角形式,並通過後向替換求解。這將產生系統的變量值。

要完成瓦特/參數的矩陣A和輸出矢量B在MATLAB中的解決方案:

L = chol(A); % A must be sym and det(A) > 0 
x = (L \ (L' \ b)); % L' is lower-triangular