线性方程组求解matlab程序.doc
线性方程组求解1直接法GAUSS消元法FUNCTIONXDELGAUSSA,BGAUSS消去法N,MSIZEANBLENGTHBDET1存储行列式值XZEROSN,1FORK1N1FORIK1NIFAK,K0RETURNENDMAI,K/AK,KFORJK1NAI,JAI,JMAK,JENDBIBIMBKENDDETDETAK,KENDDETDETAN,NFORKN11回代FORJK1NBKBKAK,JXJENDXKBK/AK,KENDEXAMPLEA101700009200095000920990300136000950013609898B101 XDELGAUSSA,BX097390004710010列主元GAUSS消去法FUNCTIONXDETGAUSSA,BGAUSS列主元消去法N,MSIZEANBLENGTHBDET1存储行列式值XZEROSN,1FORK1N1AMAX0选主元FORIKNIFABSAI,KAMAXAMAXABSAI,KRIENDENDIFAMAXK交换两行FORJKNZAK,JAK,JAR,JAR,JZENDZBKBKBRBRZDETDETENDFORIK1N进行消元MAI,K/AK,KFORJK1NAI,JAI,JMAK,JENDBIBIMBKENDDETDETAK,KENDDETDETAN,NFORKN11回代FORJK1NBKBKAK,JXJENDXKBK/AK,KENDEXAMPLEXDETGAUSSA,BX097390004710010GAUSSJORDAN消去法FUNCTIONXGAUSSJACOBIA,BGAUSSJACOBI消去法N,MSIZEANBLENGTHBXZEROSN,1FORK1NAMAX0选主元FORIKNIFABSAI,KAMAXAMAXABSAI,KRIENDENDIFAMAXK交换两行FORJKNZAK,JAK,JAR,JAR,JZENDZBKBKBRBRZEND进行消元BKBK/AK,KFORJK1NAK,JAK,J/AK,KENDFORI1NIFIKFORJK1NAI,JAI,JAI,KAK,JENDBIBIAI,KBKENDENDENDFORI1NXIBIENDEXAMPLEXGAUSSJACOBIA,BX097390004710010LU分解法FUNCTIONL,ULUALU分解NLENGTHALEYENUZEROSNFORI1NU1,IA1,IENDFORI2NLI,1AI,1/U1,1ENDFORR2NFORIRNUU0FORK1R1UUUULR,KUK,IENDUR,IAR,IUUENDFORIR1NLL0FORK1R1LLLLLI,KUK,RENDLI,RAI,RLL/UR,RENDENDFUNCTIONXLUSOLVA,BLU分解求解线性方程组AXBIFLENGTHALENGTHBERROR ERRORINING RETURNENDNLENGTHAL,ULUAY1B1FORI2NZ0FORK1I1ZZLI,KYKENDYIBIZENDXNYN/UN,NFORIN111Z0FORKI1NZZUI,KXKENDXIYIZ/UI,IENDEXAMPLEXLUSOLVA,BX097390004710010对称正定矩阵之CHOLESKY分解法FUNCTIONLCHOLESKYA对对称正定矩阵A进行CHOLESKY分解NLENGTHALZEROSNFORK1NDELTAAK,KFORJ1K1DELTADELTALK,J2ENDIFDELTAA936303619218030180180B111 XCHOL_SOLVEA,BX183331083307833对称正定矩阵之LDL’分解法FUNCTIONL,DLDL_FACTORA对称正定矩阵A进行LDL 分解NLENGTHALEYENDZEROSNDZEROS1,NTZEROSNFORK1NDKAK,KFORJ1K1DKDKLK,JTK,JENDIFABSDKXLDL_SOLVEA,BX1833310833078332迭代法RICHARDSON迭代法FUNCTIONX,NRICHASONA,B,X0,EPS,MRICHARDSON法求解线性方程组AXB方程组系数矩阵A方程组之常数向量B迭代初始向量X0E解的精度控制EPS迭代步数控制M返回值线性方程组的解X返回值迭代步数NIFNARGIN3EPS10E6M200ELSEIFNARGIN4M200ENDIEYESIZEAX1X0XIAX0BN1WHILENORMXX1EPSX1XXIAX1BNN1IFNMDISP WARNING迭代次数太多,现在退出 RETURNENDENDEXAMPLEA101700009200095000920990300136000950013609898B101 X0000 X,NRICHASONA,B,X0X097390004710010N5JACOBI迭代法FUNCTIONX,NJACOBIA,B,X0,EPS,VARARGINIFNARGIN3EPS10E6M200ELSEIFNARGINEPSX0XXBX0FNN1IFNMDISP WARNING迭代次数太多,可能不收敛 RETURNENDENDEXAMPLEX,NJACOBIA,B,X0X097390004710010N5GAUSSSEIDEL迭代法FUNCTIONX,NGAUSEIDELA,B,X0,EPS,MIFNARGIN3EPS10E6M200ELSEIFNARGIN4M200ELSEIFNARGINEPSX0XXGX0FNN1IFNMDISP WARNING迭代次数太多,可能不收敛 RETURNENDENDEXAMPLEX,NGAUSEIDELA,B,X0X097390004710010N4超松驰迭代法FUNCTIONX,NSORA,B,X0,W,EPS,MIFNARGIN4EPS10E6M200ELSEIFNARGIN2ERRORRETURNENDDDIAGDIAGA求A的对角矩阵LTRILA,1求A的下三角阵UTRIUA,1求A的上三角阵BINVDLW1WDWUFWINVDLWBXBX0FN1迭代次数WHILENORMXX0EPSX0XXBX0FNN1IFNMDISP WARNING迭代次数太多,可能不收敛 RETURNENDENDEXAMPLEX,NSORA,B,X0,1X097390004710010N4对称逐次超松驰迭代法FUNCTIONX,NSSORA,B,X0,W,EPS,MIFNARGIN4EPS10E6M200ELSEIFNARGIN2ERRORRETURNENDDDIAGDIAGA求A的对角矩阵LTRILA,1求A的下三角阵UTRIUA,1求A的上三角阵B1INVDLW1WDWUB2INVDUW1WDWLF1WINVDLWBF2WINVDUWBX12B1X0F1XB2X12F2N1迭代次数WHILENORMXX0EPSX0XX12B1X0F1XB2X12F2NN1IFNMDISP WARNING迭代次数太多,可能不收敛 RETURNENDENDEXAMPLEX,NSSORA,B,X0,1X09739000