matlab偏微分方程数值解误差_Python数值计算----------求解简单的偏微分方程

a4b8ab1a61d6d34239cd88135177dc5c.png

很多物理现象的都可以用方程来描述,比如热传导与物质扩散可以用扩散方程来描述,流体的流动可以用NS方程描述等等。如果能够将这些偏微分方程求解出来,就可以来对很多物理现象进行仿真,现在工程中的仿真软件都是通过程序数值求解一类偏微分方程。今天我们尝试求解一类偏微分方程,为了简单起见,我们以一个简单的平流方程为例,方程形式如下:

f7bdf3485436f87cbb364bfa025738f0.png
平流方程

求解偏微分方程的数值解法非常多,这里也是采用一种较为直白的方法--------有限差分法,将上述的偏微分方程离散为差分方程,这里采用一种迎风格式的差分方法,首先我们可以看出这个平流方程由两个维度,一个空间维度x,一个时间维度t,我们对这两个维度进行离散:

2f05efc5a51ab8df3016396106316456.png
差分网格

差分方程

1ea28582ef59b653a34fd8d856370889.png

将差分方程简化一下

66b003342c4ba75cd570e85dc0b6c07c.png

通过上述的差分方程我们可以通过上一个时间步的结果推进得到下一个时间步的结果:

69ce321e5a5b9494df2b49189ce75c83.png

这里我们边界条件是周期边界如下图,周期边界的好处就是我们可以一直看到在我们的求解域内看到波的移动:

fd124f707b67805c92d38f6b61a22757.png

方程的初始条件我们给空间维度上一个指数函数的波形:

e69416556023ce33e0c692626cdde9fb.png

下面我们通过一段简单(其实挺长的,但是很容易理解)的Python代码对上述差分方程进行求解:

"""

b1fa9178cf45a1fa2d9c3ffe378b9d09.gif

运行程序大家就可以看到一个波在来回移动。这里以一个简单平流方程为例,然后构造了其迎风格式的差分方程,然后用我们可爱的python语言进行求解,这里再次说明了计算机语言是一个工具,有了这个工具我们可以用它来做我们想做的事,对我来言Python做科学计算非常的Nice。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值