文章目录
矩阵和向量积
矩阵乘积
- 定义
内积
矩阵乘法相关知识
矩阵的本质就是线性方程式,两者是一一对应关系。
矩阵的最初目的,只是为线性方程组提供一个简写形式。
矩阵乘法证明
有三组未知数 x、y 和 t,其中 x 和 y 的关系如下。
有了这两组方程式,就可以求 y 和 t 的关系。从矩阵来看,很显然,只要把第二个矩阵代入第一个矩阵即可。
从方程式来看,也可以把第二个方程组代入第一个方程组。
上面的方程组可以整理成下面的形式。
2. 代码实现
计算两个矩阵的乘积,如果是一维数组则是它们的内积。
numpy.dot(a,b,[,out])
【例】
import numpy as np
x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
print(x)
y = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])
print(y)
z1 = np.dot(x,y)
z2 = np.dot(y,x)
print(z1)
print(z2)
矩阵特征值与特征向量
- 定义
如果把矩阵看作运动,对于运动而言:特征值就是运动的速度,特征向量就是运动的方向。
资料参考:矩阵特征值和特征向量 - 代码实现
import numpy as np
#创建对角矩阵
x = np.diag((1,2,3))
#计算特征值
y = np.linalg.eigvals(x)
print(y)
#计算特征值和特征向量
a,b = np.linalg.eig(x)
#a是特征值,b是特征向量
print(a)
print(b)
【例】判断对称阵是否为正定阵(特征值是否全部为正)
import numpy as np
A = np.arange(16).reshape(4, 4)
print(A)
#将方阵转换成对称阵
A = A+A.T
print(A)
B = np.linalg.eigvals(A)
print(B)
#判断是不是所有的特征值都大于0
if np.all(B>0):
print('YES')
else: