【数值分析--有限差分法】

本文介绍了有限差分法的基本概念,包括一维和二维有限差分的推导过程。在一维情况下,通过泰勒级数展开近似导数,并给出欧拉前向公式的具体应用。在二维情况下,详细说明了如何对时间和空间变量进行离散化处理。

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

引入–问题

在这里插入图片描述

(1)一维有限差分

推导:
对于函数 T ( t ) , T ( t ) T\left(t\right),T\left(t\right) T(t)T(t)连续。
使用 T ( t ) + ∆ t T(t)+∆t T(t)+t的泰勒展开式来逼近 T ( t ) T\left(t\right) T(t)
在这里插入图片描述移项得:
Tt+∆t-Tt=∆t1!∂Tt∂t+∆t22!∂2Tt∂t2+o∆t3在将∆t移项到左边:
在这里插入图片描述
因为差分方程是将连续变为离散,而题干中只需要对 d T ( t ) d t \frac{dT\left(t\right)}{dt} dtdT(t)做近似,因此考虑只保留等式右边得第一项,将等式右边得其余项视为截断误差:
在这里插入图片描述
如果截断误差为0,则有:
在这里插入图片描述
这个公式称为欧拉前向公式已知题干条件:

d T ( t ) d t = − T ( t ) \frac{dT\left(t\right)}{dt}=-T\left(t\right) dtdT(t)=T(t)

将其带入差分方程:

整理得到:
Tt+∆t=-∆tTt+Tt
已知初始条件:
T(0)=1
假设将t的整个区间分成n份,步长为∆t需要自行设定,理论上∆t的值越小近似效果越好,则分别对应 t 1 = 0 , t 2 = ∆ t , … , t n = n − 1 ∆ t , t n + 1 = n ∆ t t_1=0,t_2=∆t,…,t_n=n-1∆t,t_{n+1}=n∆t t1=0,t2=t,,tn=n1∆t,tn+1=nt。当 t = t 1 t=t_1 t=t1时:
Tt1+∆t=-∆tTt1+Tt1
即:
T\left(t_2\right)=-∆tT0+T0=T_{t_2}

此时根据初始条件T(0)=1,计算出 T ( t 2 ) T\left(t_2\right) T(t2)时刻的近似值 T t 2 T_{t_2} Tt2然后以此类推,根据 T t 2 T_{t_2} Tt2求出 T t 3 T_{t_3} Tt3,…,直到求出 T n + 1 T_{n+1} Tn+1。这样就使用有限差分方法将连续的 T ( t ) T\left(t\right) T(t)近似成了离散的 T ( t 1 ) , T t 2 , … , T n + 1 T\left(t_1\right),T_{t_2},…, T_{n+1} T(t1)Tt2,,Tn+1

(2)二维有限差分

从题干中可以发现:t是时间变量,x,y是空间变量,不仅需要对t差分做近似,还需要对x,y差分做近似。,将x分为m份,y分为u份,t分为n份,则在x方向上 x i ( i = 1 , 2 , … , m + 1 ) x_i\left(i=1,2,\ldots,m+1\right) xi(i=1,2,,m+1),在y方向上有 y j ( j = 1 , 2 , … , u + 1 ) y_j\left(j=1,2,\ldots,u+1\right) yj(j=1,2,,u+1),在t方向上有 t k ( k = 1 , 2 , … , n + 1 ) t_k\left(k=1,2,\ldots,n+1\right) tk(k=1,2,,n+1),因此为了方便表达将 T ( x , y , t ) T\left(x,y,t\right) T(x,y,t)离散后的值记作 T i , j k T_{i,j}^k Ti,jk。∆x,∆y,∆t为x,y,t方向的步长, x i = i ∆ x , y j = j ∆ y , t k = k ∆ t x_i=i∆x,y_j=j∆y,t_k=k∆t xi=ixyj=jytk=kt
使用有限差分近似 ∂ 2 T ∂ x 2 \frac{\partial^2T}{\partial x^2} x22T
首先将和T(x-∆x)泰勒展开:
Tx+∆x=Tx+∆x1!∂Tx∂x+∆x22!∂2Tx∂x2+∆x33!∂3Tx∂x3+o∆x4
Tx-∆x=Tx-∆x1!∂Tx∂x+∆x22!∂2Tx∂x2-∆x33!∂3Tx∂x3+o∆x4
二者相加得到:
Tx+∆x+Tx-∆x=2 Tx+∆x2∂2Tx∂x2++o∆x4
移项:
Tx+∆x+Tx-∆x-2 Tx∆x2=∂2Tx∂x2+o∆x2
还是将后面的高阶无穷小省略,得到:
Tx+∆x+Tx-∆x-2 Tx∆x2=∂2Tx∂x2
将t和y带入,使用T_{i,j}^k的形式表达上式:
Ti+1,jk+Ti-1,jk-2 Ti,jk∆x2=∂2Tx∂x2
同理计算\frac{\partial^2T\left(y\right)}{\partial y^2}的差分:
Ty+∆y+Ty-∆y-2 Ty∆y2=∂2Ty∂y2
将t和x带入,使用T_{i,j}^k的形式表达上式:
Ti,j+1k+Ti,j-1k-2 Ti,jk∆y2=∂2Ty∂y2
根据(1)的推导得到t的差分:
Tt+∆t-Tt∆t=∂T∂t
将x和y带入,使用T_{i,j}^k的形式表达上式:
Ti,jk+1-Ti,jk∆t=∂T∂t
将三者近似的差分方程带入Heat Equation:
\frac{\partial T}{\partial t}=K\left(\frac{\partial^2T\left(x\right)}{\partial x2}+\frac{\partial2T\left(y\right)}{\partial y^2}\right)
得到:
Ti,jk+1-Ti,jk∆t=K(Ti+1,jk+Ti-1,jk-2 Ti,jk∆x2+Ti,j+1k+Ti,j-1k-2 Ti,jk∆y2)
如果将∆x与∆y的步长设置同样的值,将上格式子整理得到:
T_{i,j}^{k+1}=K∆t∆x2(Ti+1,jk+Ti-1,jk+Ti,j+1k+Ti,j-1k-4Ti,jk)+ Ti,jk
已知正方形板子的一面的温度是T=20,剩下三面温度是T=40,所以得到四个边界条件: T_{1,j}k=20, { T}_{m+1,j}k=40,{\ T}_{i,1}k=40,{ T}_{i,u+1}k=40.还需要一个初始条件T_{i,j}^1=1,表示T在k=1时刻的温度为1度。将这五个条件带入上述公式求解:
T_{1,1}^2=K∆t∆x2(T2,11+T0,11+T1,21+T1,01-4T1,11)+ T1,11
可以计算出T_{1,1}^2的值,此时还需遍历i=2\rightarrow m+1;\ j=2\rightarrow u+1才能通过k=1的初始条件计算出k=2时刻的T_{i,j}^2的全部的近似值。然后还需要遍历k=2\rightarrow n+1,最终得到T_{i,j}{k+1}的全部值。就完成了将T\left(x,y,t\right)离散化得到T_{i,j}{k+1}。 ∆t与∆x根据实验效果的不同而改变,理论上值越小越好,K是一个常数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好乐day_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值