⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 solve_schrodinger_equation.txt

📁 通过数值计算的方法依次改变本征值的取值
💻 TXT
字号:

#include<math.h>
#include<stdio.h>
main()
{
 int n=2500,i=0,k=1,h=1,m=2,j,s;
 int xma=100,xmi=-100,x0=200;
 float e0=-0.01,de=0.005,n=0.1;
 float k1,k2,k3,k4,l1,l2,l3,l4;
 float k(i)=-2m/(h*h)*(e0-k*(-100+in-1)*(-100+in-1)*(-100+in+2)*(-  100+in+2))
 float q(0)=0,f(0)=0,y(j);
 for(s=0;s<1;s++)
 {
  for(j=0;;j++)
  {  
   for(i=0;i<2000;i++)
   {
    k1=q(i);
    l1=k(i)*f(i);
    k2=q(i)+n/2*l1;
    l2=k(i+1/2)*(f(i)+n/2*k2);
    k3=q(i)+n/2*l2;
    l3=k(i+1/2)*(f(i)+n/2*k3);
    k4=q(i)+n*l3;
    l4=k(i+1)*(f(i)+n*k4);
    f(i+1)=f(i)+n/6*(k1+2*k2+2*k3+k4);
    q(i+1)=q(i)+n/6*(l1+2*l2+2*l3+l4);
   }
   y(j)=f(2000)-f(0);
  }
  if(y(j)&&k(2500)=q(0))
  {
   printf("eo=%f",eo);
   for(i=0;i<2500;i++);
   printf("f(i)=%f",f(i));
  }
  else 
  {
   if(j>=1)
   {
    if(y(j)*y(j-1)>0)
    e0=e0+de;
   }
   else
   {
    de=1/2*de;
    eo=eo+de;
   }
   s=-1;
  }
 }
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -