Метод дифференциальной декомпозиции для одномерных параболических уравнений

математика

Содержание вопроса

在这里插入图片描述Используйте явный формат для решения неявного формата Crank-Nicolson, возьмите h = 0,1, r = 0,1 для расчета, а затем проанализируйте ошибку. (т\tau— шаг t, h — шаг x, положение m и температура в момент времени k)

Алгоритм решения

Решить в явной схеме

Обратитесь к учебнику, чтобы получить итерационный процесс явной схемы:(u1k+1u2k+1um2k+1um1k+1)=(12rrr12rrr12rrr12r)(u1k+ru0ku2kum2kum1k+rumk)\left(\begin{array}{c}u_{1}^{k+1} \\ u_{2}^{k+1} \\ \vdots \\ u_{m-2}^{k+1} \\ u_{m-1}^{k+1}\end{array}\right)=\left(\begin{array}{ccccc}1-2 r & r & & & \\ r & 1-2 r & r & & \\ & \ddots & \ddots & \ddots & \\ & & & r & 1-2 r & r \\ & & & & r & 1-2 r\end{array}\right)\left(\begin{array}{c}u_{1}^{k}+ru_{0}^k \\ u_{2}^{k} \\ \vdots \\ u_{m-2}^{k} \\ u_{m-1}^{k}+ru_{m}^k\end{array}\right)Программа реализации:

%参考课本
%slove program by explicit scheme
%u(j,n+1)=u(j,n)+v*(u(j+1,n)-2*u(j,n)+u(j-1,n))
xl=0;
xr=1;
j=10;
dx=(xr-xl)/j;%步长
tf=0.1;
Nt=50;
dt=tf/Nt;
mu=dt/(dx)^2;
%make sure dt satisy stability condition
if mu>0.5
    error('mu shuold<0.5!')
end
%initial condition
x=xl:dx:xr;%grind point
f=sin(pi*x)+sin(2*pi*x);
%store the solution at all grid points for all time steps
u=zeros(j+1,Nt);
u_ture=zeros(j+1,Nt);
%find the approximate solution at each time step
for n=1:Nt
    t=n*dt;
    %boundary condition at left side
    gl=exp(-1*pi*pi*t).*sin(pi*xl)+exp(-4*pi*pi*t).*sin(2*pi*xl);
    %boundary condition at right side
    gr=exp(-1*pi*pi*t).*sin(pi*xr)+exp(-4*pi*pi*t).*sin(2*pi*xr);
    if n==1
        for i=2:j
            u(i,n)=f(i)+mu*(f(j+1)-2*f(j)+f(j-1));
        end
        u(1,n)=gl;
        u(j+1)=gr;
    else
        for i=2:j
           u(i,n)=u(i,n-1)+mu*(u(i+1,n-1)-2*u(i,n-1)+u(i-1,n-1));
        end
        u(1,n)=gl;
        u(j+1)=gr;
    end
    %calculate the analytic solution
    for i=1:j+1
    xi=xl+(i-1)*dx;
    u_ture(i,n)=exp(-1*pi*pi*t).*sin(pi*xi)+exp(-4*pi*pi*t).*sin(2*pi*xi);
    end

end
%plot the result
tt=dt:dt:Nt*dt;
figure(1)
colormap(gray);
surf(x,tt,u');
xlabel('x');
ylabel('t');
zlabel('u');
title('explicit scheme')

%polt the analytic result
figure(2)
colormap(jet);
surf(x,tt,u_ture');
xlabel('x');
ylabel('t');
zlabel('u');
title('analytic solution')

решение неявной схемы

Обратитесь к учебнику, чтобы получить итерационный процесс неявной схемы:(1+2rrr1+2rrr1+2rrr1+2r)(u1ku2kum2kum1k)\left(\begin{array}{ccccc}1+2 r & -r & & & \\ -r & 1+2 r & -r & & \\ & \ddots & \ddots & \ddots & \\ & & -r & 1+2 r & -r \\ & & & -r & 1+2 r\end{array}\right)\left(\begin{array}{c}u_{1}^{k} \\ u_{2}^{k} \\ \vdots \\ u_{m-2}^{k} \\ u_{m-1}^{k}\end{array}\right) =(u1k1+ru0ku2k1um2k1um1k1+rumk)=\left(\begin{array}{c}u_{1}^{k-1}+r u_{0}^{k} \\ u_{2}^{k-1} \\ \vdots \\ u_{m-2}^{k-1} \\ u_{m-1}^{k-1}+r u_{m}^{k}\end{array}\right)

参照上算法

Решение формата Crank_Nicolsm

Обратитесь к учебнику, чтобы получить итеративный процесс в формате Crank_Nicolsm:(1+rr2r21+rr2r21+rr2r21+r)(u1k+1u2k+1um2k+1um1k+1)\left(\begin{array}{ccccc}1+r & -\frac{r}{2} & & & \\ -\frac{r}{2} & 1+r & -\frac{r}{2} & & \\ & \ddots & \ddots & \ddots & \\ & & -\frac{r}{2} & 1+r & -\frac{r}{2} \\ & & & -\frac{r}{2} & 1+r\end{array}\right)\left(\begin{array}{c}u_{1}^{k+1} \\ u_{2}^{k+1} \\ \vdots \\ u_{m-2}^{k+1} \\ u_{m-1}^{k+1}\end{array}\right) =(1rr2r21rr2r21rr2r21r)(u1k+r2(u0k+u0k+1)u2kum2kum1k+r2(umk+umk+1))=\left(\begin{array}{ccccc}1-r & \frac{r}{2} & & & \\ \frac{r}{2} & 1-r & \frac{r}{2} & & \\ & \ddots & \ddots & \ddots & \\ & & & \frac{r}{2} & 1-r & \frac{r}{2} \\ & & & \frac{r}{2} & 1-r\end{array}\right)\left(\begin{array}{c}u_{1}^{k}+\frac{r}{2}\left(u_{0}^{k}+u_{0}^{k+1}\right) \\ u_{2}^{k} \\ \vdots \\ u_{m-2}^{k} \\ u_{m-1}^{k}+\frac{r}{2}\left(u_{m}^{k}+u_{m}^{k+1}\right)\end{array}\right)программа

参照上程序

Результаты экспериментов

Результаты трехформатного итеративного решения

在这里插入图片描述

Анализ ошибок

在这里插入图片描述В этом эксперименте в качестве примера взят анализ формата CN.В соответствии с приведенной выше идеей расчета данные об ошибках сведены в таблицу 1: (E=maxu(xi,tk)uik\boldsymbol{E}_{\infty}=\max \left|\boldsymbol{u}\left(\boldsymbol{x}_{i}, \boldsymbol{t}_{k}\right)-\boldsymbol{u}_{i}^{k}\right|)在这里插入图片描述

Резюме эксперимента

На этот раз используются три разные дифференциальные схемы: схема Crank_Nicolsm, явная схема (явная схема) и неявная схема (неявная схема) для решения подробного одномерного параболического уравнения. Анализируя приведенные выше схемы, можно получить схему CN. ошибка решения наименьшая, при этом изменяется ошибка вычисления размера шага, а скорость сходимости ошибки в формате CN получается как:在这里插入图片描述. Однако при дальнейшем сравнении скорости сходимости трех форматов эксперимент ограничен временем и усилиями и не получил дальнейшего развития, и необходимы дальнейшие исследования и улучшения.