带数值右手边的常微分方程

计算科学
2021-11-30 01:28:23

我有兴趣解决一个我不知道右手边解析形式的微分方程,我只知道它对于自变量的一组有限值的数值:

dydx=f(xi).

我还没有找到一个允许我解决这个问题的库,我想在自己尝试解决之前确定是否有任何库,我认为必须对数组进行插值以匹配积分器使用的特定网格,或将网格固定到我的值为上。xif(xi)

1个回答

因为 rhs 独立于,所以您的情况已经被一些标准插值库作为特殊情况处理。这是一个如何在 scipy (文档链接)中处理三次样条的示例,我选择了一个很好的函数来说明:y(1+x2)1

x = array([0.0] + sorted(np.random.rand(16)) + [1.0])
y = 1/(1+x*x)
f = CubicSpline(x, y)
u = f.antiderivative()

In [34]: u(0.5) - np.math.atan(0.5)
Out[34]: -5.874574474096228e-07

因此,首先对 rhs 函数进行插值,然后针对该插值精确计算其反导,从而求解对于这样的库来说,这是一个相当常见的基本功能。fuu(x)=f(x)