✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于 IMEX 方法求解对流扩散方程附matlab代码
⛄ 部分代码
function[c]=Boundary(M,rhs,n,c_0,h,q)
%% Sets boundary condition and calculates result vector c
%---------------------------
% D= Dirichlet N=Neumann x= Inner Region
%
% for example 4x4 square
% D DDD
% D xx N
% D xx N
% DDDD
%---------------------------------------
%% down Dirichlet=0
%----------------------------------------
for f=1:n
M(f,:)=0;
M(f,f)=1;
rhs(f)=0;
end
%
%----------------------------------------
%% up Dirichlet=0
%----------------------------------------
for f=(n^2-(n-1)):n^2
M(f,:)=0;
M(f,f)=1;
rhs(f)=0;
end
%
%----------------------------------------
%% left Dirichlet
%----------------------------------------
l=(n+1 : n :(n^2)-n);
for f=1:length(l)
j=l(f);
M(j,:)=0;
M(j,j)= 1;
rhs(j)=c_0;
end
%----------------------------------------
%% right Neumann
%% three point backwards difference
%%----------------------------------------
%
k=(2*n:n:(n^2)-n);
for m=1:length(l)
j=k(m);
M(j,:)=0;
M(j,j)=(1/h)*(3/2)-q;
M(j,j-1)=(1/h)*(-2);
M(j,j-2)=(1/h)*(1/2);
rhs(j)=0;
end
%% Solving System
c = M\rhs;
for l=1:n^2
if (c(l)<=0)
c(l)=0;
end
end
⛄ 运行结果
⛄ 参考文献
[1]金忠青, 陈夕庆. 用脉冲谱-优化法求解对流-扩散方程源项控制反问题[J]. 河海大学学报:自然科学版, 1992(2):8.