用四种差分格式求解下列方程:
{ u t = u x x , x ∈ ( 0 , 1 ) u ( x , 0 ) = s i n π x u ( 0 , t ) = 0 , u ( 1 , t ) = 0 , 0 < t ≤ 10 \begin{cases} &u_t=u_{xx},&x\in(0,1)\\ &u(x,0)=sin\pi x\\ &u(0,t)=0,u(1,t)=0,&0<t\leq10 \end{cases} ⎩
⎨
⎧ut=uxx,u(x,0)=sinπxu(0,t)=0,u(1,t)=0,x∈(0,1)0<t≤10
其中方程精确解为: u ( x , t ) = e − π 2 t s i n ( π x ) . u(x,t)=e^{-\pi^2t}sin(\pi x). u(x,t)=e−π2tsin(πx).
- 向前差分格式:
u j n + 1 − u j n τ = u j − 1 n − 2 u j n + u j + 1 n h 2 \frac{u^{n+1}_j-u^n_j}{\tau}=\frac{u^{n}_{j-1}-2u^{n}_{j}+u^{n}_{j+1}}{h^2} τujn+1−ujn=h2uj−1n−2ujn+uj+1n
记 r = τ h 2 r=\frac{\tau}{h^2} r=h2τ, 则有
U j n + 1 = r U j − 1 n − ( 1 − 2 r ) U j n + r U j + 1 n . U^{n+1}_j=rU^{n}_{j-1}-(1-2r)U^{n}_{j}+rU^{n}_{j+1}. Ujn+1=rUj−1n−(1−2r)Ujn+rUj+1n.
即 U n + 1 = C 1 U n U^{n+1}=C_1U^n Un+1=C1Un, 其中
S = ( 0 1 1 ⋱ ⋱ ⋱ ⋱ 1 1 0 ) . S=\begin{pmatrix}0&1& & \\1& \ddots&\ddots &\\ & \ddots&\ddots &1\\ & &1 &0 \end{pmatrix}. S= 011⋱⋱⋱⋱11