如何在Python中执行伴随敏感(最好通过CVODE)

如何在Python中执行伴随敏感(最好通过CVODE),python,package,julia,sundials,odesensitivity,Python,Package,Julia,Sundials,Odesensitivity,我想用python实现伴随灵敏度分析,以确定目标函数相对于某些参数的梯度。具体地说,目标函数取决于微分方程的解,而微分方程的解又取决于所说的参数,我正在寻找这些参数的最佳值 为了实现这一点,Julia()中有许多好的包,SUNDIALS中的CVODES也有,但是后者显然有一个为python制作的包装器,根据这一点,它不包括敏感性分析功能。此外,我还研究了敏感性分析,但据我所知,这是指其他类型的“敏感性分析”,因此不包括伴随敏感性分析,甚至是前向敏感性分析(如果我在这一点上错了,请纠正我) 因此,

我想用python实现伴随灵敏度分析,以确定目标函数相对于某些参数的梯度。具体地说,目标函数取决于微分方程的解,而微分方程的解又取决于所说的参数,我正在寻找这些参数的最佳值

为了实现这一点,Julia()中有许多好的包,SUNDIALS中的CVODES也有,但是后者显然有一个为python制作的包装器,根据这一点,它不包括敏感性分析功能。此外,我还研究了敏感性分析,但据我所知,这是指其他类型的“敏感性分析”,因此不包括伴随敏感性分析,甚至是前向敏感性分析(如果我在这一点上错了,请纠正我)


因此,我的问题是,python中是否存在具有灵敏度分析功能的CVODES版本,或者是否有任何其他包可用于执行伴随灵敏度分析?

您可以轻松地使用pyjulia从python调用Julia代码/包。

您可以使用pyjulia从Python轻松调用Julia代码/包。

您可以试试,这是Sundals套件的Python包装器。我已经使用它好几年了,它的工作非常稳定。到目前为止,我已经使用CVODE(少于20个状态,少于10个参数)对具有中等数量状态/参数的ODE系统进行了前向灵敏度分析。它在健壮性(可以处理僵硬的问题,还支持稀疏问题的各种线性解算器)和速度方面工作得非常好,并且还通过IDA支持DAE

我使用conda安装了Assimulo,它处理所有依赖关系树(包括最新版本中的SUNDIALS)。最后,我不知道是否可以使用Assimulo执行伴随灵敏度分析。如果您发现了什么,请告诉我们。

您可以试试,这是Sundals套件的Python包装。我已经使用它好几年了,它的工作非常稳定。到目前为止,我已经使用CVODE(少于20个状态,少于10个参数)对具有中等数量状态/参数的ODE系统进行了前向灵敏度分析。它在健壮性(可以处理僵硬的问题,还支持稀疏问题的各种线性解算器)和速度方面工作得非常好,并且还通过IDA支持DAE

我使用conda安装了Assimulo,它处理所有依赖关系树(包括最新版本中的SUNDIALS)。最后,我不知道是否可以使用Assimulo执行伴随灵敏度分析。如果你发现了什么,让我们都知道