python - Python 数值计算雅可比行列式
问题描述
嗨,我有一个旨在解决微分方程组的课程,该课程包含一个名为 Rhs 的类(右侧),其中包含微分问题的所有特征:init_time、final_time、初始值、函数(即 numpy .array 包含 lambda 函数)
当我有一个微分方程系统时,函数以这种方式管理:
eq1 = lambda t,u : a*(u[0]-u[0]*u[1]);
eq2 = lambda t,u : -c*(u[1]-u[0]*u[1]);
func1 = np.array([eq1,eq2])
y0 = np.array([2.,1.])
system1 = rhs.Rhs(func1, 0,10,y0,500 )
使用Rhs类上面的参数就完成了!它有一个方法来返回每个函数的值,以及一个计算每个函数的导数的方法:
def f(self,ti,ui):
return np.array([function(ti,ui) for function in self.func])
def Df(self,ti,ui):
eps = 10e-12
return (self.f(ti,ui+eps) - self.f(ti,ui-eps) )/(2*eps)
现在我有一个大问题,为了创建一个类来解决隐式方法,我必须计算函数的雅可比!但我不知道该怎么做!我写下了这个但不起作用:
def J(self,ti,ui):
self.t = ti
self.u = ui
Jac = np.zeros((len(ui),len(ui)))
n = len(ui)
eps = 1e-12
for i in range(n):
for j in range(n):
Jac[i,j] = self.Df(ti,ui)
return Jac
解决方案
推荐阅读
- flutter - 错误:不是 Flutter 中的常量表达式
- javascript - OpenLayers - 输入新搜索时从搜索结果中清除标记
- ruby - Ruby 密钥被替换,而不是创建新密钥
- python - 尽管弹出窗口存在,但无法切换到弹出窗口
- angular - Angular中按钮内的微调器
- flutter - Android Notch Phone 中的标题文本在颤动中被剪掉
- bash - 我如何在这个脚本中输出我的命令的结果?
- python-3.x - 我正在尝试解决下面提到的问题陈述
- laravel - 不同的操作系统服务器传输文件在 AWS S3 存储桶上不起作用,它仅适用于 windows 到 windows
- amazon-web-services - 将 Amazon S3 访问权限分配给特定的用户组