📜  MATLAB线性代数

📅  最后修改于: 2021-01-07 03:05:00             🧑  作者: Mango

线性代数

求解线性系统

线性代数方程是系统的方程

a 1 x 1 + a 2 x 2 + a 3 x 3 +⋯+ a n x n = b

其中a是常数,x是未知数, b是常数。一个解决方案是满足方程的数字s 1 ,s 2和s 3序列。

4x 1 + 5x 2 -2x 3 = 16

是这样一个方程,其中有三个未知数:x 1 ,x 2和x 3 。该方程的一种解决方案是x 1 = 3,x 2 = 4和x 3 = 8,因为4 * 3 + 5 * 4-2 * 8等于16。

线性代数方程的系统是一组的形式的方程:

a 11 x 1 + a 12 x 2 + a 13 x 3 +⋯+ a 1n x n = b 1
a 21 x 1 + a 22 x 2 + a 23 x 3 +⋯+ a 2n x n = b 2
a 31 x 1 + a 32 x 2 + a 33 x 3 +⋯+ a 3n x n = b 3
a m1 x 1 + a m2 x 2 + a m3 x 3 +⋯+ a mn x n = b m

这称为m * n方程组;有m个方程式和n个未知数。

矩阵形式

由于采用了矩阵乘法的方法,可以将这些方程式以矩阵形式定义为Ax = b,其中A是系数的矩阵,x是未知数的列向量,b是常数从等式的右侧:

x = b
a 11 a 12 a 13 … a 1n x 1 b 1
a 21 a 22 a 23 … a 2n x 2 b 2
a 31 a 32 a 33 … a 3n x 3 b 3
…………………………………………..
a m1 a m2 a m3 … a mn x n b m

解集是方程组的所有可能解的集合(解方程的未知数的所有值集)。所有线性方程组均具有:

  • 没有解决方案
  • 一种解决方案
  • 无限多个解决方案

使用矩阵逆的解决方案

解决此方程组的简单方法可能是使用矩阵逆。

A -1 A = 1

我们可以将矩阵方程AX = B的两边乘以A -1得到

A -1轴= A -1 B

要么

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定义为11 a 22 -a 12 a 21

x 1 + 3x 2 = -2
2x 1 + 4x 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