python计算线性代数(矩阵的相关计算)

更多文章:

python计算微积分:http://t.csdn.cn/6g5DH
python求解方程的根:http://t.csdn.cn/3MtoP
python查看圆周率π的后10000位:http://t.csdn.cn/84Uwt
R语言矩阵的相关计算:http://t.csdn.cn/ya8vS

本文介绍如何用sympy库计算线性代数
同样是使用python的sympy库,安装方法有很多这里就不介绍了

一.矩阵的创建

创建以下矩阵:
$$

$$

( 2 1 )    \left( \begin{array}{c} 2\\ 1\\ \end{array} \right) \,\, (21)

from sympy import *
Matrix([1,2])

如果输出为空,请print(Matrix([1,2])),以下同理

( 2 , 1 ) \left( 2,1 \right) (2,1)

from sympy import *
Matrix([[2,1]])

( 1 2 3 4 ) \left( \begin{matrix} 1& 2\\ 3& 4\\ \end{matrix} \right) (1324)

from sympy import *
Matrix([[1,2],[3,4]])

( 0 1 2 3 10 11 12 13 20 21 22 23 ) \left( \begin{matrix} 0& 1& 2& 3\\ 10& 11& 12& 13\\ 20& 21& 22& 23\\ \end{matrix} \right) 01020111212122231323

不难发现第2行等于10+对应第一行的数字,第3行等于20+对应第一行的数字,第一行也很有规律,我们可以使用lambda函数

image-20221005232336303
( a b c d ) \left( \begin{matrix} a& b\\ c& d\\ \end{matrix} \right) (acbd)
因为这里的a,b,c,d都是变量,所以我们应该先定义他

from sympy import *
a,b,c,d=symbols("a,b,c,d")
Matrix([[a,b],[c,d]])

二.矩阵的相关计算

函数/方法说明
矩阵乘法*(就直接乘)
transpose/T计算矩阵的转置矩阵
adjoint/H计算矩阵的伴随矩阵
trace计算矩阵的迹(主对角元素之和)
det计算矩阵的行列式
inv计算矩阵的逆矩阵
LUsolve使用LU分解计算形如Mx=b的线性方程组
Qsolve使用QR分解计算形如Mx=b的线性方程组
solve计算形如Mx=b的线性方程组

1.矩阵乘法

A = ( a b c d ) , B = ( 1 2 3 4 ) , 计算 A B A=\left( \begin{matrix} a& b\\ c& d\\ \end{matrix} \right) ,B=\left( \begin{matrix} 1& 2\\ 3& 4\\ \end{matrix} \right) ,\text{计算}AB A=(acbd),B=(1324),计算AB

from sympy import *
a,b,c,d=symbols("a,b,c,d")
A=Matrix([[a,b],[c,d]])
B=Matrix([[1,2],[3,4]])
A*B

image-20221005233655674

2.求逆矩阵

计算 B = ( 1 2 3 4 ) 的逆矩阵 \text{计算}B=\left( \begin{matrix} 1& 2\\ 3& 4\\ \end{matrix} \right) \text{的逆矩阵} 计算B=(1324)的逆矩阵

from sympy import *
B=Matrix([[1,2],[3,4]])
B.inv()

image-20221005233944039

3.计算B转置

from sympy import *
B=Matrix([[1,2],[3,4]])
B.transpose()
#或者
B.T#没有括号

4.计算B的行列式

from sympy import *
B=Matrix([[1,2],[3,4]])
det(B)

-2

5.计算线性方程组

{ x + 2 y − 1 = 0 x − 2 y + 1 = 0 \begin{cases} x+2y-1=0\\ x-2y+1=0\\ \end{cases} {x+2y1=0x2y+1=0

首先我们要先移项,在分别创建系数矩阵和常数矩阵
{ x + 2 y = 1 x − 2 y = − 1 \begin{cases} x+2y=1\\ x-2y=-1\\ \end{cases} {x+2y=1x2y=1

from sympy import *
A=Matrix([[1,2],[1,-1]])
B=Matrix([1,-1])
A.solve(B)

image-20221005234723448

6.计算B的伴随矩阵(为什么计算错误)

很明显这里出现了错误,我也不知道为什么

from sympy import *
B=Matrix([[1,2],[3,4]])
B.adjoint()

image-20221006000348485

参考文章:python科学计算和数据科学应用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值