线性代数相关知识(矩阵)——基于Python

1 矩阵的相关运算(和差、数乘、对应乘、逆)

1.1 产生需要利用的矩阵

import numpy as np  #numpy 处理数组的科学计算库
#numpy本身不依赖于于任何的python软件包,只依赖于加速的线性代数库

##原单个cell仅能输出最后一个结果,该代码可以让单个cell输出所有的结果
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

a=np.array([[1,2,3],[4,5,6]]);a  #类似于产生矩阵
b=np.array([[1,2],[3,4],[5,6]]);b 
c=np.array([[1,2,3]]);c
d=np.array([[9,8,7],[3,2,1]]);d

在这里插入图片描述

1.2 矩阵的加减法(即对应元素相加减、同型)

#array----利用于矩阵的运算
#①矩阵的加法:即对应元素相加
sum=a+d;sum
#②放缩矩阵:数乘矩阵
fangsuo=3*a;fangsuo
#③矩阵的乘法:形状abbc=ac型,即2332=22
chengfa=np.dot(a,b);chengfa
#④矩阵对应元素相乘:满足两个矩阵是同型矩阵
dy=a*d;dy
#⑤矩阵的转置
zz=b.T;zz

在这里插入图片描述

1.3 方阵的逆、行列式、秩

##numpy中的linalg模块:包含线性代数的函数,使用这个模块,可以计算矩阵的逆,
#求特征值、解线性方程组等。
#求方阵的逆
e=np.array([[1,2],[3,4]]);e
inv_e=np.linalg.inv(e);inv_e
#将方阵转化为行列式
det_e=np.linalg.det(e);det_e  #行列式的本质:数
#求方阵的秩rank
rank_e=np.linalg.matrix_rank(e);rank_e

在这里插入图片描述

2 解线性方程组:AX=b

2.1 普通解法

#应用:利用python求线性方程组的解——AX=b
A=np.array([[10,-1,-2],[-1,10,-2],[-1,-1,5]]);A  #系数矩阵
b=np.array([72,83,42]);b #常数列

#方法一:利用原理进行计算
#X=inv(A)*b
X=np.dot(np.linalg.inv(A),b);X

#方法二:利用自带函数进行计算
X_=np.linalg.solve(A,b);X_

在这里插入图片描述

2.2 符号解法

#符号解:AX=b
from  sympy import symbols,Eq,solve
x,y,z=sympy.symbols('x y z')
eqs=[sympy.Eq(10*x-y-2*z,72),
     sympy.Eq(-x+10*y-2*z,83),
     sympy.Eq(-x-y+5*z,42)]
print(sympy.solve(eqs,[x,y,z]))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值