《4.求解线性方程组》由会员分享,可在线阅读,更多相关《4.求解线性方程组(3页珍藏版)》请在金锄头文库上搜索。
1、求解线性方程组 1求线性方程组的唯一解 求解线性方程组 1求线性方程组的唯一解 当 n 阶方阵 A 非奇异时,线性方程组 Ax=b 的唯一解为 x=A -1b,可采用 Ab,即矩阵 A 左 除 b 求得唯一解。 A=1,2,3;4,5,6;7,8,0;b=1;2;3;C=sym(A);d=sym(b); Ab ans = -0.3333 0.6667 0 Cd ans = -1/3 2/3 0 注注:1. 也可采用 inv(A)*b 求线性方程组 Ax=b 的唯一解,但从数值精确性观点来看,使用 矩阵左除的方法较好。 2. 当 A 是 mn 矩阵时,如果 mn,则 Ab 给出的一般是线性方程组
2、 Ax=b 的最小二乘解。 因此,上面介绍的函数命令“”不能直接用于求线性方程组的基础解系或通解。 A=1,2,3;4,5,6;b=1;2;C=sym(A);d=sym(b); Ab ans = 0.0000 0 0.3333 Cd ans = -1/3 2/3 0 A=1,2,3;2,4,6;b=1;0;C=sym(A);d=sym(b); Ab Warning: Rank deficient, rank = 1 tol = 4.4686e-015. ans = 0 0 0.0667 Cd Warning: System is inconsistent. Solution does not
3、exist. In C:MATLAB6p1toolboxsymbolicsymmldivide.m at line 29 ans = Inf Inf Inf 2求线性方程组的通解 2求线性方程组的通解 设 A 是 mn 矩阵,b 是 m 维列向量,求解线性方程组 Ax=b 的有效方法是消元法,其步骤 刻板而有规律,容易机械化: 增广矩阵A,b用初等行变换化为“简化行阶梯形式”(reduced row echelon form) 判断是否有解, 有解时写出同解方程组取自由未知量为参数写出通解 Matlab 将这一计算过程集成为一个函数“rref” : U0=rref(A,b) U0,ip=rre
4、f(A,b) (只对数字矩阵可用) rrefmovie(A,b) (显示消元过程,只对数字矩阵可用) 输出的结果 U0 就是简化行阶梯形式,而 ip 是主未知量的列号。 例 1: A=1,2,2,1;2,1,-2,-2;1,-1,-4,-3;C=sym(A); U0=rref(A) U0 = 1.0000 0 -2.0000 -1.6667 0 1.0000 2.0000 1.3333 0 0 0 0 U0,ip=rref(A) U0 = 1.0000 0 -2.0000 -1.6667 0 1.0000 2.0000 1.3333 0 0 0 0 ip = 1 2 U0=rref(C) U0
5、 = 1, 0, -2, -5/3 0, 1, 2, 4/3 0, 0, 0, 0 同解方程组为 x1=2*x3+5/3*x4 x2=-2*x3-4/3*x4 通解为 x=k1*2,5/3,1,0+k2*-2,-4/3,0,1 (k1,k2 任意) 例 2: A=1,1,-3,-1;3,-1,-3,4;1,5,-9,-8;b=1;4;0;B=A,b;C=sym(B); B0=rref(B) B0 = 1 0 -3/2 3/4 5/4 0 1 -3/2 -7/4 -1/4 0 0 0 0 0 B1=rref(C) B1 = 1, 0, -3/2, 3/4, 5/4 0, 1, -3/2, -7/
6、4, -1/4 0, 0, 0, 0, 0 同解方程组为 x1=5/4+3/2*x3-4/4*x4 x2=-1/4+3/2*x3+7/4*x4 通解为 x=5/4,-1/4,0,0+k1*2,5/3,1,0+k2*-2,-4/3,0,1 (k1,k2 任意) 3求齐次线性方程组的基础解系 3求齐次线性方程组的基础解系 齐次线性方程组 Ax=0 的基础解系可通过如下的 Matlab 函数求出: null(A) 或 null(A,r) (规范形式,只用于数字矩阵) B=null(A) B = 995/1552 -3049/9416 -1725/3916 620/1239 -135/746 -1033/1712 198/329 1272/2401 B=null(A,r) B = 2 5/3 -2 -4/3 1 0 0 1 B=null(C) B = 2, 5/3 -2, -4/3 1, 0 0, 1