python - 用Python求解方程组

标签 python solver

如何在 python 中求解如下简单方程组?

x = (2/3)*y + (1/3)*0

y = (2/3)*1 + (1/3)*x

我尝试了 SymPy 但无法弄清楚。

解出了方程部分

from sympy import *
from sympy.solvers.solveset import linsolve
x, y = symbols('x, y')
linsolve([x - 2/3*y, y - 2/3 - 1/3*x ], (x, y))

输出:{(0.571428571428571, 0.857142857142857)}

类型为“sympy.sets.sets.FiniteSet”

如何仅提取 x 值并将其设置为变量?

明白了。

z = linsolve([x - 2/3*y, y - 2/3 - 1/3*x ], (x, y))

print(z.args[0][0])

最佳答案

sympy 已更新为 solve(),用于求解线性方程组。首先使用 Eq() 方法创建方程。然后使用 solve() 求解这些方程。 linsolve() 仍然有效。

import sympy as sp
from sympy.solvers import solve
eq1= sp.Eq(x-2/3*y-1/3*0) 
eq2 = sp.Eq(1/3*x-y+2/3)
output = solve([eq1,eq2],dict=True)

你的方程是这样的

x−0.666666666666667y=0
0.333333333333333x−y+0.666666666666667=0

输出:

[{x:0.571428571428571, y:0.857142857142857}]

一旦你得到输出。 output变量类型为list。然后取第一个索引0,它是字典。然后将其转换为list类型。

values = list(output[0].values())

会给你这样的输出。

[0.571428571428571, 0.857142857142857]

然后

x = values[0] #0.571428571428571
y = values[1] # 0.857142857142857

关于python - 用Python求解方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54715366/

相关文章:

python - Argparse:未显示子解析器的默认值

python - PyMySQL 连接查询为空

python - 引用的字典键是绝对必须的吗?

python - sympy - 使用 "solve()"查找分母中的值

Python 的 sympy 求解器返回四次方程的坏根

matlab - 以符号方式求解矩阵方程

python - OpenCV:如何规范化面部(去除阴影)?

python - Django 应用程序 View - 如何从 url 中的 django 数据库获取条目并从数据库获取 View 的更多信息?

equation - 在 Raku 中求解指数方程

python - 使用 SymPy 求解方程的 2 条边