问题描述
|
检查数学表达式中的参数增加是增加还是减少整个表达式的最佳方法是什么(在Python中,最好是SymPy)?
假设:所有参数均为正(即> 0)。
示例
A*B/(A+C)
:应找到A
与表达式成比例,而应找到C
成反比例。
一种明显的解决方案是将1分配给所有参数,将1和100分别分配给C并应用eval()
,但这非常粗糙,可能会产生错误(例如,使用(A-B)/C
时,最好的情况是给出一个错误而不是一个错误的结果)。
解决方法
我不认为这在一般情况下可以解决。一个简单的反例是
sin(A)
,它可以成比例,也可以成反比例,具体取决于您评估A的值。
但是,您可以使用PyDX或Theano等自动微分工具来计算各种参数值下的函数导数。