(translator=roro, ChineseSource=roro-20020630-8\lsqr.html, EnglishSource=c:\matlabr12\help\techdoc\ref\lsqr.html)
MATLAB Function Reference    
lsqr

LSQR 對於一般方程式共軛傾斜度(Conjugate Gradients)的執行

Syntax

Description

x = lsqr(A,b) A 具有一致性,則解線性方程式 A*x=b 中的 x;否則解最短距離 x 使 norm(b-A*x) 有最小值。m*n 的係數矩陣 A 不一定要正方矩陣,但行向量 b 的長度必須為 m。A 可為函數 afunafun(x) 回傳 A*xafun(x,'transp') 回傳 A'*x

lsqr 收歛,相關訊息將顯示出來。若 lsqr 經過最大次數的重覆或任何理由被停止以致於沒有收歛,將會列印出一警告訊息顯示相關剩餘 norm(b-A*x)/norm(b),而該作法下的重覆數字也將停止。

lsqr(A,b,tol) 定義方法的誤差。若 tol[],則 lsqr 使用預設值 1e-6

lsqr(A,b,tol,maxit) 定義最大重覆次數。若 maxit[],則 lsqr 使用預設值 min([m,n,20])

lsqr(A,b,tol,maxit,M1)lsqr(A,b,tol,maxit,M1,M2) 使用 n*n 的先決條件 MM = M1*M2 並有效地解方程式 A*inv(M)*y = by,其中 x = M*y。若 M[]lsqr 不使用任何先決條件。M 可為函數 mfun 其中 mfun(x) 回傳 M\xmfun(x,'transp') 回傳 M'\x

lsqr(A,b,tol,maxit,M1,M2,x0) 定義一 n*1 的初始推測。若 x0[],則 lsqr 使用預設值,即全為零的向量。

lsqr(afun,b,tol,maxit,m1fun,m2fun,x0,p1,p2,...) 傳送參數 p1,p2,... 至函式 afun(x,p1,p2,...)afun(x,p1,p2,...,'transp') 且相似地傳送至先決函數 m1funm2fun。

[x,flag] = lsqr(A,b,tol,maxit,M1,M2,x0) 亦回傳收歛旗標。

旗標
收歛性
0
lsqr maxit 次內收歛至期望的誤差 tol。
1
lsqr 重覆 maxit 次但並沒有收歛。
2
先決條件 M 不夠完善。
3
lsqr 沉滯(stagnated)。(兩次連續的重覆視為相同)。  
4

lsqr 計算的數值變得太小或太大以致於沒辦法繼續做計算。

flag 不為 0 時,解 x 回傳經由所有重覆次數的最小基準餘數(minimal norm residual)。若有定義 flag 的輸出,則不會顯示任何訊息。

[x,flag,relres] = lsqr(A,b,tol,maxit,M1,M2,x0) 亦回傳相關餘數的估計值 norm(b-A*x)/norm(b)。若 flag0relres <= tol

[x,flag,relres,iter] = lsqr(A,b,tol,maxit,M1,M2,x0) 亦回傳 x 計算時的重覆次數,即 0 <= iter <= maxit

[x,flag,relres,iter,resvec] = lsqr(A,b,tol,maxit,M1,M2,x0) 亦回傳在每一次重覆的剩餘基準估計向量,包括 norm(b-A*x0)

Examples

另外選擇使用矩陣向量乘法函數

如同 lsqr 的輸入。

See Also

bicg, bicgstab, cgs, gmres, minres, pcg, qmr, symmlq

@ (function handle)

References

[1]  Barrett, R., M. Berry, T. F. Chan, et al., Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, SIAM, Philadelphia, 1994.

[2]  Paige, C. C. and M. A. Saunders, "LSQR: An Algorithm for Sparse Linear Equations And Sparse Least Squares," ACM Trans. Math. Soft., Vol.8, 1982, pp. 43-71.


 lsqnonneg lu