考虑如下非齐次热传导问题:



==========答案=========

%%偏微分方程有限差分法实习题
%算例七
tic%开始计时
clc
clear all
%==================================================
%输入参数
T=[0.1,0.2,0.4,0.8]; %结束时间节点
dx=0.05;                 %空间步长
x=0:dx:1;                 %空间范围剖分
dy=0.05;                 %空间步长
y=0:dy:1;                 %空间范围剖分
dt=0.01;                  %时间步长
t=0:dt:T(end);          %最大时间范围剖分
lambda=dt/dx/dx;   %λ
[x,y]=meshgrid(x,y);
%==================================================
%Peaceman-Rachford格式
size(x,2)
u=zeros(size(x,2),size(y,2),size(t,2)); %预先分配内存,同时边界值和初始条件
F=zeros(size(x,2),size(y,2),size(t,2));
for j=1:size(x,2)
    for l=1:size(y,2)
        for n=1:size(t,2)
            F(j, l, n) = sin(5*pi*t(n))*sin(2*pi*x(j,l))*sin(pi*y(j,l));
        end
    end
end
for i=1:size(x,2)-2
    for j=1:size(x,2)-2
        if       i==j
            A1(i,j)=1+lambda;
            A2(i,j)=1-lambda;
        elseif i==j+1
            A1(i,j)=-0.5*lambda;
            A2(i,j)=0.5*lambda;
        elseif i==j-1
            A1(i,j)=-0.5*lambda;
            A2(i,j)=0.5*lambda;
        else
        end
    end
end
for n=2:size(t,2)
    for j=2:size(x,2)-1
            u12=A1\(A2*u(j,2:end-1,n-1)'+0.5*dt*F(j,2:end-1,n-1)');
            u(j,2:end-1,n)=A1\(A2*u12+0.5*dt*F(j,2:end-1,n)');
    end
end
%开始绘图
for i=1:size(T,2)
subplot(2,2,i)
surf(x,y,u(:,:,T(i)/dt+1))
end
%==================================================
toc %计时结束免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删