将 SymPy 的计算减慢为更小的步骤

Slow Down SymPy's Computations into Smaller Steps

我正在使用 SymPy,它非常强大。但是,我想把它变成 'slow down' 并一次求解方程的一部分而不是方程的大部分。例如,给定一个输入字符串方程(假设形式正确),如

9x-((17-3)(4x)) - 8(34x)

我想先解决

9x-((14)(4x)) - 8(34x)

然后

9x-(56x) - 8(34x)

然后

9x-(56x) - 272x

以此类推

另一个例子,

from sympy import *
s = (30*(5*(5-10)-10*x))+10
s2 = expand(s, basic=False)

给我 -300*x - 740 一步,我只想一次完成一个 *

阅读 ideas document 作为 Google 编程之夏 的结果,这似乎是尚未添加到库中的内容。就目前而言,如果不完全自己编写代码,就无法为您的示例执行此操作。

上述文档讨论并强调了将不等同于人类工作的算法转换为离散步骤的问题。我不确定这是否会成为扩展实施中的一个问题,但这对于其他算法来说肯定是一个问题,出于效率的原因,机器的计算方式不同。

tl;dr 此库不支持您的示例的分步分解。目前只有 manualintegrate 函数有分步操作。