MATLAB求线性方程组
第三章 线性方程组
§3.1 求线性方程组的唯一解或特解 一. 用克拉默法则 例3.1.1. 求方程组 3.1.1. =1 5 x1 + 6 x2 x1 + 5 x2 + 6 x3 =0 x2 + 5 x3 + 6 x4 =0 x3 + 5 x4 + 6 x5 = 0 x4 + 5 x5 = 1 的解. 的解
第三章 线性方程组
§3.2 求线性方程组的通解
>> >> >> >>
A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; b=[1 4 0]’;B=[A b];n=4; %未知量的个数 R_A=rank(A);R_B=rank(B);format rat R_A==R_B&R_A==n,X=A\ if R_A==R_B&R_A==n,X=A\b %这是有唯一解的情况 elseif R_A==R_B&R_A<n,C=rref(B) %化B为行最简形 solves’ else X= ‘Equation has no solves’ %无解的情况 %MATLAB运行后得到如下结果 end %MATLAB运行后得到如下结果
即
X =
x4 + 5 x5 = 1
-79/133
1507/665
-229/133
37/35
212/665
第三章 线性方程组
§3.1 求线性方程组的唯一解或特解
二. 用矩阵除法
>> %把该方程组记为AX=b,则X=A\b 把该方程组记为AX=b AX=b, X=A\ >> A=[5,6,0,0,0; 1,5,6,0,0; 0,1,5,6,0; 0,0,1,5,6; 0,0,0,1,5]; b=[1;0;0;0;1];format rat,X=A ,X=A\ >> b=[1;0;0;0;1];format rat,X=A\b X = 1507/665 -229/133 37/35 -79/133 212/665
第三章 线性方程组
§3.1 求线性方程组的唯一解或特解
>> >> >> >> >> >> >> >> >> >> >> >>
a_1=[5;1;0;0;0];a_2=[6;5;1;0;0]; a_3=[0;6;5;1;0];a_4=[0;0;6;5;1]; a_5=[0;0;0;6;5];b=[1;0;0;0;1]; D=det([a_1,a_2,a_3,a_4,a_5]); D_1=det([b,a_2,a_3,a_4,a_5]); D_2=det([a_1,b,a_3,a_4,a_5]); D_3=det([a_1,a_2,b,a_4,a_5]); =1 5 x1 + 6 x2 D_4=det([a_1,a_2,a_3,b,a_5]); x1 + 5 x2 + 6 x3 =0 D_5=det([a_1,a_2,a_3,a_4,b]); x_1=D_1/D;x_2=D_2/D;x_3=D_3/D;x_4=D_4/D; x2 + 5 x3 + 6 x4 =0 x_5=D_5/D; rat,X=[x_1,x_2,x_3,x_4,x_5] x3 + 5 x4 + 6 x5 rat,X=[x_1;x_2;x_3;x_4;x_5] format rat,X=[x_1,x_2,x_3,x_4,x_5] = 0 ,X=[x_1;x_2;x_3;x_4;x_5]
第三章 线性方程组
§3.1 求线性方程组的唯一解或特解
三. 用矩阵的初等变换
>> A=[5,6,0,0,0;1,5,6,0,0;0,1,5,6,0; 0,0,1,5,6;0,0,0,1,5]; >> b=[1;0;0;0;1]; >> B=[A,b]; %增广矩阵 >> format rat 用初等行变换把B >> C=rref(B); %用初等行变换把B化为行最简形 >> X=C(:,6) %取C的最后一列 X = 911/402 -229/133 37/35 -79/133 95/298
X = Equation has no solves
第三章 线性方程组
§3.2 求线性方程组的通解
例3.2.3. 求方程组 3.2.3.
x1 + x2 − 3 x3 − x4 = 1 3 x1 − x2 − 3 x3 + 4 x4 = 4 x1 + 5 x2 − 9 x3 − 8 x4 = 0
的通解. 的通解. 1 2 2 1 先用函数null求系数矩阵 解: 先用函数null求系数矩阵 2 1 −2 −2
1 −1 −4 −3
的零空间的一组基: 的零空间的一组基:
第三章 线性方程组
§3.2 求线性方程组的通解
>> A=[1,2,2,1;2,1,-2,-2;1,-1,-4,-3]; %系数矩阵 A=[1,2,2,1;2,1,-2,-2;1,-1,-4,format rat,求A的零空间的标准正交基 C=null(A,’r’) % D=null(A,’r’) >> B=null(A)’r’) %求A的零空间的基 C=null(A,’r’ rat, D=null(A,’r’) ’r’ D = C B 2.0000 0.7177 5/30.0286 2 -1.6667 -0.6084-4/30.2725 -2 2.0000 -1.3333 1.0000 0.0857 0 -0.6241 1 0 0.3277 1 0.7317 0 0 1.0000
.
x1 = 3 / 2 x3 − 3 / 4 x4 + 5 / 4 x = 3 / 2 x + 7 / 4 x − 1/ 4 3 4 2 所以原方程组的通解为 3/ 2 −3 / 4 5 / 4 3/ 2 7 / 4 −1/ 4 X = k1 + k2 0 + 0 , 1 0 1 0 其中k 为任意实数. 其中k1, k2为任意实数.
C = 1 0 0 0 1 0 -3/2 -3/2 0 3/4 -7/4 0 5/4 -1/4 0
可见原方程组有无数多组解, 可见原方程组有无数多组解,且
第三章 线性方程组
§3.2 求线性方程组的通解
x1 − 3 / 2 x3 + 3 / 4 x4 = 5 / 4 x − 3 / 2 x − 7 / 4 x = −1/ 4 3 4 2
第三章 线性方程组
§3.2 求线性方程组的通解
§3.2 求线性方程组的通解 一. 求齐次线性方程组的通解 例3.2.1. 求方程组 3.2.1.
x1 + 2 x2 + 2 x3 + x4 = 0 2 x1 + x2 − 2 x3 − 2 x4 = 0 x1 − x2 − 4 x3 − 3 x4 = 0
的通解. 的通解
>> >> >> >> A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; b=[1 4 0]’;B=[A b];n=4; %未知量的个数 R_A=rank(A);R_B=rank(B);format rat R_A==R_B&R_A==n,X=A\ if R_A==R_B&R_A==n,X=A\b %这是有唯一解的情况 elseif R_A==R_B&R_A<n,C=rref(B) %化B为行最简形 X=‘Equation solves’% else X=‘Equation has no solves’%无解的情况 %MATLAB运行后得到如下结果 end %MATLAB运行后得到如下结果
的一个特解. 的一个特解 先用MATLAB把该方程组的增广矩阵 解: 先用 把该方程组的增广矩阵
1 1 −1 −1 1 3 −1 −3 4 4 1 5 −9 −8 0
化为行最简形
第三章 线性方程组
§3.1 求线性方程组的唯一解或特解
>> >> >> >>
A=[1,1,-1,-1;3,-1,-3,4;1,5,-9,-8]; A=[1,1,-1,-1;3,-1,-3,4;1,5,-9,b=[1;4;0]; B=[A,b]; %增广矩阵 用初等行变换把B C=rref(B); %用初等行变换把B化为行最简形
第三章 线性方程组
§3.2 求线性方程组的通解
二. 求非齐次线性方程组的通解 例3.2.2. 求解方程组 3.2.2.
x1 − 2 x2 + 3 x3 − x4 = 1 3 x1 − x2 + 5 x3 − 3 x4 = 2 2 x1 + x2 + 2 x3 − 2 x4 = 3
C = 1.0000 0 0 0 1.0000 0 0 0 1.0000 0.7500 -1.7500 0 1.2500 -0.2500 0
从中可以看出该方程组有无数多解, 从中可以看出该方程组有无数多解,而且 X=[1.25, – 0.25,0,0]T 就是该方程组的一个特解. 就是该方程组的一个特解.
第三章 线性方程组
§3.2 求线性方程组的通解
>> >> >> >> >> >> >>
A=[1 -2 3 -1;3 -1 5 -3;2 1 2 -2]; %系数矩阵 b=[1 2 3]’; B=[A b]; %增广矩阵 n=4; %未知量的个数 x1 % 2 x2 + 3 x3 R_A=rank(A); −系数矩阵的秩 − x4 = 1 R_B=rank(B); %增广矩阵的秩− 3 x = 2 3 x1 − x2 + 5 x3 4 if R_A==R_B&R_A==n, X=A\b %这是有唯一解的情况 2 x = 3 X=A\ 2 x 1 + x2 + 2 x3 − 4 elseif R_A==R_B&R_A<n, C=rref(B) %这是有无穷多个解的情况 X=‘Equation solves’% else X=‘Equation has no solves’%无解的情况 %MATLAB运行后得到如下结果 end %MAБайду номын сангаасLAB运行后得到如下结果