二维泊松方程求解--点迭代法

本文介绍了泊松方程的点迭代法求解,包括雅可比迭代、高斯-赛德尔迭代和SOR迭代。通过一个具体的算例,展示了在Python中如何利用这些迭代方法解决二维泊松方程,并设置了Dirichlet边界条件。迭代收敛标准为全局结点的平均相对偏差小于10^-5。
摘要由CSDN通过智能技术生成

1. 问题描述

本算例来自B站Up主“Red-Green鲤鱼”的系列教程。本文主要介绍计算代数方程组的三种点迭代方法。

1.1. 泊松方程

含有二阶偏导数的偏微分方程:
∂ 2 ϕ ∂ x 2 + ∂ 2 ϕ ∂ y 2 = f ( x , y ) \frac{\partial^2 \phi}{\partial x^2}+\frac{\partial^2 \phi}{\partial y^2}=f(x,y) x22ϕ+y22ϕ=f(x,y)

f = 0 f=0 f=0时,上述方程被称为拉普拉斯方程。许多物理过程都可以用泊松方程来描述,如热传导方程
∂ ϕ ∂ t = ∂ 2 ϕ ∂ x 2 + ∂ 2 ϕ ∂ y 2 \frac{\partial \phi}{\partial t}=\frac{\partial^2 \phi}{\partial x^2}+\frac{\partial^2 \phi}{\partial y^2} tϕ=x22ϕ+y22ϕ

在求解不可压缩流动的NS方程时,通常将已知压力场代入动量方程来预估速度场,然后将预估的速度场代入连续性方程中,由于预估的速度场中包含压力梯度项,因此代入连续性方程后会得到 ∇ ⋅ ( ∇ P ) \nabla \cdot(\nabla P) (P),即压力泊松方程

1.2. 算例

令上述泊松方程的源项为如下形式:
f ( x , y ) = − 4 ⋅ s i n ( x − y ) ⋅ e ( x − y ) f(x,y)=-4\cdot sin(x-y)\cdot e^{(x-y)} f(x,y)=4sin(xy)e(xy)

其解析解为
ϕ ( x , y ) = c o s ( x − y ) ⋅ e ( x − y ) \phi(x,y)=cos(x-y)\cdot e^{(x-y)} ϕ(x,y)=cos(xy)e(xy)

比较数值解与解析解在定义域 x ∈ [ − 1 , 1 ] , y ∈ [ − 1 , 1 ] x\in [-1,1], y\in [-1,1] x[1,1],y[1,1]上的差别。边界条件为Dirichlet,边界上的值由解析解求出。

2. 区域离散和方程离散

x x x方向设置 N N N个结点,编号从 1 − N 1-N 1N y y y方向上设置 M M M个结点,编号从 1 − M 1-M 1M,结点间距分别为 Δ x \Delta x Δx Δ y \Delta y Δy,将 ( i , j ) (i,j) (i,j)号结点记为 P P P,该结点上下左右四个结点分别记为 N , S , W , E N,S,W,E N,S,W,E

采用有限差分法计算泊松方程,二阶偏导数项采用二阶中心差分离散,
∂ 2 ϕ ∂ x 2 ∣ P = ϕ W + ϕ E − 2 ϕ P Δ x 2 \frac{\partial^2 \phi}{\partial x^2}\bigg|_P=\frac{\phi_W+\phi_E-2\phi_P}{\Delta x^2} x22ϕ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值