python 线性代数

利用python进行线性代数的运算

pandas

专门用于数据挖掘的开源python库

以Numpy为基础,借力Numpy模块在计算方面性能高的优势

基于matplotlib,能够简便的画图

独特的数据结构

numpy

NumPy 是 Python 语言的一个第三方库,其支持大量高维度数组与矩阵运算。此外,NumPy 也针对数组运算提供大量的数学函数。

Fraction

Fraction–处理分数类

它会将所传入的参数进行计算并输出分数形式,且会自动约分。如果有负数,则负号自动归于分子。

用python解决线性代数问题

import numpy as np
import pandas as pd

a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=np.array([[1,2,1],[4,5,3],[8,1,6]])
print(a)

创建矩阵

对角矩阵

np.eye(5)#五阶单位矩阵
np.eye(5)*6#五阶数量矩阵

行向量,列向量

A = np.arange(6)#行向量[0 1 2 3 4 5]
print(A)
print(A.shape)#(6,)
A = np.arange(6).reshape(2,3)#列向量
print(A)
print(A.shape)#(6, 1)六行一列

转置

a.T
a.T.T#A的转置的转置是A

乘法

a*b

A,B的各元素分别相乘

np.dot(a,b)

A,B矩阵相乘

方阵的迹

方阵的迹:主对角线元素之和

迹的特性:

  1. 迹是满足线性映射的,即:

tr(A+B)=tr(A)+tr(B)

tr(cA)=ctr(A)

​ 其中A,B 是方阵,c是常数。

tr(A)=tr(A^{T})

  1. 矩阵乘积的迹

tr(X{T}Y)=tr(XY{T})=tr(Y{T}X)=tr(YX{T})=sum_{i,j}X_{ij}Y_{ij}

tr(P{-1}AP)=tr(P{-1}(AP))=tr((AP)P{-1})=tr(A(PP{-1}))=tr(A)

np.trace(a)
计算行列式
np.linalg.det(a)
矩阵求逆
np.linalg.inv(a)
解一元线性方程组
#  x + 2y = 3
#  4x + 5y = 6
import numpy as np
A = np.mat('1,2; 4,5')    # 构造系数矩阵 A
b = np.mat('3,6').T       # 构造转置矩阵 b (这里必须为列向量)
r = np.linalg.solve(A,b)  # 调用 solve 函数求解
求特征值,特征向量,矩阵的秩
x = np.diag((1, 6, 3))#创建一个对角矩阵
a,b = np.linalg.eig(x)
#特征值保存在a中,特征向量保存在b中
np.linalg.matrix_rank(x)#矩阵的秩

验证

(A+B)的转置=A的转置+B的转置

print((a+b).T)
print((a.T+b.T))

(kA)的转置=k*A的转置

print((15*a).T)
print(15*(a.T))

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>