理论依据
符号解释
| 符号 | 意义 |
|---|---|
| u u u | 温度 |
| x x x | 传播的位移 |
| t t t | 时间 |
| j j j | x离散化后的序号 j j j=1,2,…,N+1 |
| n n n | t离散化后的序号, n = 1 , 2 , . . . n=1,2,… n=1,2,... |
| f f f | 热源带来的温度影响 |
公式推导
{ ∂ u ∂ t ( x , t ) = α 2 ∂ 2 ∂ x 2 u ( x , t ) + f ( x , t ) u ( x , 0 ) = φ ( x ) u ( a , t ) = μ 1 ( t ) , u ( b , t ) = μ 2 ( t ) \begin{cases} \frac{\partial u}{\partial t}\left( x,t \right) =\alpha ^2\frac{\partial ^2}{\partial x^2}u\left( x,t \right) +f\left( x,t \right)\\ u\left( x,0 \right) =\varphi \left( x \right)\\ u\left( a,t \right) =\mu _1\left( t \right) ,u\left( b,t \right) =\mu _2\left( t \right)\\ \end{cases} ⎩⎪⎨⎪⎧∂t∂u(x,t)=α2∂x2∂2u(x,t)+f(x,t)u(x,0)=φ(x)u(a,t)=μ1(t),u(b,t)=μ2(t)
下面是我的理解
正常我们研究一元函数,会把自变量离散化,如初学积分的时候

现在我们研究多元函数需要把自变量离散化。我的理解是把两个自变量离散化成无限个小方格,很多论文都是这么做的。

然后我们截取我们需要的,比如 x = a x=a x=a这边我们截一段, x = b x=b x=b这边我们截一段。这就是边值。之后我们命令计算机,从初值开始朝着某个方向遍历,把小方格顶点对应的自变量( x x x, t t t)带入方程。

这就是我们无限转化为有限的思想
把 x x x离散化
{ x j = a + ( j − 1 ) Δ x , Δ x = b − a N t n = 0 + ( n − 1 ) Δ t \begin{cases} x_j=a+\left( j-1 \right) \Delta x\text{,}\Delta x=\frac{b-a}{N}\\ t_n=0+\left( n-1 \right) \Delta t\\ \end{cases} {
xj=a+(j−1)Δx,Δx=Nb−atn=0+(n−1)Δt
向 t t t方向
u ( x j , t n + Δ t ) = u ( x j , t n ) + ∂ ∂ t u ( x j , t n ) + . . . u\left( x_j,t_n+\Delta t \right) =u\left( x_j,t_n \right) +\frac{\partial}{\partial t}u\left( x_j,t_n \right) +… u(xj,tn+Δt)=u(xj,tn)+∂t∂u(xj,tn)+...
又由于
∂ u ∂ t ( x , t ) = α 2 ∂ 2 ∂ x 2 u ( x , t ) + f ( x , t ) \frac{\partial u}{\partial t}\left( x,t \right) =\alpha ^2\frac{\partial ^2}{\partial x^2}u\left( x,t \right) +f\left( x,t \right) ∂t∂u(x,t)=α2∂x2∂2u(x,t)+f(x,t)
所以 t t t方向的微分方程可化为
u ( x j , t n + Δ t ) = u ( x j , t n ) + α 2 ∂ 2 ∂ x 2 u ( x j , t n ) Δ t + . . . u\left( x_j,t_n+\Delta t \right) =u\left( x_j,t_n \right) +\alpha ^2\frac{\partial ^2}{\partial x^2}u\left( x_j,t_n \right) \Delta t+… u(xj,tn+Δt)=u(xj,tn)+α2∂x2∂2u(xj,tn)Δt+...
在x方向上
视频上说泰勒展开到 Δ x 2 \Delta x^2 Δx2
u ( x j + Δ x , t n ) = u ( x j , t n ) + ∂ ∂ x u ( x j , t n ) Δ x + 1 2 ∂ 2 ∂ x 2 u ( x j , t n ) Δ x 2 u\left( x_j+\Delta x,t_n \right) =u\left( x_j,t_n \right) +\frac{\partial}{\partial x}u\left( x_j,t_n \right) \Delta x+\frac{1}{2}\frac{\partial ^2}{\partial x^2}u\left( x_j,t_n \right) \Delta x^2 u(xj+Δx,tn)=u(xj,tn)+∂x∂u(xj,tn)Δx+21∂x2∂2u(xj,tn)Δx2
然后再来个 − Δ x -\Delta x −Δx
u ( x j − Δ x , t n ) = u ( x j , t n ) − ∂ ∂ x u ( x j , t n ) Δ x + 1 2 ∂ 2 ∂ x 2 u ( x j , t n ) Δ x 2 u\left( x_j-\Delta x,t_n \right) =u\left( x_j,t_n \right) -\frac{\partial}{\partial x}u\left( x_j,t_n \right) \Delta x+\frac{1}{2}\frac{\partial ^2}{\partial x^2}u\left( x_j,t_n \right) \Delta x^2 u(xj−Δx,tn)=u(xj,tn)−∂x∂u(xj,tn)Δx+21∂x2∂2u(xj,tn)Δx2
两式联立得
∂ 2 ∂ x 2 u ( x , t ) = u ( x j + Δ x , t n ) + u ( x j − Δ x , t n ) − 2 u ( x j , t n ) + o ( Δ x ) Δ x 2 \frac{\partial ^2}{\partial x^2}u\left( x,t \right) =\frac{u\left( x_j+\Delta x,t_n \right) +u\left( x_j-\Delta x,t_n \right) -2u\left( x_j,t_n \right) +o\left( \Delta x \right)}{\Delta x^2} ∂x2∂2u(x,t)=Δx2u(xj+Δx,tn)+u(xj−Δx,tn)−2u(xj,tn)+o(Δx)
这个式子我们可以表达成
∂ 2 ∂ x 2 u ( x , t ) = u j + 1 n + u j − 1 n − 2 u j n Δ x 2 \frac{\partial ^2}{\partial x^2}u\left( x,t \right) =\frac{u_{j+1}^{n}+u_{j-1}^{n}-2u_{j}^{n}}{\Delta x^2} ∂x2∂2u(x,t)=Δx2uj+1n+uj−1n−2ujn
然后带入热传导方程
∂ u ∂ t ( x , t ) = α 2 ∂ 2 ∂ x 2 u ( x , t ) + f ( x , t ) \frac{\partial u}{\partial t}\left( x,t \right) =\alpha ^2\frac{\partial ^2}{\partial x^2}u\left( x,t \right) +f\left( x,t \right) ∂t∂u(x,t)=α2∂x2∂2u(x,t)+f(x,t)
可以得到
u j n + 1 = u j n + α 2 u j + 1 n + u j − 1 n − 2 u j n Δ x 2 + f j n u_{j}^{n+1}=u_{j}^{n}+\alpha ^2\frac{u_{j+1}^{n}+u_{j-1}^{n}-2u_{j}^{n}}{\Delta x^2}+f_{j}^{n} ujn+1=ujn+α2Δx2uj+1n+uj−1n−2ujn+fjn

好了,根据这个公式,只要初值上的点全部知道,且边界固定,系数 α \alpha α和热源的函数 f ( x , t ) f(x,t) f(x,t)给出,我们就能一直遍历求解,这便是有限差分法求解偏微分方程的思想。
不同的边界条件
根据实际情况,有时候会遇到不同的边界条件
一类
{ u ( a , t ) = μ 1 ( t ) u ( b , t ) = μ 2 ( t ) \begin{cases} u\left( a,t \right) =\mu _1\left( t \right)\\ u\left( b,t \right) =\mu _2\left( t \right)\\ \end{cases} {
u(a,t)=μ1(t)u(b,t)=μ2(t)
二类
{ ∂ u ∂ x ∣ x = a = μ 1 ( t ) ∂ u ∂ x ∣ x = b = μ 2 ( t ) \left\{ \begin{array}{c} \frac{\partial u}{\partial x}|_{x=a}=\mu _1\left( t \right)\\ \frac{\partial u}{\partial x}|_{x=b}=\mu _2\left( t \right)\\ \end{array} \right. {
∂x∂u∣x=a=μ1(t)∂x∂u∣x=b=μ2(t)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214143.html原文链接:https://javaforall.net
