sp
|
180°
|
линейная
|
|
H–Be–H, HC≡CH
|
sp2
|
120°
|
плоская
тригональная
|
|
H2C=CH2,
C6H6, BCl3
|
sp3
|
109°28'
|
тетраэдрическая
|
|
[NH4]+,
CH4, CCl4, H3C–CH3
|
sp2d
|
90°
|
квадратная
|
|
[Ni(CN)4]2–,
[PtCl4]2–
|
sp3d или dsp3
|
90°, 120°
|
триагонально-бипирамидальная
|
|
PCl5
|
d2sp3 или sp3d2
|
90°
|
октаэдрическая
|
|
[Fe(CN)6]3–,
[CoF6]3–, SF
|
|
Описание движения в кулоновском поле (сферические
координаты), используя Maple.
Рассмотрим атом водорода в квантовой
механике. Напомним, что при движении в центрально-симметричном поле момент
количества движения сохраняется. В силу этого, в волновой функции можно
выделить радиальную и угловую часть. Наиболее прямой способ вычисления
собственных функций момента движения есть непосредственное решение об отыскании
собственных функций квадрата момента, записанного в сферических координатах.
При этом, собственные функции момента оказываются ничем иным, как определенным
образом нормированными сферическими функциями.
В данном примере мы графически представим
собственные функции стационарных состояний и обсудим некоторые их свойства.
Итак, нам известно, что полная волновая
функция = разлагается на три части и,
поэтому, рассмотрим эти части отдельно.
Угловая часть волновой
функции
Собственная функция третьей проекции
оператора момента равна . В обозначениях Maple
это выглядит следующим образом
> restart:
>
Phi:=(2*Pi)^(-1/2)*exp(I*m*phi);
Заметим сразу, что данные функции являются
ортонормированными
>
int(evalc( Phi* conjugate(Phi) ), phi=0..2*Pi);
и, поэтому, мы просто не будем учитывать
этот множитель далее при вычислении полной волновой функции.
Продолжая изучение угловой части полной
собственной функции, введем полиномы Лежандра , используя обобщенную формулу
Родрига
Ø
P:=(l,x)->if
l<>0 then 1/(2^l*l!)*diff((x^2-1)^l,x$l) else 1 fi;
С точки зрения программиста мы написали
процедуру с именем P(l,x) , которая зависит от двух аргументов l
и x .
С другой стороны, мы могли бы использовать
встроенную процедуру из пакета orthopoly для определения
этих полиномов.
Для примера, посмотрим, как выглядит один
из полиномов Лежандра
> collect(P(5,x),x);
Присоединенные полиномы Лежандра первого
рода определяются аналогичным образом
> P1:=(l,m,x)
->
if m=0 then P(l,x) else
(1-x^2)^(m/2)*diff(P(l,x),x$m) fi:
Введем стандартную замену аргумента и
зададим необходимую нормировку для сферических гармоник
> Theta:=d->sqrt((2*l+1)*(l-m)!/(l+m)!)*subs(d=cos(theta),P1(l,m,d));
Теперь определим сферические гармоники
> Y:=d->Theta(d)*Phi:
которые являются комплексными функциями.
Для примера построим графики вещественной и мнимой частей сферических гармоник
Warning, the name changecoords has been redefined
> l:=3:m:=1:
sphereplot(Re(Y(d)),phi=0..2*Pi,theta=0..Pi,scaling=constrained,
grid=[15,100],axes=framed,title=`Вещественная часть при l=3, m=1`);
> l:=4:
m=0:
sphereplot(Im(Y(d)),phi=0..2*Pi,theta=0..Pi,scaling=constrained,
grid=[15,100],axes=framed,title=`Мнимая часть при l=4, m=0`);
Вычислим квадрат нормы присоединенной
функции Лежандра, т.е. | |^2 , для одной
из гармоник, например при . Напомним, что это характеризует
вероятность нахождения электрона в атоме водорода.
> l:=3:
m:=1:
sphereplot((Theta(d)^2),phi=Pi/2..2*Pi,theta=0..Pi,
scaling=constrained,grid=[15,100],axes=framed,
title=`Квадрат нормы угловой части при l=3, m=1`);
и ее проекцию на плоскость
> polarplot(Theta(d)^2,theta=0..2*Pi,scaling=constrained,
title=`Проекция на плоскость xy`);
Радиальная часть волновой
функции
Перейдем к построению радиальной части
волновой функции .
Определим полиномы Лаггера по формуле
Родрига
> L:=(j,k,x)->if
j<>0
then
1/j!*exp(x)/x^k*diff(x^(j+k)*exp(-x),x$j) else 1 fi;
Заметим, что мы используем математическое
определение (см. справочник Бейтмена и Эрдейи), которое нормировками отличается
от определения, данного в книге Ландау и Лифшица. Именно это определение
совпадает со встроенной процедурой
> simplify(L(3,2,x));
> simplify(L[orthopoly](3,2,x));
Радиальная часть волновой функции
(присоединенная функция Лаггера) равна
>
Ru:=(n,l,x)->x^l*exp(-x/2)*L(n-l-1,2*l+1,x):
Посмотрим, как выглядит эта функция при
частных значениях параметров
> 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`);
С волновыми функциями при приходиться иметь
дело, в частности, в задачах рассеяния, поскольку частица, движущаяся вдоль оси
,
тождественно имеет . Рассмотрим, при фиксированных числах , как меняется эта функция с
ростом энергии, т.е. с ростом главного квантового числа . При этом мы будем использовать
анимационные возможности среды Maple.
> 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]);
Можно посмотреть, как меняется
распределение вероятности в зависимости от номера гармоники и без анимации,
например при одной и той же энергии
> for
n from 4 to 4 do
for l from 0 to n-1 do
for m from 0 to l do
txt:=`nlm=`||n||l||m:
p||n||l||m:=plot3d([r*cos(theta),r*sin(theta),(r*R(d)*Theta(d))^2],
r=0..50,theta=0..2*Pi,axes=boxed,orientation=[0,0],
style=contour,scaling=constrained,
shading=z,
title=`txt`,numpoints=1000);
print(p||n||l||m);
od; od; od;
Список литературы
Минкин В.И., Симкин Б.Я., Миняев P.M.
Теория строения молекул. Электронные оболочки. М.,
"Мир", 1979
А.В. Цыганов Курс лекций "Квантовая механика с
Maple"
Санкт-Петербург 2000
http://www.andrey-ts.narod.ru/Maple/maple.html