如何根据用户输入在 SymPy 中创建符号?
How do I create Symbols in SymPy based on user input?
我正在尝试创建一个 python 程序,该程序使用 SymPy 从用户那里获取一个函数(根据 x)和 returns 它的派生函数。但是,当我输入 x 以外的字母时,SymPy 会抛出未定义符号的错误。我希望它将 x 以外的字母视为常量。
例如,如果用户输入 a*x**2 + bx
,他们应该得到 2*a*x + b
,如果他们输入 z*x**2 + px
,他们应该得到 2*z*x + p
。如何将 'x' 以外的字母视为常量,而不必将每个字母都硬编码为符号?
我希望我的问题很清楚。如果需要,请随时询问任何说明。
您应该首先解析用户输入并收集所有符号。要将字符串解析为 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'))
我正在尝试创建一个 python 程序,该程序使用 SymPy 从用户那里获取一个函数(根据 x)和 returns 它的派生函数。但是,当我输入 x 以外的字母时,SymPy 会抛出未定义符号的错误。我希望它将 x 以外的字母视为常量。
例如,如果用户输入 a*x**2 + bx
,他们应该得到 2*a*x + b
,如果他们输入 z*x**2 + px
,他们应该得到 2*z*x + p
。如何将 'x' 以外的字母视为常量,而不必将每个字母都硬编码为符号?
我希望我的问题很清楚。如果需要,请随时询问任何说明。
您应该首先解析用户输入并收集所有符号。要将字符串解析为 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'))