Содержание вопроса
Используйте явный формат для решения неявного формата Crank-Nicolson, возьмите h = 0,1, r = 0,1 для расчета, а затем проанализируйте ошибку. (— шаг t, h — шаг x, положение m и температура в момент времени k)
Алгоритм решения
Решить в явной схеме
Обратитесь к учебнику, чтобы получить итерационный процесс явной схемы:Программа реализации:
%参考课本
%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')
решение неявной схемы
Обратитесь к учебнику, чтобы получить итерационный процесс неявной схемы:
参照上算法
Решение формата Crank_Nicolsm
Обратитесь к учебнику, чтобы получить итеративный процесс в формате Crank_Nicolsm: программа
参照上程序
Результаты экспериментов
Результаты трехформатного итеративного решения
Анализ ошибок
В этом эксперименте в качестве примера взят анализ формата CN.В соответствии с приведенной выше идеей расчета данные об ошибках сведены в таблицу 1: ()
Резюме эксперимента
На этот раз используются три разные дифференциальные схемы: схема Crank_Nicolsm, явная схема (явная схема) и неявная схема (неявная схема) для решения подробного одномерного параболического уравнения. Анализируя приведенные выше схемы, можно получить схему CN. ошибка решения наименьшая, при этом изменяется ошибка вычисления размера шага, а скорость сходимости ошибки в формате CN получается как:. Однако при дальнейшем сравнении скорости сходимости трех форматов эксперимент ограничен временем и усилиями и не получил дальнейшего развития, и необходимы дальнейшие исследования и улучшения.