在 C 中求解数值微分方程的方法

计算科学 数值分析 C
2021-12-14 06:05:21

我必须在 C 中用数值求解一个微分方程。方程是:

在此处输入图像描述

我该如何编写一些代码来解决它?是否有一些数值方法(可能是Runge-Kutta?)来解决它?

一位同事向我建议使用精确离散化方法,但我认为这不是最聪明的方法,尤其是在编程方面。

有什么建议?

2个回答

我认为最简单的方法是使用 Forward Euler 方法。你应该看看这个解释代码的页面。

如果您愿意使用 C++,我建议您查看 odeint 包,它是 Boost 库的一部分:

http://www.boost.org/doc/libs/1_58_0/libs/numeric/odeint/doc/html/index.html

一般来说,编写生产质量的 ODE 求解器并不是一项简单的任务。odeint 已经在 Boost 中使用了几年,并且相对成熟和健壮。预建的 Boost 库可用于许多平台,大大简化了安装。