目录
向量形式、矩阵形式的方程组
则线性表出的问题可以通过方程组求解。
求解齐次线性方程组
求齐次线性方程组的基础解系的命令:
B=null(A) B的列向量是AX=0的规范正交的基础解系
B=null(A,'r') B的列向量是AX=0的有理数形式的基础解系
看一个例题:
>> B=null(A)
B =
-0.4005 0.2566
-0.5362 -0.7230
-0.6137 0.6065
0.3747 0.1866
0.1873 0.0933
>> B=null(A,'r')
B =
0.5000 -0.5000
-0.5000 -4.5000
1.0000 0
0 2.0000
0 1.0000
根据命令>> B=null(A,'r')可以得到结果,即:
基础解系的两个向量分别为:(0.5,-0.5,1,0,0)' 和(-0.5,-4.5,0,2,1)'
矩阵A满秩时,方程组有唯一解,即零解。
A =
1 2
2 3
>> B=null(A,'r')
B =
空的 2×0 double 矩阵
>> rank(A)
ans =
2
求解非齐次线性方程组
对于不满秩的矩阵,方程组有无穷多的解:
>> A=[1 -1 2 1;2 -1 1 2;1 0 -1 1]
A =
1 -1 2 1
2 -1 1 2
1 0 -1 1
>> B=[1 3 2]'
B =
1
3
2
>> X = linsolve(A,B)
警告: 秩亏,秩 = 2,tol = 2.175584e-15。
可见,这种方法无法求出方程组的解。应先求出其对应齐次方程组的基础解系,再求出特解。
>> B = null(A,'r')
B =
1 -1
3 0
1 0
0 1
这两个列向量组成基础解系;
求特解可以采用以下两种方法:
>> X = linsolve(A,B)
警告: 秩亏,秩 = 2,tol = 2.175584e-15。
X =
1.6667
0
-0.3333
0
>> A\B
警告: 秩亏,秩 = 2,tol = 2.175584e-15。
ans =
1.6667
0
-0.3333
0
齐次解和特解组合形成方程组的全部解。
对于由唯一解的方程组,可以直接求解。(判断是否有唯一解,可先求出rank(A)和rank(A,B),判断是否相等。)
先看一下有解判定定理:
>> A=[1 0 3 2;0 -4 2 6;0 0 -3 -1;0 0 0 -3]
A =
1 0 3 2
0 -4 2 6
0 0 -3 -1
0 0 0 -3
>> B=[-1 -2 -2 0]'
B =
-1
-2
-2
0
>> X = linsolve(A,B)
X =
-3.0000
0.8333
0.6667
0
>> rank(A)
ans =
4
>> rank(A,B)
ans =
4
此外,求出矩阵A的行最简形矩阵(reduced row echelon form)可以用rref()函数命令,在这里不做介绍。可以参考我这篇文章:
应用MATLAB求解线性代数题目(三)——n维向量
https://blog.csdn.net/m0_46732561/article/details/124480292?spm=1001.2014.3001.5502
运用这个函数命令也可以求得基础解系。
同解方程组
通过对参数的分类讨论,接下来的求解方法和上面的求解齐次线性方程组和求解非齐次线性方程组一样。
我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!
求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议。