python – 自动区分

我正在研究我的毕业项目,特别是关于流体动力学的项目,我有一个非线性方程组要解决,我选择牛顿方法,所以我必须通过matix的雅可比行列式(实际上是12×12矩阵).该矩阵中的每个元素都是在某个时刻评估的函数的导数,很难手动编写所有这些元素并计算每个导数;系统看起来像:

f1(x1,x2,x3,…,x12)= 0
f2(x1,x2,x3,…,x12)= 0
.
.
.
f12(x1,x2,x3,…,x12)= 0

其中x1,x2,x3是变量(温度,压力……等)
我可以自动执行此操作吗?如果在Fortran中不可能,我可以使用其他脚本语言作为Python(sympy模块)吗?

是的,通过使用适当的算法差异化包.这是一种方法,可以(原则上)评估您表示为计算机程序的任何函数的任意顺序导数,并且Fortran存在许多包.看一眼

http://en.wikipedia.org/wiki/Automatic_differentiation

http://www.nag.co.uk/pss/nag-and-algorithmic-differentiation

开始

免责声明:

1)我从来没有用过“愤怒”

2)直到最近我还在NAG工作

相关文章
相关标签/搜索