资源描述:
《gmres源程序 matlab》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、function[x,flag,relres,iter,resvec]=gmres(A,b,restart,tol,maxit,M1,M2,x,varargin)%GMRESGeneralizedMinimumResidualMethod.%X=GMRES(A,B)attemptstosolvethesystemoflinearequationsA*X=B%forX.TheN-by-NcoefficientmatrixAmustbesquareandtheright%handsidecolumnvectorBmusthavelengthN.
2、Thisusestheunrestarted%methodwithMIN(N,10)totaliterations.%%X=GMRES(AFUN,B)acceptsafunctionhandleAFUNinsteadofthematrix%A.AFUN(X)acceptsavectorinputXandreturnsthematrix-vector%productA*X.Inallofthefollowingsyntaxes,youcanreplaceAby%AFUN.%%X=GMRES(A,B,RESTART)restartsthemet
3、hodeveryRESTARTiterations.%IfRESTARTisNor[]thenGMRESusestheunrestartedmethodasabove.%%X=GMRES(A,B,RESTART,TOL)specifiesthetoleranceofthemethod.If%TOLis[]thenGMRESusesthedefault,1e-6.%%X=GMRES(A,B,RESTART,TOL,MAXIT)specifiesthemaximumnumberofouter%iterations.Note:thetotalnu
4、mberofiterationsisRESTART*MAXIT.If%MAXITis[]thenGMRESusesthedefault,MIN(N/RESTART,10).IfRESTART%isNor[]thenthetotalnumberofiterationsisMAXIT.%%X=GMRES(A,B,RESTART,TOL,MAXIT,M)and%X=GMRES(A,B,RESTART,TOL,MAXIT,M1,M2)usepreconditionerMorM=M1*M2%andeffectivelysolvethesystemin
5、v(M)*A*X=inv(M)*BforX.IfMis%[]thenapreconditionerisnotapplied.Mmaybeafunctionhandle%returningMX.%%X=GMRES(A,B,RESTART,TOL,MAXIT,M1,M2,X0)specifiesthefirstinitial%guess.IfX0is[]thenGMRESusesthedefault,anallzerovector.%%[X,FLAG]=GMRES(A,B,...)alsoreturnsaconvergenceFLAG:%0G
6、MRESconvergedtothedesiredtoleranceTOLwithinMAXITiterations.%1GMRESiteratedMAXITtimesbutdidnotconverge.%2preconditionerMwasill-conditioned.%3GMRESstagnated(twoconsecutiveiterateswerethesame).%%[X,FLAG,RELRES]=GMRES(A,B,...)alsoreturnstherelativeresidual%NORM(B-A*X)/NORM(B).
7、IfFLAGis0,thenRELRES<=TOL.Notewith%preconditionersM1,M2,theresidualisNORM(M2(M1(B-A*X))).%%[X,FLAG,RELRES,ITER]=GMRES(A,B,...)alsoreturnsboththeouterand%inneriterationnumbersatwhichXwascomputed:0<=ITER(1)<=MAXIT%and0<=ITER(2)<=RESTART.%%[X,FLAG,RELRES,ITER,RESVEC]=GMRES(
8、A,B,...)alsoreturnsavectorof%theresidualnormsateachinneriteration,includingNORM(B-A*X0).%