求解线性系统
线性代数方程是系统的方程
a1 x1 + a2 x2 + a3 x3 +⋯+ an xn = 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 =
3 4 1
-2 0 3
1 2 4
>> b = [2 1 0]'
b =
2
1
0
>> x = inv(A) * b
x =
-1.1818
1.5000
-0.4545
>> A\b
ans =
-1.1818
1.5000
-0.4545
解决2×2方程组
最简单的系统是2 x 2系统, 只有两个方程和两个未知数。对于这些系统, 对于矩阵的逆有一个简单的定义, 它使用矩阵的行列式D。
对于系数矩阵, A通常定义为
行列式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 =
1 3
2 4
>> b = [-2;1]
b =
-2
1
>> det(A)
ans =
-2
>> inv(A)
ans =
-2.0000 1.5000
1.0000 -0.5000
>> x = inv(A) * b
x =
5.5000
-2.5000
评论前必须登录!
注册