|
简单解释:偏微分,长得像倒e的那个符号,看作导数符号。基本就是差分法直接代替两个偏微分(一个一阶偏微分,一个二阶偏微分),化简一下,即得psy(i,j+1)=psy(i,j)+cj*tao*((psy(i+1,j)-2*psy(i,j)+psy(i-1,j))/(h**2)-V(i)*psy(i,j)) |
先用Fortran写的程序,之后用origin画的图(图见附件),可是psy波函数解出来后应该是随时间而变化的,但我的基本没变化。(非物理方向专业可略去不看——这个方程类似一维热传导方程,只是相对多了一个虚数单位和一个psy函数,不知道会不会出现问题,方法二(未在图中展示)是我把psy(念为pusai)函数分解为实部和虚部,代回到薛定谔方程所得到的两个对应项的方程,然后仍旧是使用差分解法。)理论上两种方法基本没有区别,而实际上我的图也确实无异,但这更加使我疑惑,不知道问题出现在了哪里。
老师说我图像不对的原因是——M(空间的步数),N(时间的步数),Tao(即dx,空间步长)和h(即dt,时间步长)的值设置的不合理,而我试了一个晚上,终究还是没出来结果。其他考试临近,实在没太多时间执着于这个问题了,万望高人指点
[Fortran] 纯文本查看 复制代码 01 | program time_dependent_schrodinger_equation |
03 | integer , parameter :: M = 150 , N = 500 |
05 | real * 16 :: hba = 1 . , mu = 1 . / 2 |
08 | real , external :: V !势能函数 |
09 | real * 16 , dimension ( M ) :: x , x 1 |
10 | real * 16 , dimension ( N ) :: t , normalize , psy 4 |
11 | real * 16 , dimension ( M , N ) :: psy 2 , psy 3 !psy 2 为对复数psy取模并求其平方的大小,psy 3 ,即为归一化后的波恩诠释下的概率。 |
12 | complex * 16 , dimension ( M , N ) :: psy |
22 | psy ( M , j ) = 0 !边界设定为无限深势阱 |
26 | psy ( i , 1 ) = exp ( ( ( -1 ) * ( x 1 ( i ) * 0.2 -5 ) * * 2 . / 2 . ) / ( 2 . * pi ) ) !阱内给出初始值 |
31 | psy ( i , j +1 ) = psy ( i , j ) + cj * tao * ( ( psy ( i +1 , j ) -2 * psy ( i , j ) + psy ( i -1 , j ) ) / ( h * * 2 ) - V ( i ) * psy ( i , j ) ) !核心内容,将中心差法代入薛定谔方程并整理 |
32 | psy 2 ( i , j +1 ) = ( abs ( psy ( i , j +1 ) ) ) * * 2 |
38 | normalize ( j ) = ( sum ( psy 2 ( 1 : m , j ) ) ) |
44 | psy 3 ( i , j ) = psy 2 ( i , j ) / ( normalize ( j ) ) |
45 | write ( 13 , * ) x ( i ) , t ( j ) , psy 3 ( i , j ) |
47 | psy 4 ( j ) = sum ( psy 3 ( 1 : M , j ) ) |
57 | if ( abs ( i -75 ) -5 < 1 .e -6 ) then |
|
|