簡體   English   中英

預條件共軛梯度(PCG)無法在MATLAB中啟動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM