如何用matlab解方程组?

如何用matlab解方程组?

我知道的Matlab解矩阵方法有: A=[1 6 9;6 5 2;8 3 4]b=[2;4;7]1)x=inv(A)*b 【就是你用的方法】2)x=A\b3)x=A^(-1)*b4)C=[A,b]rref(C)试试吧,也许好使。还有一个网址,下载一些经典程序,如:gmres_m.rar-gmres算法的一个特殊形式,用来求解大型稀疏矩阵方程,matlabGMres.rar-数值算法中另一个经典算法gmres算法,用来求解大型矩阵方程问题。,matlabarnoldi.rar-数值分析中经典的arnoldi算法,用来求解大型矩阵方程组的求解,matlabhttp://www.programsalon.com/sitemap/sitemap153_1450.htm补充:2.利用矩阵的LU、QR和cholesky分解求方程组的解(1)LU分解:LU分解又称Gauss消去分解,可把任意方阵分解为下三角矩阵的基本变换形式(行交换)和上三角矩阵的乘积。即A=LU,L为下三角阵,U为上三角阵。则:A*X=b 变成L*U*X=b所以X=U\(L\b) 这样可以大大提高运算速度。命令 [L,U]=lu (A)例1-78 求方程组 的一个特解。解: >>A=[4 2 -1;3 -1 2;11 3 0];>>B=[2 10 8]';>>D=det(A)>>[L,U]=lu(A)>>X=U\(L\B)显示结果如下:D = 0L = 0.3636 -0.5000 1.0000 0.2727 1.0000 0 1.0000 0 0U = 11.0000 3.0000 0 0 -1.8182 2.0000 0 0 0.0000Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.018587e-017.> In D:\Matlab\pujun\lx0720.m at line 4X = 1.0e+016 * -0.4053 1.4862 1.3511说明 结果中的警告是由于系数行列式为零产生的。可以通过A*X验证其正确性。(2)Cholesky分解若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即: 其中R为上三角阵。方程 A*X=b 变成 所以 (3)QR分解对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR方程 A*X=b 变形成 QRX=b所以 X=R\(Q\b)上例中 [Q, R]=qr(A)X=R\(Q\B)说明 这三种分解,在求解大型方程组时很有用。其优点是运算速度快、可以节省磁盘空间、节省内存。也许这个能帮你点儿忙。