Читайте также: |
|
МОДЕЛЮВАННЯ СТАЦІОНАРНОГО РІВНЯННЯ ШРЕДІНГЕРА
Мета роботи полягає у засвоєні навичок роботи в системі MATLAB та моделювання стаціонарного рівняння Шредінгера.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Розглянемо рішення одновимірного стаціонарного рівняння Шредінгера частинки, яка рухається в одновимірному потенціалі . При цьому вважатимемо, що його форма має потенціал, представлений на рис. 1: в точках , потенціал стає нескінченно великим. Це означає, що в точках , розташовані вертикальні стінки, а між ними знаходиться яма кінцевої глибини. Для зручності подальшого рішення запишемо рівняння Шредінгера у вигляді:
, (1.1)
де
. (1.2)
З математичної точки зору завдання полягає у відшуканні власних функцій оператора , що відповідають граничним умовам
, (1.3)
і відповідних власних значень енергії E.
Так як при і при , , то можна очікувати, що власному рішенню даної задачі відповідає власна функція, що осцилює в класично дозволеної області руху () і експоненціально затухаючим в заборонених областях, де (, ), при , . Оскільки всі стани частки в потенційній ямі опиняються зв'язаними (тобто локалізованими в кінцевої області простору), спектр енергій є дискретним. Частка, що знаходиться в потенційній ямі кінцевих розмірів ( при , при ), має дискретний спектр при та безперервний спектр при .
Традиційно для рішення задачі про знаходження власних значень рівняння Шредінгера використовується метод пристрілки. Ідея методу пристрілки полягає в наступному. Допустимо, як шукане значення шукається один із зв'язаних станів, тому як пробне початкове значення енергії вибираємо негативне власне значення. Проінтегруємо рівняння Шредінгера яким-небудь відомим чисельним методом на інтервалі . В ході інтегрування від в бік більших значень x спочатку обчислюється рішення , експоненціально наростаюче в межах класично забороненої області. Після переходу через точку повороту , що обмежує зліва область руху дозволену класичною механікою, рішення рівняння стає таким, що осцилює. Якщо продовжити інтеграцію далі за праву точку повороту , то рішення стає чисельно нестійким. Це обумовлено тим, що навіть при точному виборі власного значення, для якого виконується умова , рішення в області завжди може містити деяку домішку експоненціально зростаючого рішення, що не має фізичного вмісту. Відмічена обставина є загальним правилом: інтеграція по напряму усередину області, забороненою класичною механікою, буде неточним. Отже, для кожного значення енергії розумніше обчислити ще одне рішення , інтегруючи рівняння від у бік зменшення x. Критерієм збігу даного значення енергії є збіг значень функцій і у деякій проміжній точці . Зазвичай як дану точку вибирають ліву точку повороту . Оскільки функції , є рішеннями однорідного рівняння, їх завжди можна віднормувати так, щоб в точці виконувалась умова . Окрім збігу значень функцій в точці для забезпечення гладкості зшивання рішень зажадаємо збігу значень їх похідних :
. (1.4)
Використовуючи прості ліву і праву кінечно-різницеві апроксимації похідних функцій , в точці , знаходимо еквівалентну умову гладкості зшивання рішень:
, (1.5)
Число є масштабуючим множником, який вибирається з умови . Якщо точки повороту відсутні, тобто , то в якості можна вибрати будь-яку точку відрізку . Для потенціалів, що мають більше двох точок повороту і, відповідно, три або однорідних рішень, загальне рішення отримується зшиванням окремих шматків. У описаному нижче документі, для інтеграції диференціального рівняння другого порядку ми використовуємо метод Нумерова. Для здобуття обчислювальної схеми апроксимуємо другу похідну триточковою різницевою формулою:
. (1.6)
З рівняння (16.9) маємо
(1.7)
Підставив (1.6) в (1.7) і перегрупувавши члени, отримуємо
. (1.8)
Вирахувавши (1.8) відносно або , знайдемо рекурентні формули для інтегрування рівняння вперед або назад по x з локальною похибкою . Відзначимо, що похибка даного методу виявляється на порядок вище, ніж похибка методу Рунге-Кутта четвертого порядку. Крім того даний алгоритм ефективніший, тому що значення функції обчислюються лише у вузлах сітки.
Для знаходження чисельного рішення виявляється зручним провести знерозмірюванне рівняння, використовуючи в якості одиниць виміри відстані а - ширину потенційної ями, в якості одиниц виміру енергії - модуль мінімального значення потенціалу . У вибраних одиницях виміру рівняння має вигляд
, (1.9)
де
, , , . (1.10)
Таким чином, обчислювальний алгоритм для знаходження власних функцій і власних значень рівняння Шредінгера реалізується наступною послідовністю дій:
1. Задати вираження, що описує безрозмірний потенціал .
2. Задати значення .
3. Задати просторову сітку, на якій проводиться інтегрування рівняння.
4. Задати , .
5. Задати початкове значення енергії .
6. Задати кенцеве значення енергії .
7. Задати крок зміни енергії .
8. Проінтегрувати рівняння для значення енергії зліва направо на відрізку .
9. Проінтегрувати рівняння для значення енергії зправа наліво на відрізку .
10. Вирахувати значення змінної для значения энергии .
11. Збільшити поточне значення енергії на : .
12. Проінтегрувати рівняння для значення енергії зліва направо на відрізку .
? 13. Проинтегрировать уравнение для значения энергии справа налево на отрезке .
14. Вирахувати значення змінної для значения энергии .
15. Порівняти знаки ,
16. Якщо і , збільшити поточне значення енергії на і повторити дії, описані в пп. 8 - 17.
17. Якщо , уточнити методом лінійної інтерполяції.
18. Якщо , повторити дії, описані в пп. 8 - 18.
19. Якщо , закінчити розрахування.
Для реалізації описаного обчислювального алгоритму в пакеті MATLAB необхідно створити три m-файли: 1) файл Num.m, який містить опис функції, що повертає для заданої енергії величину f, обчислювану у відповідності з (5), і значення хвилевої функції у вузлах координатної сітки; 2) файл U.m, який містить опис функції, повертаючий значення потенціалу; 3) файл Elevel.m, який містить опис функції, що повертає власні значення і власні функції рівняння Шредінгера.
% лістинг файла Num.m
function [f,psi]=Num(gamma,E,V,Xmin,Xmax,Ngreed)
% функція, яка повертає для заданої енергії величину f, що обчислюється
% у відповідності з (18), і значення хвильової функції у вузлах
% координатної сітки
% gamma - коефіцієнт, що входить в знерозмірене рівняння
% Шредінгера (1.9)
% E - задане значення енергії
% V - вектор, який містить значення потенціалу в вузлах координатної
% сітки
% Xmin - ліва границя координатної сітки
% Xmax - права границя координатної сітки
% Ngreed - число вузлів координатної сітки
dx=(Xmax-Xmin)/Ngreed;
c=dx.^2*gamma^2/12;
Imatch=1;
psi(1)=0;
psi(2)=9.99999*10^-10;
% інтегрування рівняння Шредінгера зправа наліво
Kim1=c*(E-V(1));
Ki=c*(E-V(2));
for i=2:Ngreed-1
Kip1=c*(E-V(i+1));
if and(Ki*Kip1<=0,Ki>0)
Imatch=i;
i=Ngreed;
End;
if i<=Ngreed-1
psi(i+1)=(psi(i)*(2-10*Ki)-psi(i-1)*(1+Kim1))/(1+Kip1);
if abs(psi(i+1))>=10^10
for k=1:i+1
psi(k)=psi(k)*9.99999*10^-6;
End;
End;
Kim1=Ki;
Ki=Kip1;
End;
End;
if Imatch==1
Imatch=Ngreed-10;
End;
% інтегрування рівняння Шредінгера зліва направо
psi_Left=psi(Imatch);
psi(Ngreed)=0;
psi(Ngreed-1)=9.99999*10^-10;
Kip1=c*(E-V(Ngreed));
Ki=c*(E-V(Ngreed-1));
for i=Ngreed-1:-1:Imatch+1
Kim1=c*(E-V(i-1));
psi(i-1)=(psi(i)*(2-10*Ki)-psi(i+1)*(1+Kip1))/(1+Kim1);
if abs(psi(i))>10^10
for k=Ngreed:-1:i
psi(k)=psi(k)*9.99999*10^-6;
End;
End;
Kip1=Ki;
Ki=Kim1;
End;
if psi_Left<0
for i=Imatch:Ngreed
psi(i)=-psi(i);
End;
End;
psi1=abs(psi);
Psimax=max(psi1);
% обчислення різниці між хвилевими функціями, отриманими
% інтегруванням рівняння Шредінгера зліва направо і справа наліво,
% в вузлі з номером Imatch
f=(psi_Left+psi(Imatch)-(psi(Imatch-1)+psi(Imatch+1)))/Psimax;
% лістинг файла U.m
function z = U(x,Xmin,Xmax)
% функція, що повертає значення потенціалу у вузлах координатної
% сітки
% x - вектор, який містить координати вузлів
% Xmin - ліва границя потенціалу
% Xmax - права границя потенціалу
if and(Xmin<=x,x<=Xmax)
z=-1;
Else
z=10^309;
End;
% лістинг файла Elevel.m
function [EL,Psi]=Elevel(gamma,dE,V,Emax,Xmin,Xmax,Ngreed)
% функція, що повертає власні значення і власні функції
% рівняння Шредінгера
% gamma - коефіцієнт, що входить в знерозмірене рівняння
% Шредінгера
% dE - приріст енергії
% V - вектор, що містить значення потенціалу у вузлах координатної
% сітки
% Emax - максимальне значення енергії
% Xmin - ліва границя координатної сітки
% Xmax - права границя координатної сітки
% Ngreed - число вузлів координатної сітки
Tolf=10^-6;
Emin=-1;
E=Emin+dE;
m=1;
Start=0;
while E<Emax
if Start==0
E1=E;
[f,psi]=Num(gamma,E,V,Xmin,Xmax,Ngreed);
E=E+dE;
F1=f;
Start=1;
End;
E2=E;
[f,psi]=Num(gamma,E,V,Xmin,Xmax,Ngreed);
F2=f;
if F1*F2>0
E1=E;
F1=F2;
E=E+dE;
End;
if F1*F2<0
% уточнення власного значення енергії і обчислення значень
% власної функції у вузлах координатної сітки
a=(E2-E1)/(F2-F1);
E=E1-a*F1;
[f,psi]=Num(gamma,E,V,Xmin,Xmax,Ngreed);
F1=F2;
E1=E2;
EL(m,1)=m;
EL(m,2)=E;
if m==1
Psi0=psi';
Else
Psi0=cat(2,Psi0,psi');
End;
m=m+1;
E=E+dE;
End;
End;
dx=(Xmax-Xmin)/(Ngreed-1);
N1=size(Psi0,2);
% нормування власних хвильових функцій
for i=1:N1
S=Psi0(:,i);
S1=S.^2;
Norm=0;
for j=1:Ngreed-1
Norm=Norm+0.5*(S1(j)+S1(j+1))*dx;
End;
S=S./(Norm^0.5);
if i==1
Psi=S;
Else
Psi=cat(2,Psi,S);
End;
End;
Далі необхідно виконати наступну послідовність команд:
>> Xmin=-0.5; % ліва границя координатної сітки
>> Xmax=0.5; % права границя координатної сітки
>> gamma=20;
>> Ngreed=500; % число вузлів координатної сітки
% обчислення координат вузлів сітки
>> i=1:Ngreed;
>> x(i)=Xmin+(Xmax-Xmin)/(Ngreed-1)*(i-1);
>> dE=10^-3; % приріст енергії
>> Emax=-0; % максимальне значення енергії
>> V(i)=U(x(i),Xmin,Xmax); % обчислення значення потенціалу у вузлах
% координатної сітки
% обчислення власних значень і власних функцій рівняння
% Шредінгера
>> [EL,Psi]=Elevel(gamma,dE,V,Emax,Xmin,Xmax,Ngreed);
>> EL
EL =
1.0000 -0.9751
2.0000 -0.9005
3.0000 -0.7761
4.0000 -0.6020
5.0000 -0.3782
6.0000 -0.1046
% візуалізація власних функцій
>> plot(x(i),Psi(:,1),'k',x(i),Psi(:,2),'--k',x(i),Psi(:,3),'-.k');
>> plot(x(i),Psi(:,4),'k',x(i),Psi(:,5),'--k',x(i),Psi(:,6),'-.k');
Результат виконання описаної послідовності команд представлений
на рис. (1.1), (1.2), (1.3).
Рис. 1.2 Хвильові функції, що відповідають першому, другому і третьому власним значенням енергії
Рис. 1.3 Хвильові функції, відповідні четвертому, п'ятому і шостому власним значенням енергії
Дата добавления: 2015-07-11; просмотров: 50 | Нарушение авторских прав