0

コレスキー法の解決段階で置換アルゴリズムを順方向および逆方向に推定するにはどうすればよいですか?

関数を比較するにはどうすればよい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;
4

1 に答える 1

2

matlab の標準的なコレスキー分解 (chol(A)) は、対称 (正定値) 行列 A を上三角形式に分解します。線形連立方程式を解くには、単純に上三角形式を取り、後方代入によって解く必要があります。これにより、システムの変数値が得られます。

パラメーター行列 A と出力ベクトル B を使用して matlab でソリューションを完成させるには、次のようにします。

L = chol(A); % A must be sym and det(A) > 0
x = (L \ (L' \ b)); % L' is lower-triangular
于 2012-09-09T17:57:08.277 に答える