我想添加一个功能来解决线性方程组到我的基于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.solve
。
我不能用我的例子中的方程列表来完成这项工作。精通同情的人可以指导我如何使用这样的方程系统来解决集合。
答案 0 :(得分:2)
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)}