如何基于用户输入在Symphy中创建符号?

mitkmikd  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(306)

我试图创建一个python程序,它从用户那里获取一个函数(用x表示),并使用sympy返回其派生函数。但是,当我输入x以外的字母时,sympy会抛出一个未定义符号的错误。我希望它将x以外的字母视为常数。
例如,如果用户输入 a*x**2 + bx ,他们应该 2*a*x + b ,如果他们进入 z*x**2 + px ,他们应该 2*z*x + p . 如何将除“x”之外的字母视为常量,而不必将每个字母硬编码为符号?
我希望我的问题是清楚的。如有需要,请随时要求澄清。

but5z9lq

but5z9lq1#

您应该首先解析用户输入并收集所有符号。要将字符串解析为sympy表达式,请使用 sympy.sympify . 我想你只想得到导数w.r.t x。完整代码为:

import sympy as sp
expr = sp.sympify(input('enter expression: '))
print('Derivative w.r.t x: ', sp.diff(expr, 'x'))

相关问题