方法一最简行阶梯法 ·用将其增广矩阵[A,b]化为最简行阶梯型。相应MATLAB 命令为rref。程序如下: ·A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-5]b=[7;5;-7;-9] ·U=rref([A,b]) 。1 程序运行的结果为: 1.00 0 0 0 15.58 0 1.00 0 0 14.70 U= 0 0 1.00 0 -8.20 0 0 0 1.00 8.66 ·这个矩阵代表了以下的等价方程组,所以等式右端的四个 数也就是方程的解
方法一 最简行阶梯法 • 用将其增广矩阵[A,b] 化为最简行阶梯型。相应MATLAB 命令为rref。程序如下: • A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-5]; b=[7;5;-7;-9] • U=rref([A,b]) • 程序运行的结果为: • 这个矩阵代表了以下的等价方程组,所以等式右端的四个 数也就是方程的解。 1.00 0 0 0 15.58 0 1.00 0 0 14.70 0 0 1.00 0 -8.20 U = , 0 0 0 1.00 8.66
其他方法及比较 ·方法二:用x=inv(A)*b ·方法三:用x=Ab ·在方程数与未知数数日相等的适定方程的情况下, 三种方法所得的结果是一样的。如果方程是欠定 的,则行列式det(A)O。方法二、三会得不出可 信的解,如果方程是超定的,用方法二将导致出 错警告,用方法三将得出最小二乘意义下的解。 为了在任何条件下得出可靠的结果,建议经常用 化为最简行阶梯型的方法来解方程
其他方法及比较 • 方法二:用x=inv(A)*b • 方法三:用x=A\b • 在方程数与未知数数目相等的适定方程的情况下, 三种方法所得的结果是一样的。如果方程是欠定 的,则行列式det(A)≈0。方法二、三会得不出可 信的解,如果方程是超定的,用方法二将导致出 错警告,用方法三将得出最小二乘意义下的解。 为了在任何条件下得出可靠的结果,建议经常用 化为最简行阶梯型的方法来解方程
欠定方程解例【例5-53】 把例5-5-2中第四个方程改为: 4x1+2x2+7x3-778/222x4=877/222 ,求其解。 解:输入新参数 A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-778222] b=[7;5,-7;877/222]: 方法一:键入U=rref[A,b),得到 1.0000 00-1.6757 1.0676 01.0000 0 -1.8378-1.2162 U0= 0 01.0000 0.9820 0.3018 0 0 0 0 0 这个最简行阶梯形式说明原来的方程组是欠定的
欠定方程解例【例5-5-3】 把例5-5-2中第四个方程改为: ,求其解。 解:输入新参数 A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-778/222]; b=[7;5;-7;877/222]; 方法一:键入U=rref([A,b]),得到 这个最简行阶梯形式说明原来的方程组是欠定的。 1.0000 0 0 -1.6757 1.0676 0 1.0000 0 -1.8378 -1.2162 0 , 0 0 1.0000 0.9820 0.3018 0 0 0 0 0 U = 1 2 3 4 4x + 2x + 7x -778/222 x 877 / 222 =
欠定方程组解的特点 它等价于下列方程组: X -1.6757x4= 1.0676 X2 -1.8378x=-1.2162 x3+0.9820x4= 0.3018 ·这是一组包括四个变量的三个有效方程。因此没有唯一的 解。其中4可以任意设定,即可以看作任意常数C,: x=1.0676+1.6757c x2=-1.2162+1.8378c x3=0.3018-0.9820c 代入不同的c可以得到不同的解,因此欠定方程组有 无数个解。这些解组成一根在空间中的直线
欠定方程组解的特点 它等价于下列方程组: • 这是一组包括四个变量的三个有效方程。因此没有唯一的 解。其中x4可以任意设定,即可以看作任意常数c,: • 代入不同的c可以得到不同的解,因此欠定方程组有 无数个解。这些解组成一根在空间中的直线。 1 4 2 4 3 4 -1.6757 = 1.0676 -1.8378 = -1.2162 +0.9820 = 0.3018 x x x x x x 1 2 3 = 1.0676 1.6757 = -1.2162 1.8378 = 0.3018 - 0.9820 x c x c x c + +
用方法二、三:键入X=inv(A)*b或X=Ab,得到: Warning:Matrix is close to singular or badly scaled. Results may be inaccurate.RCOND 3.590822e-018. ·及 4.8378 2.9189 -1.9077 ● 2.2500 计算机告诉我们,这个结果是不准确的。其原因在于矩阵 犹是说,A的迸极示不,众簧度鉴det(A-0,nkA=3。 A的行列式接近于零 条件数RC0ND=3.590822e- 018,可以得知计算结果有效数位减小的程度。MATLAB 的是有效数位是16位,现在算得的结果有效数位要减去18 位,所以得出的结果是根本不能相信的
用方法二、三:键入x=inv(A)*b或x=A\b,得到: • Warning: Matrix is close to singular or badly scaled. • Results may be inaccurate. RCOND = 3.590822e-018. • 及 • • 计算机告诉我们,这个结果是不准确的。其原因在于矩阵 A的行列式接近于零,不难检验,det(A)=0,rank(A)=3。 就是说,A的逆极小。从逆条件数RCOND = 3.590822e- 018,可以得知计算结果有效数位减小的程度。MATLAB 的是有效数位是16位,现在算得的结果有效数位要减去18 位,所以得出的结果是根本不能相信的。 4.8378 2.9189 -1.9077 2.2500 x =