24小时热门版块排行榜    

查看: 1073  |  回复: 3

岚泽泽zz

新虫 (初入文坛)

[求助] 急急急 matlab程序运行不出来 哪位大神可以帮忙修改一下 谢谢 谢谢

程序是计算一维薛定谔方程的本征值,中间薛定谔矩阵用的是有限差分法,我们老师要求的程序运行结果,是要求出波函数phi的图,和能量E的值。
下面是我写的程序,程序目前的问题主要是矩阵赋值的地方,还有求能量E的地方如何写,本征值的地方。
各位大神帮帮忙,谢谢!
clc;clear all;
%量子阱参数
w=30;                                          %势阱宽30nm
N=100;                                        %取点
h=1.054*10^-34;                        %普朗克常数1.054*10^-34J-s
m0=9.11*10^-31;                       %静电子质量9.11*10^-31kg
m=0.067*m0;                              %有效质量
V=300;                                         %势能300mev
%薛定谔矩阵
a=0;b=30;                                     %端点坐标
deltax=(b-a)/N;                              %计算区间步长
p=ones(N-1,1);                               %创建元素为1的(N-1)*1阶矩阵
K=spdiags([-2*p,-2*p,-2*p],[-1,0,1],N-1,N-1); %生成三对角线稀疏矩阵
for i=1:N-1
    y1=a+deltax*i;                                   %计算各节点坐标值
    K(i,i)=h^2/m./(deltax).^2+V;              %主对角线元素赋值
    K(i,i+1)=-h^2/(2*m*(deltax).^2);
    K(i,i-1)= -h^2/(2*m*(deltax).^2);       %从对角线元素赋值
end
B=zeros(N-1,1);                                      %创建元素为0的(N-1)*1阶矩阵
B(1)=h^2/(2*m*(deltax).^2);
B(N-1)=h^2/(2*m*(deltax).^2);            %设定矩阵两端的元素值
phi=K\B;                                                 %矩阵左除,计算各节点函数近似值
%本征值计算
E=eig(K);                                                %求矩阵K的全部特征值
%显示结果
spy(K);                                        %查看稀疏矩阵
plot(y1,phi,'.')                              %绘制函数phi(x)的曲线图
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
岚泽泽zz: 金币+5, 有帮助 2016-05-05 10:10:34
%%%%%%现在能够运行处结果,但是不知道对不对。
clc;clear all;
%量子阱参数
w=30;                                          %势阱宽30nm
N=100;                                        %取点
h=1.054*10^-34;                        %普朗克常数1.054*10^-34J-s
m0=9.11*10^-31;                       %静电子质量9.11*10^-31kg
m=0.067*m0;                              %有效质量
V=300;                                         %势能300mev
%薛定谔矩阵
a=0;b=30;                                     %端点坐标
deltax=(b-a)/N;                              %计算区间步长
p=ones(N-1,1);                               %创建元素为1的(N-1)*1阶矩阵
y1=p;
K=spdiags([-2*p,-2*p,-2*p],[-1,0,1],N-1,N-1); %生成三对角线稀疏矩阵
for i=1:N-1
    y1(i)=a+deltax*i;                                   %计算各节点坐标值
    K(i,i)=h^2/m./(deltax).^2+V;              %主对角线元素赋值
    if i<N-1
        K(i,i+1)=-h^2/(2*m*(deltax).^2);
    end
    if i>1
        K(i,i-1)= -h^2/(2*m*(deltax).^2);       %从对角线元素赋值
    end
end
B=zeros(N-1,1);                                      %创建元素为0的(N-1)*1阶矩阵
B(1)=h^2/(2*m*(deltax).^2);
B(N-1)=h^2/(2*m*(deltax).^2);            %设定矩阵两端的元素值
phi=K\B;                                                 %矩阵左除,计算各节点函数近似值
%本征值计算
E=eig(K);                                                %求矩阵K的全部特征值
%显示结果
spy(K);                                        %查看稀疏矩阵
plot(y1,phi,'b-')                              %绘制函数phi(x)的曲线图
没事儿就进行交流~
2楼2016-05-05 09:33:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

岚泽泽zz

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 霜小妹二 at 2016-05-05 09:33:33
%%%%%%现在能够运行处结果,但是不知道对不对。
clc;clear all;
%量子阱参数
w=30;                                          %势阱宽30nm
N=100;                                        %取点
h=1.054*10^ ...

代码是可以运行出来了,但是结果不对,可能是我写的代码还有问题,不过还是谢谢你,至少它可以运行啦
3楼2016-05-05 10:08:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

引用回帖:
3楼: Originally posted by 岚泽泽zz at 2016-05-05 10:08:58
代码是可以运行出来了,但是结果不对,可能是我写的代码还有问题,不过还是谢谢你,至少它可以运行啦...

那就好~你看看过程中的方程是不是对的了
祝好!
没事儿就进行交流~
4楼2016-05-05 11:10:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 岚泽泽zz 的主题更新
信息提示
请填处理意见