python - 用 Sympy 求解线性方程组
问题描述
为了评估弹性的某个属性,我想使用 sympy 来可视化方程组。我使用以下代码:
import numpy as np
import sympy as sym
b1=sym.Array([[Rational(-1/2),sqrt(3)/2,0],[-sqrt(3)/2,Rational(-1/2),0],[0,0,1]])
Sigma=[]
for i in range(0,3):
for j in range(0,3):
for k in range(0,3):
for l in range(0,3):
x= symbols(('\sigma_{%d%d}')%(k+1,l+1),commutative=False)
M=sym.Array([x])
Sigmatotal_tmp=tensorproduct(b1[i][k],b1[j][l],M)
Sigma.append(Sigma11)
我想将这九个方程的集合可视化如下:
手动使用类似的东西:
Sigma11 = Sigma[0][0] + Sigma[1][0] + Sigma[2][0] + Sigma[3][0] + Sigma[4][0] + Sigma[5][0] + Sigma[6][0]
显示
如何将其转换为一组方程并求解它以找到自变量?
我是手工完成的,它看起来像这样:
解决方案
看起来方程组是内部循环中生成的 9 项的总和:
from sympy import *
import sympy as sym
b1=sym.Array([[Rational(-1/2),sqrt(3)/2,0],[-sqrt(3)/2,Rational(-1/2),0],[0,0,1]])
Sigma=[]
for i in range(0,3):
for j in range(0,3):
y = symbols(('\sigma_{%d%d}')%(i+1,j+1), commutative=True)
args = []
for k in range(0,3):
for l in range(0,3):
x= symbols(('\sigma_{%d%d}')%(k+1,l+1), commutative=True)
M=sym.Array([x])
Sigmatotal_tmp=tensorproduct(b1[i][k],b1[j][l],M)
args.append(Sigmatotal_tmp[0])
Sigma.append(y - Add(*args))
pprint(Sigma[-1])
鉴于此,您只需使用solve(Sigma)
来获得解决方案:
>>> solve(Sigma)
{\sigma_{32}: 0, \sigma_{31}: 0, \sigma_{23}: 0, \sigma_{13}: 0,
\sigma_{12}: -\sigma_{21}, \sigma_{11}: \sigma_{22}}
还要注意,交换性设置为 True——它是否必须为 False?
推荐阅读
- wordpress - 增加了 Docker 内存大小,现在 docker compose 将无法工作
- identityserver4 - IdentityServer4 令牌中的所有客户端范围
- javascript - jQuery - 工作/不工作 - joomla,谷歌库
- c# - 自定义控件不画?
- angular - 我应该在哪里选择在 Angular 中订阅 HttpClient?
- javascript - PHP使用框架下载excel文件空白
- python - 以递增的数字反转顺序
- python - 如何在 Python 中为两个文件嵌套两个循环
- wso2 - WSO2 身份服务器:如何在 Dockerized WSO2 身份服务器中输入密钥库和私钥密码
- python - html 表格到 csv 刮刀