矩阵+线性代数的种种基础函数
很像Matlab,但稍稍复杂了些,在定义矩阵的时候。
import numpy as np
from numpy.linalg import *
def main():
eye=np.eye(3) #生成三阶的单位矩阵
print(eye)
m=np.array([[1,2],[3,4]])
print('Inv:')
print(inv(m))#利用模块numpy.linalg中的函数inv()求矩阵的逆
print()
print('Transport:')
print(m.transpose())#利用numpy数组自带函数transpose()求矩阵的转置
print()
print('Det:')
print(det(m))#利用模块numpy.linalg中的函数det()求矩阵的行列式值
print()
print('Eig:')
print(eig(m))#将会返回两个数组,第一个由特征值组成,第二个由特征向量组成
print('解线性方程组:')
y=np.array([[5.],[7.]])
print('A=')
print(m)
print('b=')
print(y)
print('A\\b=',solve(m,y))#解线性方程组,参数分别时系数矩阵,右端项
print()
print('Coef:')#皮尔逊相关系数
print(np.corrcoef([1,0,1],[0,2,1]))
print('Poly:')
print()
p=np.poly1d([4,3,2,1])#多项式从高次项到低次项系数
print(p)
print(p([1,2,3]))#分别计算x=1,2,3时多项式的函数值
if __name__ =="__main__":
main()
Result:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Inv:
[[-2. 1. ]
[ 1.5 -0.5]]
Transport:
[[1 3]
[2 4]]
Det:
-2.0000000000000004
Eig:
(array([-0.37228132, 5.37228132]), array([[-0.82456484, -0.41597356],
[ 0.56576746, -0.90937671]])) #第一个数组表示特征值,第二个数组表示特征向量。
解线性方程组:
A=
[[1 2]
[3 4]]
b=
[[5.]
[7.]]
A\b= [[-3.]
[ 4.]]
Coef:
[[ 1. -0.8660254]
[-0.8660254 1. ]]
Poly:
3 2 #这一行和下一行是一体的,表示正对下方x的指数。
4 x + 3 x + 2 x + 1
[ 10 49 142]