首页 文章

用sympy解决明文中的线性方程组

提问于
浏览
1

我想添加一个功能来解决线性方程组到我的基于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 docs,应使用 sympy.solveset 而不是 sympy.solve . 我不能用我的例子中的方程列表来完成这项工作 . 精通同情的人可以指导我如何使用这样的方程系统来解决setset .

1 回答

  • 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)}
    

相关问题