矩阵演算及python实现

矩阵相加

矩阵A,矩阵B,A和B是同型矩阵,即两个矩阵的行相同,列也相同。

矩阵的加法满足下列运算律(A,B,C都是同型矩阵)

交换律:A+B=B+A

结合律:(A+B)+C = A+(B+C)

python实现

import numpy as np
a = np.mat([[1, 12, 3], [3, 4, 3]])
b = np.mat([[2, 4, 5], [7, 1, 0]])
c = a + b
print(c)

输出
[[ 3 16  8]
[10  5  3]]

矩阵相减

python实现

import numpy as np
a = np.mat([[1, 12, 3], [3, 4, 3]])
b = np.mat([[2, 4, 5], [7, 1, 0]])
c = a - b
print(c)

输出
[[-1  8 -2]
[-4  3  3]]

矩阵相乘

矩阵A、矩阵B,当矩阵A列数和B矩阵的行数相等时才能相乘,若A是m*n矩阵,B是n*p矩阵,则它们的乘积C等于m*p矩阵。

矩阵相乘满足 以下运算律:

结合律:(A*B)*C = A*(B*C)

左分配律:(A+B)*C=A*C+B*C

右分配律:C*(A+B)+C*A+C*B

不满足交换律

python实现

import numpy as np
a = np.mat([[1, 0, 2], [-1, 3, 1]])
b = np.mat([[3, 1], [2, 1], [1, 0]])
c = a * b
print(c)
输出
[[5 1]
[4 2]]

矩阵数乘

矩阵的数乘满足以下运算律:

python实现

import numpy as np
a = np.mat([[1, 8, -3], [4, -2, 5]])
c = 2 * a
print(c)

输出
[[ 2 16 -6]
[ 8 -4 10]]

矩阵转置

矩阵A的行和列互换所产生的矩阵称为A的转置矩阵

矩阵转置满足以下运算律:

python实现

import numpy as np
a = np.mat([[2,4,3], [0,2,8]])
c = a.T
print(c)

输出
[[2 0]
[4 2]
[3 8]]

矩阵的迹

n*n矩阵A对角元素之和称为矩阵的迹(trace),记做tr(A)

python实现

import numpy as np
a = np.mat([[2, 4, 3], [0, 2, 8], [3, 6, 9]])
c = np.trace(a)
print(c)
输出
13

行列式

一个n*n的正方矩阵(n阶方阵)A的行列式记作det(A)或者|A|,一个2*2矩阵行列式表示如下

一个n阶方阵的行列式等于其任意行(或列)所有元素对其应的代数余子式乘积之和。

示例

python实现

import numpy as np
a = np.mat([[1, 2, 3], [5, 0, 5], [2, 4, 6]])
c = np.linalg.det(a)
print(c)
输出
0

矩阵的秩

矩阵A中非零子式的最高阶数称为矩阵的秩,记作r(A)

python实现

import numpy as np
a = np.mat([[1, 2, 3], [5, 0, 5], [2, 4, 6]])
c = np.linalg.matrix_rank(a)
print(c)
输出
2

猜你喜欢

转载自blog.csdn.net/weixin_41579863/article/details/106150739