使用自定义方法的Sympy函数导数

时间:2015-06-09 17:34:37

标签: python numpy scipy sympy

我正在研究一个需要以字符串形式接受用户输入(通常是方程式)的程序。然后对这些方程做了很多工作,例如计算偏导数,数值积分等。

我希望能够做的是,让用户定义一个字符串,例如:

$(document).on('event', 'jquery-selector', function () { ... });

aoa,rho,V,Aref都被定义为符号变量。使用sympify()将它们转换为sympy表达式。我稍后使用这些符号表达式(以及我使用它们计算的东西)通过将这些表达式放入模板并运行exec()来在内存中创建python函数。

我知道我可以创建模板,以便在写出这些表达式的位置本地定义这些自定义函数,以便在运行时评估这些表达式时调用它们。问题是,我也采用这些表达式的偏导数,通常会产生以下内容:

xdot = '0.5*rho*V**2*CL(aoa)*Aref'

作为其中的一部分。我希望能够在运行时使用数值导数替换/评估它们。

我应该遍历表达式并用一些有限差分表达式替换每个“Derivative”元素,如:     (CL(aoa + h) - CL(aoa))/ h#或其他东西

或者是否可以将Function或Derivative子类化,并使其使用我选择的数值导数方法,而无需为每个表达式手动执行此操作?我找不到太多关于此的参考文献。

这样做的“pythonic”方式是什么?

0 个答案:

没有答案