Я пытаюсь внедрить PCG в MATLAB без предусловителя. Ax = b, в котором A представляет собой матрицу лапласиана 100 на 100 2D, а b - все 1s.Предварительно обусловленный конъюгатный градиент (PCG) не может запускаться в MATLAB
n=10;
e = ones(n,1);
spe = spdiags([e -2*e e], -1:1,n,n);
Iz = speye(n);
A = kron(Iz,spe)+kron(spe,Iz);
b = ones(size(A,1),1);
[x0,fl0,rr0,it0,rv0] = pcg(A,b,1e-8,100);
Тем не менее, оказалось, что итерации не может начинаться и флаг
FL0 = 4
Это означает
Один из скалярных величин, вычисленных в ходе ГКП стал слишком мал или слишком большой, чтобы продолжить вычисление.