有限差分法求解双曲和椭圆方程
1. 双曲方程的有限差分法
双曲方程在科学和工程领域中具有广泛的应用,如流体力学、声学等。这里我们将介绍如何使用 Lax - Wendroff 格式求解一维双曲方程,并通过 MATLAB 代码进行数值实验。
1.1 问题描述
考虑如下双曲方程:
[
\begin{cases}
u_t + u_x = 0, & 0 \leq x \leq 1, 0 < t < 0.5 \
u(x, 0) = \exp(-c(x - 0.5)^2), & 0 \leq x \leq 1 \
\end{cases}
]
其解析解为光滑的高斯波:
[
u(x, t) = \exp(-c(x - t - 0.5)^2)
]
其中 ( c > 0 ) 是一个常数,决定了波的宽窄程度,( c ) 越大,波越窄。
1.2 数值实验
通过不同数量的网格点求解 ( c = 50 ) 时的数值解和解析解,结果如图 3.1 所示。左图是在 ( 20 \times 50 ) 网格上获得的;右图是在 ( 40 \times 50 ) 网格上获得的。
从图 3.1 可以看出,当网格不够精细时,数值解不能很好地逼近解析解。使用更精细的网格可以显著减少振幅和相位误差。此外,数值波总是滞后于解析波,这与我们之前进行的理论相位误差分析一致。
以下是求解该问题的 MATLAB 代码:
%-----
超级会员免费看
订阅专栏 解锁全文
6万+

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



