线性代数-python
·
import numpy as np
#向量与矩阵(一维数组,二维数组)
v1 = np.array([1,2,3,4])
print("向量:\n",v1)
A = np.array([[1,2],
[3,4]])
print("矩阵:\n",A)
#常用线性代数运算
#矩阵的加法,减法
A1 = np.array([[1,2],
[3,4]])
A2 = np.array([[5,6],
[7,8]])
print(A1+A2)
print(A2-A1)
#数乘
print(2*A1)
print("A1*A2:\n",A1*A2) #对应位置元素相乘,无线性变换意义,用于加权或掩
#矩阵乘法,做2次线性变换,线性变换的复合
print("A1@A2:\n",A1@A2)
print("np.dot(A1,A2)\n",np.dot(A1,A2))
#矩阵转置,行变列,列变行
print("矩阵转置\n",A1.T)
#单位矩阵,2阶,3jie
I2 = np.eye(2)
I3 = np.eye(3)
print("2维单位矩阵\n",I2)
print("3维单位矩阵\n",I3)
#逆矩阵
A1_inv = np.linalg.inv(A)
A2_inv = np.linalg.inv(A1)
A3_inv = np.linalg.inv(A2)
print(A1_inv)
print(A2_inv)
print(A3_inv)
A4 = np.array([[1,2,3],[4,5,6],[0,0,0]])
A5 = np.array([[1,2,0],[4,5,0],[2,4,0]])
#print("A4的逆矩阵\n",np.linalg.inv(A4)) A4 线性变换后降维,没有逆矩阵
#print("A5的逆矩阵\n",np.linalg.inv(A5))
#行列式
detA2 = np.linalg.det(A2)
detA4 = np.linalg.det(A4)
print(detA2)
print(detA4)
#特征值与特征向量
eigenvalues,eigenvectors = np.linalg.eig(A2)
print("特征值\n",eigenvalues)
print("特征向量\n",eigenvectors)
#解线性方程组
A = np.array([[1,2],
[3,4]])
b = np.array([5,7])
x = np.linalg.solve(A,b)
print("线性方程组的解\n",x)
更多推荐

所有评论(0)