Scilab 波函数图随基数的增加而变化 N=15//基准数量 b=%pi^2/4; e2=30^2//刚度系数平方 a=2//中子势阱宽度 h=零(N,N)//调用h矩阵 //hnm矩阵 对于n=1:n; h(n,n)=e2*((1-6/(%pi*%pi*n*n))*
波函数图随基数的增加而变化Scilab 波函数图随基数的增加而变化 N=15//基准数量 b=%pi^2/4; e2=30^2//刚度系数平方 a=2//中子势阱宽度 h=零(N,N)//调用h矩阵 //hnm矩阵 对于n=1:n; h(n,n)=e2*((1-6/(%pi*%pi*n*n))*,scilab,Scilab,波函数图随基数的增加而变化 N=15//基准数量 b=%pi^2/4; e2=30^2//刚度系数平方 a=2//中子势阱宽度 h=零(N,N)//调用h矩阵 //hnm矩阵 对于n=1:n; h(n,n)=e2*((1-6/(%pi*%pi*n*n))*(%pi^2/48))+n^2; 对于m=n+1:n; q=1/((m-n)^2); r=1/((m+n)^2); t=(-1)^(m+n)+1)/4; h(m,n)=e2*t*(q-r); h(n,m)=h(m,n); 结束 结束 disp(
N=15//基准数量
b=%pi^2/4;
e2=30^2//刚度系数平方
a=2//中子势阱宽度
h=零(N,N)//调用h矩阵
//hnm矩阵
对于n=1:n;
h(n,n)=e2*((1-6/(%pi*%pi*n*n))*(%pi^2/48))+n^2;
对于m=n+1:n;
q=1/((m-n)^2);
r=1/((m+n)^2);
t=(-1)^(m+n)+1)/4;
h(m,n)=e2*t*(q-r);
h(n,m)=h(m,n);
结束
结束
disp(h);
//求特征值和矩阵
s=眼睛(N,N)//初等矩阵
disp(s);
[al,be,R]=规范(h,s);
e1=al./be;
c=R;
disp(e1)//固有值
disp(c);
[E,k]=gsort(实(e1),“g”,“d”)//特征值排序
E=E;
disp(E);
d=c;
d(:,1:N)=c(:,k)//特征向量排序
p=1000;
x=linspace(0,a,p);
psi=零(N,p)//呼叫psi波fn。
对于m2=1:N;
对于n2=1:N;
psi(m2,:)=psi(m2,:)+d(n2,m2)*sqrt(2/a)*sin(n2*%pi*x/a);
结束
如果(M2这里的问题是什么?你能给它和相关标签添加更多信息吗?@NithinKumarBiliya我的问题是这是一个谐振子问题,我选择了一个无限方阱的基,并绘制了它的波函数。我的问题是当我将基增加到20,即N=20时,波函数图就会反转,这不是假设会发生。所以我想知道我的代码中是否有任何问题,因为物理不可能是错误的。你的特征向量被定义为一个乘法常数(带有任意符号)。也许这就是你问题的原因。@Stéphanemotelet那么可能的解决方案是什么?你能给代码本身添加一些光吗?系数sqrt(2/a)*sin(n2*%pi*x/a)
理论上很可能是由标准化特征向量确定的。不知道这种标准化,我不能再多说了…这里的问题是什么?你能给它和相关标签添加更多信息吗?@NithinKumarBiliya我的问题是这是一个谐振子问题,我选择了无限方阱的基础,并绘制了wav它的e函数。我的问题是,当我把基数增加到20,即N=20时,波函数图就会反转,这是不应该发生的。所以我想知道,在我的代码中是否有任何问题,因为物理学不会出错。你的特征向量被定义为一个乘法常数(带有任意符号)。也许这就是你问题的原因。@Stéphanemotelet那么可能的解决方案是什么?你能给代码本身添加一些光吗?系数sqrt(2/a)*sin(n2*%pi*x/a)
很可能是用标准化的特征向量在理论上确定的。不知道这种标准化,我不能说更多。。。
N=15//no. of basis
b=%pi^2/4;
e2=30^2;//sq. of stiffness costant
a=2;//width of inf. potential well
h=zeros(N,N);//call h matrix
//hnm matrix
for n=1:N;
h(n,n)=e2*((1-6/(%pi*%pi*n*n))*(%pi^2/48))+n^2;
for m=n+1:N;
q=1/((m-n)^2);
r=1/((m+n)^2);
t=((-1)^(m+n)+1)/4;
h(m,n)=e2*t*(q-r);
h(n,m)=h(m,n);
end
end
disp(h);
//to find eigen values and matrix
s=eye(N,N);//elementary matrix
disp(s);
[al,be,R]=spec(h,s);
e1=al./be;
c=R;
disp(e1);//eigen values
disp(c);
[E,k]=gsort(real(e1),"g","d");//sorting eigen values
E=E;
disp(E);
d=c;
d(:,1:N)=c(:,k);//sorting eigen vectors
p=1000;
x=linspace(0,a,p);
psi=zeros(N,p);//call psi wave fn.
for m2=1:N;
for n2=1:N;
psi(m2,:)=psi(m2,:)+d(n2,m2)*sqrt(2/a)*sin(n2*%pi*x/a);
end
if(m2<=15);
subplot(5,5,m2);
plot(x,psi(m2,:));
end
end