嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
本实例用matlab实现了求解限定源扩散问题,并给出了仿真结果
%***********************************
%用有限差分法求问题近似解
%***********************************
T = 3;
X = 9;
%时间和空间坐标轴的长度,空间之所以设置为9,是为了
%模拟边界条件u(inf,t) = 0,即无穷远处浓度恒为0
lambda = (T/(M-1))/(X/(N-1))^2;
%收敛因子,小于等于0.5时算法稳定,此处为0.5临界稳定
u = zeros(M,N); %初始化
u(1,:) = 0;%边界条件,t=0时u为delta函数
u(1,1) = 10; %本应是delta(0),即无穷大,此处用一个较大数近似
temp = 0.005:0.005:3;%用作辅助变量,一维时间变量
u(2:end,1) = 1./sqrt(pi.*temp);
%边界条件,由于没有恒定源,x=0处u随时间t下降,
%此处采用负幂次下降,也可以采用指数下降近似
for i = 1:M-1
for j = 2:N-1
u(i 1,j) = ((1-2*lambda)*u(i,j) lambda*u(i,j 1) lambda*u(i,j-1));
end
end
%以上用双重for循环实现有限差分算法
[x,t] = meshgrid(1:N,1:M);
u = u(1:M,1:1/3*(N-1) 1);
x = x(1:M,1:1/3*(N-1) 1);
t = t(1:M,1:1/3*(N-1) 1);
%将区间限定在x = (0,3)之间
x = (x-1)*X/(N-1);
t = (t-1)*T/(M-1);
figure(2);
mesh(x,t,u);%打印三维立体图
xlabel('x'),ylabel('t'),zlabel('u');
title('有限差分解');