python差分法_数值偏微分方程-差分法(Python)

本文介绍了如何使用Python实现差分法求解偏微分方程,特别是拉普拉斯方程。通过离散化网格,将连续问题转化为离散的差分方程组,最终通过线性代数库求解。讨论了误差来源和提高精度的方法,并展示了二维拉普拉斯方程的可视化结果。
摘要由CSDN通过智能技术生成

在前面的笔记里孤光一点萤:数值常微分方程-欧拉法与龙格-库塔法​zhuanlan.zhihu.com

整理了常微分方程的一些数值解法。类似的方法可以拓展到解偏微分方程的问题,这里整理有限差分法的相关笔记。

计算机无法处理连续介质的无限多点,因此只能通过网格划分的方式,将带求解区域内连续分布的函数进行离散化,这样只用求解有限多的格点即可。同样地,在计算机里无法取极限求导数,只能通过离散化之后,用有限差商代替导数。由此,可以将带求解的偏微分方程转化为一组离散格点上的差分方程。解这组方程的问题,最终又归化为一个矩阵的求解问题,而矩阵求解这种“体力活”是计算机所擅长的。

由于我们使用划分的离散网格来近似连续的待求解空间,因此网格划分越密,求解越精确。同时,网格划分越密集,意味着最后得到的矩阵方程维度越高,计算量会非常庞大。这时候常用的高斯消元法(一个高斯消元的例子)往往会吃不消,需要使用松弛迭代法等。

首先,还是从单变量的方程开始。考虑函数

,其中

。将区间

分为N份,每一份就是步长

,则离散化后的格点坐标为:

。对于任意格点

一阶向前差分

一阶向后差分

一阶中心差分

由此可得:

一阶向前差商

一阶向后差商

一阶中心差商

二阶中心差商

现在拓展到二维情况:

例如对于方程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值