二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码

本文介绍了使用五点差分格式和有限体积法解决二阶椭圆型第一边值问题的方法,详细阐述了网格剖分、微分算子离散的过程,并附带MATLAB代码实现。通过计算不同网格的最大误差和收敛阶,验证了两种方法的收敛性,结果显示它们都具有二阶收敛阶。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码

这里我们介绍五点差分格式和有限体积法求椭圆型第一边值问题,
题目:
分别采用矩形网格的五点差分格式和有限体积法求椭圆型第一边值问题,
− ∂ 2 u ∂ x 2 − ∂ 2 u ∂ y 2 + a ∂ u ∂ x = 0 , a > 0 , -\frac{\partial^2u}{\partial x^2}-\frac{\partial^2u}{\partial y^2}+a\frac{\partial u}{\partial x}=0,a>0, x22uy22u+axu=0,a>0,
u ( 0 , y ) = s i n ( π y ) , u ( 1 , y ) = 0 , 0 < y < 1 , u\left(0,y\right)=sin\left(\pi y\right),u\left(1,y\right)=0,0<y<1, u(0,y)=sin(πy),u(1,y)=0,0<y<1,
u ( x , 0 ) = u ( x , 1 ) = 0 , 0 < x < 1. u\left(x,0\right)=u\left(x,1\right)=0,0<x<1. u(x,0)=u(x,1)=0,0<x<1.

取参数 a = 40,得到不同网格最大误差和收敛阶。

问题分析

(i) 矩形网格的五点差分法:
Step1:网格剖分。取定沿 x,y 轴方向的步长分别为: h x , h y h_x,h_y hx,hy,便于计算我们取 h x = h y h_x=h_y hx=hy,令 h = h x 2 + h y 2 h =\sqrt{h_x^2+h_y^2} h=hx2+hy2 ,作两族平行于 x,y 轴的直线 x = x i , y = y i x=x_i,y=y_i x=xi,y=yi,其中 x i = x 0 + i h x , i = 0 , 1 , 2 , ⋯   , N , y j = y 0 + j h y , j = 0 , 1 , 2 , ⋯   , N x_i=x_0+ih_x,i=0,1,2,\cdots,N,y_j=y_0+jh_y,j=0,1,2,\cdots,N xi=x0+ihx,i=0,1,2,,N,yj=y0+jhy,j=0,1,2,,N,两族直线的交点 ( i h x , j h y ) (ih_x,jh_y) (ihx,jhy)称为网点或者节点,记为 ( x i , y j ) (x_i , y_j) (xi,yj) .
Step2:微分算子离散.
在正则节点 ( x i , y j ) (x_i , y_j) (xi,yj)上沿 x,y 方向分别使用中心差商公式对 u x x u_{xx} uxx u y y u_{yy} uyy 作近似,得到方程的五点差分格式为:
− ( u i + 1 , j − 2 u i , j + u i − 1 , j h x 2 + u i , j + 1 − 2 u i , j + u i , j − 1 h y 2 ) + a u i + 1 , j − u i − 1 , j 2 h x = 0 -\left(\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{h_x^2}+\frac{u_{i,j+1}-2u_{i,j}+u_{i,j-1}}{h_y^2}\right)+a\frac{u_{i+1,j}-u_{i-1,j}}{2h_x}=0 (hx2ui+1,j2ui,j+ui1,j+hy2ui,j+12ui,j+ui,j1)+a2hxui+1,jui1,j=0
⇒ \Rightarrow
( − 1 h x 2 − a 2 h x ) u i − 1 , j + ( 2 h x 2 + 2 h y 2 ) u i , j + ( − 1 h x 2 + a 2 h x ) u i + 1 , j + ( − 1 h y 2 ) u i , j − 1 + ( − 1 h y 2 ) u i , j + 1 = 0 , i , j = 1 , 2 , ⋯   , N − 1 \left(-\frac{1}{h_x^2}-\frac{a}{2h_x}\right)u_{i-1,j}+\left(\frac{2}{h_x^2}+\frac{2}{h_y^2}\right)u_{i,j}+\left(-\frac{1}{h_x^2}+\frac{a}{2h_x}\right)u_{i+1,j}+\left(-\frac{1}{h_y^2}\right)u_{i,j-1}+\left(-\frac{1}{h_y^2}\right)u_{i,j+1}=0,i,j=1,2,\cdots,N-1 (hx212hxa)ui1,j+(hx22+hy22)ui,j+(hx21+2hxa)ui+1,j+(hy21)ui,j1+(hy21)ui,j+1=0,i,j=1,2,,N1
Let
A = [ 2 h x 2 + 2 h y 2 − 1 h x 2 + a 2 h x 0 ⋯ 0 0 − 1 h x 2 − a 2 h x 2 h x 2 + 2 h y 2 − 1 h x 2 + a 2 h x ⋯ 0 0 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ 0 0 0 ⋯ − 1 h x 2 − a 2 h x 2 h x 2 + 2 h y 2 ] A=\left[\begin{matrix}\frac{2}{h_x^2}+\frac{2}{h_y^2}&-\frac{1}{h_x^2}+\frac{a}{2h_x}&0&\cdots&0&0\\-\frac{1}{h_x^2}-\frac{a}{2h_x}&\frac{2}{h_x^2}+\frac{2}{h_y^2}&-\frac{1}{h_x^2}+\frac{a}{2h_x}&\cdots&0&0\\\cdots&\cdots&\cdots&\cdots&\cdots&\cdots\\0&0&0&\cdots&-\frac{1}{h_x^2}-\frac{a}{2h_x}&\frac{2}{h_x^2}+\frac{2}{h_y^2}\\\end{matrix}\right] A= hx22+hy22hx212hxa0hx21+2hxahx22+hy2200hx21+2hxa000hx212h

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值