好吧,我得到了这个 Cholesky 分解代码,但我不断收到错误:
if i = k then
^^
错误:语法错误,意外=
这是我的代码:
clear;
clc;
function [L,LT]= Cholesky_decomposition(A)
//Compute the cholesky of a matrix
n = size(A,1);
for i = 1:n
for k = i:n
x = A(i,k);
for j = (i-1):-1:1
x = x - A(k,j)*A(i,j);
end
if i = k then
if (x<=0) then disp('Fail')
else p(i)= sqrt(x);
end
end
A(k,i) = x*p(i);
end
end
[L,LT] = A;
endfunction
A = [116 80 98 113; 80 66 80 93; 98 80 98 114; 113 93 114 133];
disp('A', A);
disp('The lower triangular matrix L is',[L,LT])
disp('The upper triangular matrix L by Scilab is',chol(A));
感谢任何帮助。 非常感谢。
比较是用
==
完成的,而 =
用于赋值:
if i == k then
会起作用的。