常微分方程求解与实际应用
1. 常微分方程离散化与数值解
在求解常微分方程时,将其离散化是常用的方法。离散化有多种方式,我们可以创建比某些传统方法更精确、计算效率更高的方法。不过,向前欧拉方法直观且应用广泛,尤其是当时间步长 $\Delta t$ 较小时。
当我们使用数值方法在离散的网格点 $t_i$ 计算未知函数 $u$ 时,如果想评估网格点之间的数值解,最自然的选择是假设网格点之间为线性变化。这与我们绘制数组 $u^0, u^1, \cdots$ 与 $t_0, t_1, \cdots$ 时,在离散点之间绘制直线是一致的。
1.1 向前欧拉方法的编程实现(特殊情况)
我们通过一个程序来计算特定的方程。输入变量包括初始种群大小 $N_0$、时间步长 $\Delta t$、净增长率 $r$ 和步数 $N_t$。需要计算 $N_t + 1$ 个新值 $N^1, \cdots, N^{N_t + 1}$,在数组表示中总共需要 $N_t + 2$ 个值。
以下是实现该计算的 Matlab 代码:
N_0 = input('Give initial population size N_0: ');
r = input('Give net growth rate r: ');
dt = input('Give time step size: ');
N_t = input('Give number of steps: ');
t = linspace(0, (N_t+1)*dt, N_t+2);
N = zeros(N_t+2, 1);
N(1) = N_0;
f
超级会员免费看
订阅专栏 解锁全文
1391

被折叠的 条评论
为什么被折叠?



