用sympy求解明文线性方程组

2024-10-03 17:16:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在基于python的编辑器中添加一个求解线性方程组的功能。我正在寻找一个能够解析字符串的模块,如下面的一个:

sample_volume=20
final_concentration=0.55
ethanol_concentration=0.96

final_volume = ethanol_vol+sample_volume
final_concentration*final_volume=ethanol_vol*ethanol_concentration 

求出所有变量的值。在

我已经用sympy实现了一个快速而肮脏的脚本,请参见here查看Jupyter笔记本。在

我想这一定是有人以更稳健的方式实施的,我想避免在这里重新发明轮子。在

有没有人知道其他更健壮的实现(有测试等)?在

另外,根据sympy文档,应该使用sympy.solveset而不是{}。 我不能像在我的例子中那样用一系列的等式来实现这一点。精通sympy的人能指导我如何在这样的方程组中使用solveset吗。在


Tags: 模块sample字符串功能脚本here编辑器final
1条回答
网友
1楼 · 发布于 2024-10-03 17:16:39
In [2]: sample_volume=20
   ...: final_concentration=0.55
   ...: ethanol_concentration=0.96
   ...: 

In [4]: fv,ev = symbols('fv,ev')

In [5]: expr1 = fv - ev+sample_volume

In [6]: expr2 = final_concentration*fv - ev*ethanol_concentration 

In [7]: solve([expr1,expr2], [fv,ev])
Out[7]: {ev: -26.8292682926829, fv: -46.8292682926829}

# I will recommend to use solveset's linear system solver (linsolve)
In [8]: linsolve([expr1,expr2], [fv,ev])
Out[8]: {(-46.8292682926829, -26.8292682926829)}

相关问题 更多 >