马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
用有限差分法,构造差分格式时,用的最简单的构造方法,将微分方程中的微分改为差分,即:
dx1/dt=[x1(j,n+1)-x(j,n)]/t
dx1/dz=[x1(j+1,n)-x(j,n)]/h;
h为时间步长和空间步长
程序中取时间步长为t=0.005; 空间步长为h=0.1;
全部程序如下:
%空间有J-1份和时间有N-1份,但是J和N个节点
%% 1.初始化
N=201; % time iteration number
J=51; % z iteration number
t=0.005;h=0.1;
x1(J,N)=0;x2(J,N)=0;x3(J,N)=0;%建立初始矩阵
%初始条件
for j=1:J
x1(j,1)=0;x2(j,1)=0;x3(j,1)=1.9e-19;
end
%边界条件
for n=1:N
x1(1,n)=0;x2(1,n)=0;x3(1,n)=0; %初始边界
x1(J,n)=0;x2(J,n)=0;x3(J,n)=0; %终止边界
end
%除了初始时刻和两边边界外,满足的差分方程
for n=2:N
for j=2:J-1
x1(j,n+1)=t*(x2(j,n)-2e3*x1(j,n)+1.2e-12*x3(j,n)*(x2(j,n)-x1(j,n))-5*(x2(j+1,n)-x2(j,n))/h)+x1(j,n);
x2(j,n+1)=t*(1-x1(j,n)-2*x2(j,n)-1.2e-12*x3(j,n)*(x2(j,n)-x1(j,n))-5*(x2(j+1,n)-x2(j,n))/h)+x2(j,n);
x3(j,n+1)=t*(1.2e8*x3(j,n)*(x2(j,n)-x1(j,n))-2e4*x3(j,n))+x1(j,n);
end;
end;
x1
结果错误!麻烦高手帮忙看一下!有什么问题!
另外我还有几个问题请教:1)用差分格式时,步长如何选择?
2)对于边界条件如何定,比较模糊,有高手能不能给点建议?
这些问题估计是我们这些初接触差分解偏微分方程和MATLAB的菜鸟特别想知道的,如果能够解答,应该比较有价值的
各位高手对于这方面的主题能否总结一下
[ 本帖最后由 eight 于 2007-10-4 18:52 编辑 ] |