python - 使用 sympy 求解明文线性方程组

标签 python parsing linear-algebra sympy solver

我想向基于 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。 我无法像我的示例中那样使用方程列表来完成这项工作。精通 sympy 的人可以指导我如何将求解集与这样的方程系统一起使用吗?

最佳答案

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

关于python - 使用 sympy 求解明文线性方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40459915/

相关文章:

python - 在 python 中重新创建一个类似 shell 的解释器?

python - 查找欠定线性系统中哪些变量是自由的

python - Tensorflow LSTM-Cell 的输出

python - 使用 NLTK 在 Python 中获取大量名词(或形容词);或 Python Mad Libs

python - 为网络和桌面创建应用程序

php - 在 jQuery 中将项目设置为数组并传递给 PHP

python - 使用 multiprocessing.manager 的问题

Java错误扫描JSONObject程序使用扫描仪无限扫描

python - 如何在Python中绘制代表符号函数的特征值?

python - 在Python中将矩阵项K_ij除以K_ii*K_jj的快速方法