Построение волновых функций для атома и молекулы, используя пакет аналитических вычислений Maple — страница 4

  • Просмотров 2900
  • Скачиваний 448
  • Размер файла 776
    Кб

параметров > n:=4: l:=2: simplify(Ru(n,l,x)); Зададим необходимую нормировку радиальных функций и определим стандартную подстановку аргумента > n:='n':l:='l':r:='r': R:=x->sqrt(4*(n-l-1)!/(n+l)!/(a^3*n^4))*simplify(subs(x=2*r/(n*a),Ru(n,l,x))); Построим график квадрата нормы радиальной части волновой функции, при > a:=1: n:=3: l:=1: plot((r*R(d))^2,r=0..30,title=`Квадрат нормы радиальной части при n=3, l=1`); Посмотрим, как изменяется характер волновой функции в зависимости от энергии системы, т.е. в

зависимости от числа > bases:= [seq(i,i=l+1..l+9)]: S:=seq(plot((r*R(d))^2,r=0..30, color=COLOR(HUE,1.1-n/10), title=`Квадрат нормы радиальной части`, legend=`При n=`||n), n=bases): plots[display](S,insequence=false); Можно видеть характерное "размазывание" функции с ростом энергии. Более наглядно данное явление можно увидеть в среде Maple, используя анимацию. Для этого надо изменить опции в последней команде следующим образом insequence=true , т.е. попросить систеиу выдавать графики на дисплей не

одновременно, а последовательно. Построение полной волновой функции, используя Maple. Используя введенные ранее части полной волновой функции | |^2=| |^2 одной из гармоник, например при > n:=3: l:=2: m:=0: plot3d([r*cos(theta),r*sin(theta),Re((r*R(d)*Theta(d))^2)], r=0..30,theta=Pi/2..2*Pi,axes=framed, title=`Квадрат нормы при n=3,l=2,m=0`); С волновыми функциями при > a:=1: l:=1: m:=0: bases:= [seq(i,i=l+1..l+9)]: S:=seq(plot3d([r*cos(theta),r*sin(theta),Re((r*R(d)*Theta(d))^2)], r=0..50,theta=0..2*Pi,axes=framed, title=`Квадрат нормы при n = `||n), n=bases):

display3d(S,insequence=true); Далее, при фиксированной энергии, посмотрим зависимость от квантового числа Ø        a:=1: n:=7: m:=0: bases:= [seq(i,i=0..n-1)]: S:=seq(plot3d([r*cos(theta),r*sin(theta),Re((r*R(d)*Theta(d))^2)], r=0..50,theta=0..2*Pi,axes=framed, title=`Квадрат нормы при l = `||l), l=bases): display3d(S,insequence=true); Используем иные возможности системы Maple, для того, чтобы увидеть другие характеристики данной функции. Например Maple, позволяет вывести контурную проекцию данного распределения. В

отличие от анимации, данный график может быть напечатан. > plot3d([r*cos(theta),r*sin(theta),(r*R(d)*Theta(d))^2], r=0..20,theta=0..2*Pi,axes=boxed,orientation=[0,0], shading=z,style=patchcontour,scaling=constrained, title=`Контурная проекция квадрата нормы`); Определим процедуру, которая позволяет построить все рассматриваемые выше графики для какой-либо из гармоник: > HydrogenPlots:=proc(n,l,m) global a,p1,p2,p3,p4,p5; local txt; a:=1; txt:=`nlm=`||n||l||m: p1:=sphereplot(Theta(d)^2,phi=Pi/2..2*Pi,theta=0..Pi,axes=boxed, scaling=constrained,grid=[15,100],title=`txt`); print(p1);

p2:=polarplot([Theta(d)^2,theta+Pi/2,theta=0..2*Pi],scaling=constrained, title=`txt`); print(p2); p3:=plot((r*R(d))^2,r=0..30,title=`txt`); print(p3); p4:=plot3d([r*cos(theta),r*sin(theta),(r*R(d)*Theta(d))^2], r=0..30,theta=Pi/2..2*Pi,axes=boxed,title=`txt`); print(p4); p5:=plot3d([r*cos(theta),r*sin(theta),(r*R(d)*Theta(d))^2], r=0..30,theta=0..2*Pi,axes=boxed,orientation=[0,0],style=patchcontour,scaling=constrained, shading=z,title=`txt`); end: Например, пусть > n:=4: l:=2: m:=1: HydrogenPlots(n,l,m); Конечно, вид графиков можно изменить, например изменив стиль > replot(p1,style=patch,shading=z,orientation=[56,70]); Можно посмотреть, как меняется распределение