我已经编写了一些程序,给定一个数学表达式(在文件中作为字符串提供),将使用py_expression_eval评估给定x的f(x)
示例:
input.txt中
x^2 + 1
func.py
from py_expression_eval import Parser
parser = Parser()
file = open("input.txt")
func = file.readline().strip()
f_of_5 = parser.parse(func).evaluate({'x': 2})
输出
5
有什么方法可以得到像这样的字符串提供的函数的衍生物?
答案 0 :(得分:1)
我最近一直在使用sympy
。这是一个小型演示:
>>> from sympy import diff, Symbol
>>> from sympy.parsing.sympy_parser import parse_expr
>>>
>>> user_str = 'x**3 + x + 1'
>>> my_symbols = {'x': Symbol('x', real=True)}
>>> my_func = parse_expr(user_str, my_symbols)
>>> my_func
x**3 + x + 1
>>>
>>> diff(my_func, my_symbols['x'])
3*x**2 + 1
>>> diff(my_func, *3*[my_symbols['x']])
6
当然,没有什么可以阻止你从文件中获取user_str
(您必须使用**
代替^
进行取幂。)