您的位置:首页 > 编程语言 > MATLAB

使用matlab求解二维浅水方程的数值解(一)—浅水波

2017-02-24 14:50 1341 查看
最近在读《ocean modelling for beginners》这本书,对于做海洋数值模拟工作的小白来说,这绝对是一本好书。强烈推荐给理论基础较弱的学习者,这本书循序渐进,由简入繁的讲解了物理海洋方面的物理现象、理论基础、算法实现等等。

第五章讲的是二维浅水方程,书中进行了一些案例的模拟,并给出了相关代码。其中,模拟部分的代码使用Fortran,后处理部分使用Scilab。我试着用matlab,按照书中的有限差分方法,写了该部分的模拟及后处理代码。首先,原始方程组如下:



离散方法如下:



模拟案例设置如下:

与书中练习8一样,模拟区域为500*500m,空间步长10m,时间步长0.1s,重点内容初始条件为网格中心处初始水位1m。

模拟结果如图所示:



这个模拟案例比较简单,模拟的是水位起伏引起的波动。下篇博客将模拟波浪的折射,看看水深地形将会对波浪造成什么样的影响,敬请期待。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 matlab