首页 > 解决方案 > Scipy的solve_ivp函数文档中的字母k是什么意思?

问题描述

Solve_ivp 是 Scipy 的一个初始值问题求解器函数。简单来说

scipy.integrate.solve_ivp(fun, t_span, y0, method='RK45', t_eval=None, dense_output=False, events=None, vectorized=False, args=None, **options)

求解 ODE 系统的初始值问题。该函数对给定初始值的常微分方程组进行数值积分。

在 solve_ivp 函数文档(Scipy 参考指南 1.4.1 第 695 页)中,我们有以下内容

参数 fun [callable] 系统右侧。调用签名是 fun(t, y)。这里 t 是一个标量,ndarray y 有两个选项:它可以具有形状 (n,);那么 fun 必须返回具有形状 (n,) 的 array_like。或者,它可以具有形状 (n, k);那么 fun 必须返回一个形状为 (n, k) 的 array_like,即每一列对应于 y 中的单个列。两个选项之间的选择由矢量化参数确定(见下文)。矢量化实现允许通过有限差分更快地逼近雅可比行列式(刚性求解器需要)。

这里n代表 y 中的维数k代表什么?对于知道答案的人来说,这似乎是一个非常幼稚的问题。但是请相信我,我真的找不到它(至少在文档中没有)。 伟大的 hpaulj对这个问题的回答似乎提供了一些启示。但是好吧,恕我直言,它仍然太黑而不能四处走动。

标签: pythonnumpyscipyvectorizationscientific-computing

解决方案


推荐阅读