有限差分法

2026/1/27 7:08:20

b=4; N=5000; M=N+1; Dx=(b-a)/N; for m=1:M

x(m)=a+(m-1)*Dx; end F=zeros(M); for m=1:M;

F(m,m)=2/((Dx)^2)+x(m)^2; end

for m=1:M-1;

F(m+1,m)=-1/((Dx)^2); F(m,m+1)=-1/((Dx)^2); end [v,d]=eig(F); for n=1:1 E5(n)=d(n,n)/2

A=sqrt(trapz(x,v(:,n).*v(:,n))); hold on

plot(x,v(:,n)/A,'-k', 'LineWidth',2) end clear a=-4; b=4; N=6000; M=N+1; Dx=(b-a)/N; for m=1:M

x(m)=a+(m-1)*Dx; end F=zeros(M); for m=1:M;

F(m,m)=2/((Dx)^2)+x(m)^2; end

for m=1:M-1;

F(m+1,m)=-1/((Dx)^2); F(m,m+1)=-1/((Dx)^2);

图7计算区间取为??4,4?, 计算点数分别为1000、2000、3000、4000、5000和6000.所有的波函数曲线重合为一条曲线.

17

end [v,d]=eig(F); for n=1:1 E6(n)=d(n,n)/2

A=sqrt(trapz(x,v(:,n).*v(:,n))); hold on

plot(x,v(:,n)/A,'-k', 'LineWidth',2) end

计算得到的本征值为:

E1 =0.5000, E2 =0.5000, E3 =0.5000, E4 =0.5000, E5 =0.5000, E6 =0.5000 计算所得的波函数如图7所示, 所有波函数的曲线均重合为一条曲线.

下面我们设计的程序计算区间分别取??4,4?,??5,5?,??6,6?,??7,7?,??8,8?和??9,9?, 计算点分别取2000、2500、3000、3500、4000和4500, 这样可保证计算精度相同. 计算程序:

clear a=-4; b=4; N=2000; M=N+1; Dx=(b-a)/N; for m=1:M

x(m)=a+(m-1)*Dx; end F=zeros(M); for m=1:M;

F(m,m)=2/((Dx)^2)+x(m)^2; end

for m=1:M-1;

F(m+1,m)=-1/((Dx)^2); F(m,m+1)=-1/((Dx)^2); end [v,d]=eig(F); for n=1:1 E1(n)=d(n,n)/2 figure

A=sqrt(trapz(x,v(:,n).*v(:,n))); plot(x,v(:,n)/A,'-k', 'LineWidth',2) axis([-9 9 0 0.8]) set(gca,'XTick',-9:1:9)

18

set(gca,'YTick',0:0.1:0.8)

t=['\\fontsize{14}\\rm\\Psi','_{',int2str(n-1),'}','(\\xi)']; grid on

xlabel ('\\fontsize{14}\\rm\\xi', 'Color','k') ylabel (t, 'Color','k')

set(gca,'ygrid','on','GridLineStyle','-') set(gca,'xgrid','on','GridLineStyle','-') end clear a=-5; b=5; N=2500; M=N+1; Dx=(b-a)/N; for m=1:M

x(m)=a+(m-1)*Dx; end F=zeros(M); for m=1:M;

F(m,m)=2/((Dx)^2)+x(m)^2; end

for m=1:M-1;

F(m+1,m)=-1/((Dx)^2); F(m,m+1)=-1/((Dx)^2); end [v,d]=eig(F); for n=1:1 E2(n)=d(n,n)/2

A=sqrt(trapz(x,v(:,n).*v(:,n))); hold on

plot(x,v(:,n)/A,'-k', 'LineWidth',2) end clear a=-6; b=6; N=3000; M=N+1; Dx=(b-a)/N;

19

for m=1:M

x(m)=a+(m-1)*Dx; end F=zeros(M); for m=1:M;

F(m,m)=2/((Dx)^2)+x(m)^2; end

for m=1:M-1;

F(m+1,m)=-1/((Dx)^2); F(m,m+1)=-1/((Dx)^2); end [v,d]=eig(F); for n=1:1 E3(n)=d(n,n)/2

A=sqrt(trapz(x,v(:,n).*v(:,n))); hold on

plot(x,v(:,n)/A,'-k', 'LineWidth',2) end clear a=-7; b=7; N=3500; M=N+1; Dx=(b-a)/N; for m=1:M

x(m)=a+(m-1)*Dx; end F=zeros(M); for m=1:M;

F(m,m)=2/((Dx)^2)+x(m)^2; end

for m=1:M-1;

F(m+1,m)=-1/((Dx)^2); F(m,m+1)=-1/((Dx)^2); end [v,d]=eig(F); for n=1:1 E4(n)=d(n,n)/2

20


有限差分法.doc 将本文的Word文档下载到电脑
搜索更多关于: 有限差分法 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219