求解线性系统
线性代数方程是系统的方程
a1 x1 + a2 x2 + a3 x3 +?+ an x??n = b
其中a为常数, x为未知数, b为常数。一个解决方案是一个满足方程的数字s1, s2和s3序列。
例子
4×
1 + 5×
2-2×
3 = 16
这样的方程式中有三个未知数:x1, x2和x3。该方程的一种解决方案是x1 = 3, x2 = 4和x3 = 8, 因为4 * 3 + 5 * 4-2 * 8等于16。
线性代数方程组是以下形式的方程组:
a11 x1 + a12 x2 + a13 x3 +?+ a1n xn = b1
a21 x1 + a22 x2 + a23 x3 +?+ a2n xn = b2
a31 x1 + a32 x2 + a33 x3 +?+ a3n xn = b3
am1 x1 + am2 x2 + am3 x3 +?+ amn xn = bm
这称为m * n方程组;有m个方程式和n个未知数。
矩阵形式
由于采用了矩阵乘法的方法, 可以将这些方程式以矩阵形式定义为Ax = b, 其中A是系数的矩阵, x是未知数的列向量, b是常数为等式的右侧:
x = b
a11 a12 a13 …
a1n x1 b1
a21 a22 a23 …
a2n x2 b2
a31 a32 a33 …
a3n x3 b3
…
…
…
…
…
…
…
…
…
.. …
…
…
…
. …
…
..
am1 am2 am3 …
amn xn bm
解集是方程组的所有可能解的集合(解方程的未知数的所有值集)。所有线性方程组均具有:
- 没有解决方案
- 一种解决方案
- 无限多个解决方案
解决此方程组的简单方法可能是使用矩阵逆。
A-1 A = 1
我们可以将矩阵方程AX = B的两边乘以A-1得到
A-1 AX = A-1 B
Or
X = A-1 B
因此, 可以将解作为A的倒数与列向量b的乘积找到。
在MATLAB中, 有两种方法可以使用内置的inv函数和矩阵乘法, 也可以使用” \” 运算符:
>
>
A = [3 4 1;
-2 0 3;
1 2 4] A =341-203124 >
>
b = [2 1 0]' b =210 >
>
x = inv(A) * bx =-1.18181.5000-0.4545>
>
A\bans =-1.18181.5000-0.4545
解决2× 2方程组
最简单的系统是2 x 2系统, 只有两个方程和两个未知数。对于这些系统, 对于矩阵的逆有一个简单的定义, 它使用矩阵的行列式D。
对于系数矩阵, A通常定义为
文章图片
【MATLAB线性代数】行列式D定义为a11 a22-a12 a21
文章图片
例子
x1 + 3× 2 = -2
2× 1 + 4× 2 = 1
这将以矩阵形式编写为
文章图片
行列式D = 1 * 4 -3 * 2 = -2。
文章图片
MATLAB具有内置函数det来查找矩阵的行列式。
>
>
A = [1 3;
2 4]A =1324>
>
b = [-2;
1]b =-21>
>
det(A)ans =-2>
>
inv(A)ans =-2.00001.50001.0000-0.5000>
>
x = inv(A) * bx =5.5000-2.5000
推荐阅读
- MATLAB rref精简行梯形
- MATLAB 3D函数surfc()
- MATLAB 3D函数slice()
- MATLAB 3D函数cylinder()
- MATLAB 3D函数Ribbon()
- MATLAB 3D函数sphere()
- MATLAB 3D函数ellipsoid()
- MATLAB 3D函数stem3()
- MATLAB 3D函数mesh()