我一直在使用sympy来处理微分方程组。我象征性地编写方程,使用autowrap通过cython编译它们,然后将得到的函数传递给compile求解器。这样做的主要好处之一是,我可以象征性地使用渐近jacobian函数为jacobian求解,编译它,并将其编译到ODE求解器中。
对于大约30个变量的系统来说,这是非常有效的。最近我试着用150个变量来做这件事,结果是我在编译jacobian函数时内存用完了。这是在和microsoft C
我试图用SciPy中的精确牛顿法求解一个大型非线性系统.在我的应用程序中,Jacobian易于组装(并分解)为稀疏矩阵。似乎在scipy.optimize.root中可用的所有方法都以某种方式近似于Jacobian,而且我也找不到使用中讨论的API的方法。尽管如此,使用内部API,我还是成功地使用了牛顿的方法,并编写了以下代码:x, info = nonlin_solve(f
我想在python中实现伴随灵敏度分析,以便确定我的目标函数相对于某些参数的梯度。具体地说,目标函数依赖于微分方程的解,而微分方程的解又取决于这些参数,我正在寻找这些参数的最佳值。为了做到这一点,Julia (see here)中有许多很好的包,以及来自SUNDIALS的CVODES,然而后者显然有一个为python制作的包装器,根据这个link不包括敏感性分析功能。因此,我的问题是,python中是否存在具有敏感度分析功能的CVODES版本,或者是否有其他包可以用于执行伴随敏感度分析?
我想求解系统A.b=x,其中A是,几乎是,是python中的三对角矩阵:a b 0 0 .... 0 0 b0 b a b .... 0 0 0我可以使用numpy解决程序来解决和集成我的系统:这是可行的,但非常慢,因为我的矩阵是巨大的,我不认为它利用了稀疏和接近三对角的A阵列。如果它是一个纯三对角系统,我知道如何使用经典的正反向替换算法快速高效地求解,但