參考文獻:matlab函式庫查詢辭典 徐東豔 孟曉剛編著
[函式描述]
x=gmres(a,b)
檢視求解線性方程組a*x=b的解x。nxn的稀疏矩陣a必須是方程且應是大型稀疏矩陣。列向量b的長度必須為n。引數a可以是乙個函式afun以使得afun(x)返回a*x,對於這一語法格式,gmres並不重新啟動,迭代的最大次數為min(n,10)。
如果gmres收斂,則顯示這一結果的資訊。如果gmres在最大迭代步後沒有收斂或者由於某種原因而停止,則列印警告資訊,顯示相對殘差範數norm(b-a*x)/norm(b)並且顯示該方法停止或者失效時的迭代步數。
gmres(a,b,restart)
在每一次重新開始內部迭代時才重新開始方法。外部迭代的最大數目為min(n/restart,10),總迭代的最大步數為restart*min(n/restart,10).如果restart為n或者,則gmres並不重新開始,則總迭代的最大數目為min(n,10)
gmres(a,b,restart,tol)
指定方法的誤差。如果tol為,則函式gmres將使用預設值1e-6.
gmres(a,b,restart,tol,maxit)
指定外部迭代的最大次數,也就是說,迭代的總次數不超過restart*matrix。如果引數maxit為,則矩陣gmres使用預設值min(n/restart,10);如果引數restart為n或者,則總迭代的最大次數為maxit(而非restart*matxit)。
gmres(a,b,restart,tol,maxit,m)和 gmres(a,b,restart,tol,maxit,m1,m2)
使用預處理矩陣m或者m=m1*m2有效地求解方程組inv(m)*a*x=inv(m)*b.如果m為,則函式gmres不適應預處理矩陣,m可以是乙個函式,它返回m\x
gmres(a,b,restart,tol,maxit,m1,m2,x0)
指定初始的猜測值。如果x0為,則函式gmres將使用預設值,乙個全為零的向量。
gmres(afun,b,restart,tol,maxit,m1fun,m2fun,x0,p1,p2,…)
將引數傳遞到函式afun(x,p1,p2,…),m1fun(x,p1,p2,…)和m2fun(x,p1,p2,…)中。
[x,flag]=gmres(a,b,…)
返回乙個收斂標誌符:
flag=0
函式gmres在maxit外部迭代步數之內收斂到期望的誤差
flag=1
函式gmres迭代maxit次但沒有收斂
flag=2
預處理矩陣m為病態條件陣
flag=3
函式gmres停滯(兩個連續迭代步的結果相同)
當flag的值不為0時,返回的解x是在所有迭代過程中得到的具有最小範數殘差的結果。如果指定輸出flag,則不顯示任何訊息。
[x,flag,relres]=gmres(a,b,…)
返回相當殘差範數norm(b-a*x)/norm(b),如果flag的值為0,則relres<=tol,
[x,flag,relres,iter]=gmres(a,b,…)
返回計算x時外部和內部迭代次數,其中0<=iter(1)<=maxit且0<=iter(2)<=restart.
[x,flag,relres,iter,resvec]=gmres(a,b,…)
返回每乙個內部迭代時的殘差範數向量,包含norm(b-a*x0).
Matlab 在Matlab中如何畫圓
rectangle函式功能 建立二維矩形物件。1.1 rectangle position x,y,w,h 其中以x,y為起始座標開始,畫出長為w,寬為h的矩形。1.2 rectangle curvature a,b 指定矩陣邊的曲率,可以使它從矩形到橢圓不同變化,水平曲率x為矩形寬度的分數,是沿著...
LibSVM 在matlab中的使用
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...
LibSVM 在matlab中的使用
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...