Xyz*_*-47 13 python math sympy
有没有办法在SymPy中获得逐步解决方案?例如:
x**2-5 = 4
step 1 x**2-5+5=4+5
step 2 : x**2=9
step 3 :x = 3 or x= -3
Run Code Online (Sandbox Code Playgroud)
(这更像是一个评论作为答案)
有一些谷歌的soc想法可以实现
GSoC 2014 Ideas: 很多时候,人们问他们如何知道某些功能在做什么。例如,他们想一步一步地了解......对于前者,你能做的最好的就是按照代码;对于后者,该算法根本无法像您手动完成那样工作,所以真的没有办法......
许多 SymPy 操作背后的逻辑被分成几个小方法。例如,像 sin 或 exp 之类的对象具有 _eval_derivative 方法,它们被称为 SymPy 计算像 sin(exp(x)) 这样的复杂表达式的导数。通过捕获所有这些小方法的输入和输出,我们可以收集有关 SymPy 所采取步骤的大量信息。我们可以看到 exp._eval_derivative 接受了 exp(x) 并返回了 exp(x),而 sin._eval_derivative 接受了 sin(exp(x)) 并返回了 cos(exp(x))*exp(x)。每种方法的这些输入-输出对可能足以说明 SymPy 如何解决许多领域的问题。
这种捕获许多内部函数输入的方法类似于传统上用于分析大型代码库的日志系统。我们应该调查它们是如何工作的,以及它们是否会导致正常运行出现任何问题。
一旦这个信息源可用,我们就可以考虑有趣的方式来可视化并与之交互。一个好的解决方案不会不可撤销地将数据流与特定的可视化技术联系起来。
这种方法在智力上很简单,但可能需要学生与大量代码库进行交互。像 _eval_derivative 这样的方法在整个 SymPy 中无处不在,但在不同的模块中通常会有很小的变化。
这里有一个在线解决方案SymPy Gamma