资源简介

双曲线差分格式求解,包括一个双曲格式求截断误差及稳定性的例子,以及二维波动方程显格式、交替方向格式ADI1和ADIII格式的求解及matlab 程序,文件中附文档及题目的说明及其解法,易读易懂

资源截图

代码片段和文件信息

clear
clc
%求解下问题
%h离散x方向的步长
%k离散t方向的步长
a=1;T=1;b=0.5;h=1/10;k=1/20;
f=inline(‘0‘‘x‘‘t‘);
fx1=inline(‘exp(x)‘);
fx2=inline(‘-exp(x)‘);
ft1=inline(‘exp(-t)‘);
ft2=inline(‘exp(1-t)‘);
x=0:h:a;
t=0:k:T;
m=length(x);
n=length(t);
s=a*k/h;
[XT]=meshgrid(xt);
Z=zeros(nm);
U=zeros(nm);
for i=2:m-1
U(1i)=feval(fx1x(i));
U(2i)=U(1i)+k*feval(fx2x(i))+k^2/2*a^2/h^2*(feval(fx1x(i+1))-2*feval(fx1x(i))+feval(fx1x(i-1)));
Z(2i)=abs(U(2i)-f0(x(i)t(2)));
end
for j=1:n
U(j1)=feval(ft1t(j));
U(jm)=feval(ft2t(j));
end
A=(1-6*s^2)*ones(1m-2);
C=A;
B=(10+12*s^2)*ones(1m-2);
UU=zeros(1m-2);
f1=UU;
for i=3:n    
   for j=2:m-1 
    UU(j-1)=f0(x(j)t(i));
    f1(j-1)=2*(U(i-1j+1)+10*U(i-1j)+U(i-1j-1))-(1-6*s^2)*U(i-2j+1)-(10+12*s^2)*U(i-2j)-(1-6*s^2)*U(i-2j-1);
   end
   f1(1)=f1(1)-(1-6*s^2)*U(i1);
   f1(end)=f1(end)-(1-6*s^2)*U(im);
   U(i2:m-1)=zgf(ABCf1);
   Z(i2:m-1)=abs(U(i2:m-1)-UU);
end
for i=1:n
    for j=1:m
        ZJ(ij)=f0(x(j)t(i));
    end
end
figure(1)
mesh(XTZ);
figure(2)
mesh(XTZJ);
figure(3)
mesh(XTU);
max(Z(:))


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1143  2010-12-01 02:38  kxjs3\2ysgs.m

     文件       2689  2010-12-01 03:49  kxjs3\ADI1.m

     文件       2844  2010-11-30 23:33  kxjs3\ADI2.m

     文件         44  2010-11-25 16:01  kxjs3\f0.m

     文件       1258  2010-12-01 02:56  kxjs3\xs.m

     文件        422  2010-11-25 14:22  kxjs3\zgf.m

     文件    1317888  2011-01-26 10:26  双曲线.doc

     目录          0  2010-12-01 03:49  kxjs3

----------- ---------  ---------- -----  ----

              1326288                    8


评论

共有 条评论