[英]Preconditioned Conjugate Gradient (PCG) cannot start in MATLAB
我正在嘗試在沒有前置條件的MATLAB中實現PCG。 Ax = b,其中A是100 x 100的2D拉普拉斯矩陣,b都是1。
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
它的意思是
pcg期間計算出的標量之一變得太小或太大而無法繼續計算。
剛發現,要使用PCG,A必須是正定的。 因此,使用-A代替A應該可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.