Существуют ли простые способы численного решения нестационарного уравнения Шредингера?


34

Я хотел бы провести несколько простых симуляций рассеяния волновых пакетов от простых потенциалов в одном измерении.

Существуют ли простые способы численного решения одномерной TDSE для отдельной частицы? Я знаю, что в целом попытка использовать наивные подходы для интеграции уравнений в частных производных может быстро привести к катастрофе. Поэтому я ищу алгоритмы, которые

  • численно устойчивы,
  • просты в реализации или имеют легко доступные реализации библиотек кода,
  • бежать достаточно быстро, и, надеюсь,
  • относительно просты для понимания.

Я также хотел бы держаться подальше от спектральных методов, и особенно от методов, которые немного больше, чем обычное решение не зависящего от времени уравнения Шредингера. Тем не менее, я был бы заинтересован в псевдоспектральных методах, которые используют B-сплайны или еще много чего. Если метод может использовать потенциал, зависящий от времени, то это определенно бонус.

Конечно, любой такой метод всегда будет иметь ряд недостатков, поэтому я хотел бы услышать о них. Когда это не работает? Каковы общие подводные камни? Какими путями это можно протолкнуть, а какими - нет?



@EmilioPisanty Я добавил обсуждение ошибок в мою рецензию SSFM: я заметил (после написания моего ответа, извините), вы не увлекаетесь спектральными методами, но на всякий случай ...

Очищенная нить; убрав обсуждение актуальности из физики.
Джефф Оксберри

1
Я рекомендую начать здесь, хотя есть много более недавних работ: сравнение различных схем распространения для нестационарного уравнения Шредингера .
Дэвид Кетчесон

3
@GeoffOxberry, не могли бы вы сделать скриншот этих комментариев?
Эмилио Пизанти

Ответы:


24

Уравнение Шредингера фактически является реакция-диффузия уравнения (все константы равны 1). Когда дело доходит до любого уравнения в частных производных, есть два способа его решить:

(1)iψt=2ψ+Vψ
  1. Неявный метод (adv: большие временные шаги и безусловно стабильный, disadv: требуется матричный решатель, который может давать неверные данные)
  2. Явный метод (adv: легко реализовать, disadv: для стабильности требуются небольшие временные шаги)

Для параболических уравнений (линейных по и 2-го порядка по ) неявный метод часто является лучшим выбором. Причина в том, что условие устойчивости для явного метода требует , которое будет очень маленьким. Вы можете избежать этой проблемы, используя неявный метод, который не имеет такого ограничения по временному шагу (хотя на практике вы обычно не делаете его безумно большим, потому что можете потерять часть физики). Далее я опишу метод Кранка-Николсона , общую неявную схему второго порядка (пространство и время).х д т д х 2txdtdx2

Закуска

Для того чтобы вычислить PDE в вычислительном отношении, вам нужно его дискретизировать (сделать переменные вписанными в сетку). Самым простым является прямоугольная декартова сетка. Здесь представляет индекс времени (и всегда является суперскриптом), а индекс позиции (всегда индекс). Используя разложение Тейлора для зависимой от позиции переменной, уравнение (1) становится Где мы предположили, чтоj i ψ n + 1 j - ψ jnjV=V(x) 1

iψjn+1ψjdt=12(ψj+1n+12ψjn+1+ψj1n+1dx2+ψj+1n2ψjn+ψj1ndx2)+12(Vjψjn+1+Vjψjn)
V=V(x), Далее происходит группировка одинаковых пространственных и временных индексов (вы можете дважды проверить математику): Это уравнение имеет вид (A0A-00A+A0A-00A+A0A-)(ψ n + 1 0 ψ n 1
(2)12dtdx2ψj+1n+1+(idtdx212Vj)ψjn+1+12dtdx2ψj1n+1=iψjn12dtdx2(ψj+1n2ψjn+ψj1n)+12Vjψjn
iψ n + 1 j
(A0A00A+A0A00A+A0A)(ψ0n+1ψ1n+1ψJ1n+1)=(ψ0nψ1nψJ1n)
Это называется трехдиагональной матрицей и имеет известное решение (плюс рабочие примеры, включая один написан мной!). Явный метод вычеркивает всю левую часть (или я должен сказать верхнюю строку?) Уравнения (2), за исключением .iψjn+1

вопросы

Самая большая проблема, которую я обнаружил с неявными методами, заключается в том, что они сильно зависят от граничных условий. Если у вас плохо определены / реализованы граничные условия, вы можете получить ложные колебания в ваших ячейках, которые могут привести к плохим результатам (см. Мой пост SciComp на аналогичную тему). Это приводит к тому, что на самом деле в космосе должна быть точность 1-го порядка, а не 2-го, которую должна дать ваша схема .

Неявные методы также предположительно трудно распараллелить, но я использовал их только для одномерных уравнений теплопроводности и не нуждался в параллельной поддержке, поэтому я не могу ни подтвердить, ни опровергнуть утверждение.

Я также не уверен, как сложная природа волновой функции повлияет на вычисления. Работа, которую я проделал, использует уравнения гидродинамики Эйлера и, таким образом, полностью реальна с неотрицательными величинами.

Зависящий от времени потенциал

Если у вас есть аналитический потенциал, зависящий от времени (например, ), то вы просто используете текущее время для на RHS (2) и будущее время, , на LHS. Я не верю, что это создаст какие-либо проблемы, но я не проверял это, поэтому я не могу проверить или опровергнуть этот аспект тоже.t V j t + d tVcos(ωt)tVjt+dt

альтернативы

Есть несколько интересных альтернатив методу Кранка-Николсона. Первый - это так называемый метод «супер-шагания во времени». В этом явном методе вы берете временной шаг ( ) и используете корни полиномов Чебышева, чтобы получить оптимизированный набор временных шагов, которые быстро суммируются с быстрее, чем выполнение шагов раз (эффективно вы получаете так что каждый шаг продвигает вас d t d t / N N Δ T = N 2 d t N N d tdtdx2dtdt/NNΔT=N2dtNNdtво время). (Я использую этот метод в своем исследовании, потому что у вас есть четко определенный «поток» от одной ячейки к другой, который используется для объединения данных с одного процессора на другой, используя схему Кранка-Николсона, которую я не смог сделать это).

РЕДАКТИРОВАТЬ Следует отметить, что этот метод является точным во времени на первый порядок, но если вы будете использовать метод Рунге-Кутта 2 вместе, он даст вам точную схему 2-го порядка во времени.

Другой называется явным переменным направлением . Этот метод требует, чтобы у вас были известные и четко определенные граничные условия. Затем он приступает к решению уравнения, используя границу непосредственно в вычислении (нет необходимости применять его после каждого шага). Что происходит в этом методе, так это то, что вы решаете PDE дважды, один раз при восходящем и один раз при нисходящем. Восходящая развертка использует то время как нисходящая развертка использует для уравнения диффузии, в то время как другие члены не изменятся. Шаг по времени2ψ

2ψx2ψj1n+1ψjn+1ψjn+ψj+1ndx2
н+1
2ψx2ψj+1n+1ψjn+1ψjn+ψj1ndx2
n+1 затем решается путем усреднения двух направленных разверток.

1
Отличный ответ, единственная претензия в том, что вы победили меня!
Кайл

@ChrisWhite: Я думал о том, как это могло быть сделано ранее этим утром и единственное , что я придумал это делать это один раз для и один раз . Я посмотрю на этот документ (и, что более важно, на бесплатный код, который они выдают) и посмотрю, как они предлагают это сделать. IRI
Кайл Канос

@ChrisWhite Может быть, хитрость предназначена для вычисления собственных функций, которые, как я видел, рассчитываются с помощью мнимого временного шага: вы устанавливаете направление шага так, чтобы собственная функция с наименьшей энергией имела наименьшее отрицательное значение и, таким образом, самый медленный спад. При итерации по случайному входу очень быстро остается только форма самой низкой энергии собственной функции. Затем вы вычитаете это из случайного ввода и снова выполняете процесс: теперь следующая собственная функция с наименьшей энергией является доминирующей. И так далее. Звучит немного хитроумно (особенно когда он становится выше eigenfuncs), но это работает! - чhνhν

1
@DavidKetcheson: Уравнение реакции-диффузии имеет вид . В случае уравнения Шредингера ; могу ли я тогда спросить, почему это не уравнение типа RD? И, что любопытно, уравнение Шредингера действительно появляется в вики-статье о реакции-диффузии, на которую я ссылался. Эта двусмысленность, которую я сделал, также появляется во многих опубликованных журналах и текстах (продолжайте и ищите это). Возможно, для меня было бы лучше посоветовать использовать стандартные библиотеки (как это принято в обычном MO), такие как PETSc, deal.ii или pyCLAW? Р ( у ) = V Utu=Dx2u+R(u)R(u)=Vu
Кайл Канос

1
@KyleKanos: Ваш пост хорош. Фактически, в статье, опубликованной Дэвидом Кетчоном, Крэнк-Николсон выступает за первую ссылку. Сравнение с реакцией-диффузией прекрасно; Как вы заметили, сравнение с реакцией-диффузией встречается во многих опубликованных источниках. Я думаю, что DavidKetcheson искал что-то вроде «дисперсионного волнового уравнения», упомянутого ранее.
Джефф Оксберри

22

В начале 90-х мы искали метод, позволяющий решить TDSE достаточно быстро, чтобы выполнять анимацию в реальном времени на ПК, и наткнулся на удивительно простой, стабильный, явный метод, описанный П.Б. Висшером в книге « Компьютеры в физике» : « Быстрый явный алгоритм для нестационарного уравнения Шредингера ". Висшер отмечает, что если вы разделите волновую функцию на действительную и мнимую части, , SE станет системой:ψ=R+iI

dRdt=HIdIdt=HRH=12m2+V

Если вы затем вычислите и в шахматном порядке ( в и в , вы получите дискретизацию:IRIR0,Δt,2Δt,...I0.5Δt,1.5Δt,...)

R(t+12Δt)=R(t12Δt)+ΔtHI(t)

I(t+12Δt)=I(t12Δt)ΔtHR(t)

с (стандартный трехточечный лапласиан).

2ψ(r,t)=ψ(r+Δr,t)2ψ(r,t)+ψ(rΔr,t)Δr2

Это явно, очень быстро для вычисления и с точностью до второго порядка в .Δt

Определение плотности вероятности как

P(x,t)=R2(x,t)+I(x,t+12Δt)I(x,t12Δt)
с целыми временными шагами и,

P(x,t)=R(x,t+12Δt)R(x,t12Δt)+I2(x,t)
с шагом в целое время

делает алгоритм унитарным, тем самым сохраняя вероятность.

При достаточной оптимизации кода мы смогли получить очень хорошие анимации, рассчитанные в режиме реального времени на 80486 компьютерах. Студенты могут «нарисовать» любой потенциал, выбрать общую энергию и наблюдать за эволюцией гауссовского пакета во времени.


Это очень изящный прием для решения реальных и мнимых компонентов! Также обратите внимание, что вы можете получить большие центрированные уравнения с помощью $$ ... $$. Я позволил себе сделать это для тебя, надеюсь, ты не возражаешь!
Кайл Канос

Мы были рады найти алгоритм - его было легко программировать и он работал быстро. Самым сложным было получить правильные начальные условия: R при t = 0, а я при 0,5dt ... Я не возражаю против редактирования, я был счастлив получить уравнения вообще.

1
@ user40172 Мы делали то же самое для волноводов примерно в одно и то же время, и мы остановились на BPM, описанном в моем ответе. Причина была в том, что в то время мы могли запускать БПФ отдельно от основного ЦП, используя плату DSP. Мы думали, что мы такие умные, но я должен сказать, что в 2014 году придумать, по сути, аппаратное решение проблемы с программным обеспечением! Последняя версия Visual Studio C ++ автоматически векторизует код на процессорах, и она прекрасно справляется с FFT.

1
@ user40172 Как ты наконец получил начальные условия на ? Просто распространяете решение того времени, используя другой метод? 0.5dt

1
@Rusian Так как мы занимались рассеянием, мы использовали стандартный гауссовский пакет свободных частиц, но постарались запустить его «достаточно далеко» от любой области, где потенциал был ненулевым. См., Например: демонстрации.wolfram.com

10

Ответ Кайла Каноса выглядит очень полным, но я решил добавить свой собственный опыт. Двухшаговый метод Фурье (SSFM) чрезвычайно прост в использовании; Вы можете создать его в нескольких строках Mathematica, и он чрезвычайно устойчив в численном отношении. Он включает в себя передачу только унитарных операторов в ваш набор данных, поэтому он автоматически сохраняет вероятность / мощность (последнее, если вы решаете с помощью уравнений Максвелла, что и лежит в моем опыте). Для одномерного уравнения Шредингера ( Е. Только вариации и ) оно очень быстро, даже как код Mathematica. И если вам нужно ускорить его, вам действительно нужен только хороший FFT-код на вашем целевом языке (мой опыт работы с C ++).xt

То, что вы будете делать, - это замаскированная версия метода распространения луча для оптического распространения через волновод с различным сечением (аналогично переменным во времени потенциалам), поэтому было бы полезно взглянуть и на это.

То, как я смотрю на SSFM / BPM, выглядит следующим образом. Его основой является формула произведения Троттера теории Ли:

(1)limm(exp(Dtm)exp(Vtm))m=exp((D+V)t)

который иногда называют операторным уравнением расщепления в этом контексте. Ваш набор данных представляет собой дискретную сетку или комплексных значений, представляющих в данный момент времени . Итак, вы представляете себе это (вам не нужно этого делать ; я все еще говорю концептуально) колоссальная сетка, записанная как вектор элементного столбца (для сетки у нас ), и тогда ваше уравнение Шредингера имеет вид:xyxyzψ(x,y,z)tNΨ1024×1024N=10242=1048576

(2)dtΨ=KΨ=(D+V(t))Ψ

где - это косоэрмитова матрица , элемент , и будет отображаться с увеличением времени элементом одного группа параметров . (Я засосал фактор в на RHS, чтобы я мог более легко говорить в терминах теории Ли). Учитывая размер , естественная среда обитания операторов является полностью колоссальной группой Ли, поэтому PHEW! да я все еще говорю в чисто теоретических терминах! Теперь, что делаетK=D+VN×Nu(N)Ψexp(Kt)iK=D+VNU(N)D+Vвыглядит как? Пока еще воображая, его можно представить как разностную версию , где - некоторый удобный «средний» потенциал для рассматриваемой задачи.i2/(2m)i1V0+i1(V0V(x,y,z,t0))V0

Мы позволяем:

(3)D=i2m2i1V0V=i1(V0V(x,y,z,t))

Почему я разделил их так, станет ясно ниже.

Дело в том, что заключается в том, что он может быть аналитически разработан для плоской волны: это простой оператор умножения в координатах импульса. Итак, чтобы определить , вот первые три шага цикла SSFM / BPM:DΨexp(ΔtD)Ψ

  1. Передайте БПФ в набор данных чтобы преобразовать его в набор весов суперпозиции плоских волн: теперь координаты сетки были изменены с на ;ΨΨ~x,y,zkx,ky,kz
  2. Передайте , просто умножив каждую точку на сетке на ;Ψ~exp(ΔtD)Ψ~exp(iΔt(V0kx2+ky2+kz2)/)
  3. Импортируйте обратное БПФ, чтобы отобразить нашу сетку обратно вexp(ΔtD)Ψ

    . Теперь мы вернулись в позицию позиции. Конечно, это лучшая область для передачи оператора : здесь - простой оператор умножения. Итак, вот ваш последний шаг вашего алгоритмического цикла:VV

  4. Передайте оператор , просто умножив каждую точку на сетке на фазовый факторΨexp(ΔtV)Ψexp(iΔt(V0V(x,y,z,t))/)

.... и затем вы начинаете свой следующий шаг и цикл снова и снова. Ясно, что очень легко поместить изменяющиеся во времени потенциалы в код.ΔtV(x,y,z,t)

Итак, вы видите, что вы просто выбираете достаточно маленьким, чтобы сработала формула Троттера (1): вы просто аппроксимируете действие оператора и вы перемещаетесь назад и вперед с помощью БПФ между координатами положения и импульса, то есть доменами, где и - простые операторы умножения.Δtexp(D+VΔt)exp(DΔt)exp(VΔt)VD

Обратите внимание, что вы когда-либо передаете, даже в дискретном мире, только унитарные операторы: БПФ и чисто фазовые факторы.

Вы должны быть осторожны с одной точкой: когда ваш становится маленьким, вы также должны убедиться, что пространственный интервал сетки также уменьшается. В противном случае предположим, что пространственный интервал сетки равен . Тогда физический смысл одного дискретного шага состоит в том, что дифракционные эффекты распространяются со скоростью ; при моделировании уравнений Максвелла и волноводов необходимо убедиться, что эта скорость намного меньше, чем . Я полагаю, что ограничения применяются к уравнению Шредингера: у меня нет прямого опыта, но это звучит забавно, и, возможно, вы могли бы опубликовать свои результаты когда-нибудь!ΔtΔxΔx/Δtc

Второй момент «опыта» с такими вещами - я почти готов поспорить, что именно так вы и будете следовать своим идеям. У нас часто бывают идеи, что мы хотим делать простые и быстрые и грязные симуляции, но это никогда не получается таким образом! Я бы начал с SSFM, как я описал выше, так как его очень легко запустить, и вы быстро увидите, являются ли его результаты физическими. Позже вы можете использовать свой, скажем, код Mathematica SSFM, чтобы проверить результаты более сложного кода, который, возможно, в конечном итоге выстроится, скажем, в коде Крэнка Николсона в соответствии с ответом Кайла Каноса .


Границы ошибок

Реализация формулы Дынкина теоремы Бейкера-Кэмпбелла-Хаусдорфа:

exp(DΔt)exp(V)Δt)=exp((D+V)Δt+12[D,V]Δt2+)
сходящиеся для некоторого показывают, что метод точен на второй порядок и может показать, что:Δt>0

exp(DΔt)exp(V)Δt)exp(12[D,V]Δt2)=exp((D+V)Δt+O(Δt3))

Поэтому теоретически можно использовать термин чтобы оценить ошибку и установить вашу соответственно. Это не так просто, как кажется, и на практике оценки приводят к грубым оценкам ошибки. Проблема в том, что:exp(V)Δt)exp(12[D,V]Δt2)Δt

Δt22[D,V]=iΔt22m(x2V(x,t)+2xV(x,t)x)

и нет легко преобразованных в координаты, где является простым оператором умножения. Таким образом, вы должны быть довольны и используйте это для оценки вашей ошибки, разработав для вашего в настоящее время развивается решение и используется для установки[D,V]exp(12[D,V]Δt2)eiφΔt2(id(12[D,V]iφ(t))Δt2)(id(12[D,V]iφ(t))Δt2)ψψ(x,t)Δtна лету после каждого цикла алгоритма. Конечно, вы можете сделать эти идеи основой для адаптивного контроллера размера шага для вашей симуляции. Здесь - глобальная фаза, извлеченная из набора данных для минимизации нормы ; Вы, конечно, часто можете отказаться от такой глобальной фазы: в зависимости от того, что вы делаете с результатами моделирования, нам часто не мешает постоянная глобальная фаза .φ(12[D,V]iφ(t))Δt2exp(φdt)

Соответствующая статья об ошибках в SSFM / BPM:

Ларс Тилен. «Метод распространения луча: анализ его применимости», Оптическая и квантовая электроника 15 (1983), стр . 433-439 .

Ларс Тилен размышляет над ошибками в нелиевских теоретических терминах (группы Ли - моя склонность, поэтому мне нравится искать их толкования), но его идеи по сути такие же, как и выше.


1
Род, вы, вероятно, знаете, что вы можете добиться большего успеха, если будете использовать так называемое приближение оператора разбиения, где . На самом деле вы можете выполнить дальнейшее разбиение, чтобы перенести ошибку в более высокие степени. См. Например, Бандраук и Шен, Хим. Phys. Lett. 176, 428 (1991). Очевидно, ваш кинетический член не может зависеть от координат, то есть он не очень хорошо работает в криволинейных координатах. Δ тexp[Δt(D+V)]exp[ΔtV/2]exp[ΔtD]exp[ΔtV/2]Δt

1
В противном случае, эта вещь с оператором разбиения, связанная с оценкой БПФ оператора кинетической энергии, является одной из стандартных процедур для решения TDSE на основе сетки в молекулярной физике.

@perplexity Большое спасибо. Хорошо знать, какие поля используются. Дата 1991 года, на которую вы ссылаетесь, интересна: я всегда был уверен, что идея раздельного шага возникла из симуляции волновода в конце 1970-х, так что, возможно, я ошибаюсь.

1
Вы не ошибаетесь вообще. Это действительно было вдохновением. Первая работа, переводящая эти идеи в QM, о которой я знаю, это Фейт, Флек и Штайгер, Дж. Компут. Phys. 47, 412 (1982), где, если я правильно помню, они по существу используют те же приемы с тем преимуществом, что оператор здесь унитарный по построению (в отличие от классических волн). Я полагаю, что подход, основанный на FFT-решетке, для такого типа моделирования был впервые предложен Ронни Кослоффом. У него есть очень хороший отзыв на эту тему на своей веб-странице.

Еще одна хорошая ссылка в моей области - книга Дэвида Таннора «Квантовая механика: перспектива, зависящая от времени». Приветствия.

5

Я могу рекомендовать использовать метод конечных разностей во временной области (FDTD). Некоторое время назад я даже написал учебник, который должен ответить на большинство ваших вопросов:

JR Nagel, "Обзор и применение конечно-разностного алгоритма во временной области, примененного к уравнению Шредингера", ACES Journal, Vol. 24, № 1, февраль 2009

У меня есть некоторые коды Matlab, которые хорошо работают для 1D систем. Если у вас есть опыт работы с FDTD с электромагнетизмом, он отлично работает и для квантовой механики. Я могу опубликовать свои коды, если вам интересно.

По сути, он просто воздействует на волновые функции напрямую, разбивая производные на конечные разности. Это похоже на схему Кранка-Николсона, но не совсем так. Если вы знакомы с FDTD из теории электромагнитных волн, то FDTD будет очень интуитивно понятен при решении уравнения Шредингера.


4

Самый простой метод конечных разностей является быстрым и легким для понимания, но не унитарным по времени, поэтому вероятность не сохраняется. Crank-Nicholson-Crout усредняет прямые и обратные методы конечных разностей, чтобы создать гибридный неявный / явный метод, который все еще довольно прост для понимания и реализации и является унитарным во времени. Этот сайт хорошо объясняет метод, предоставляет псевдокод и дает соответствующие свойства:

http://www.physics.utah.edu/~detar/phycs6730/handouts/crank_nicholson/crank_nicholson/ Примечание. В LHS уравнения одного из этих звеньев отсутствует знак, который распространяется по всей странице.

Откуда берется неунитарность?

В ореховой скорлупе решение TDSE сводится к выяснению, как бороться с

|ψ(x,t)=eiHt|ψ(x,0)

который содержит дифференциальный оператор в экспоненте.

Применение прямой конечной разности превращает дифференциальный оператор в трехдиагональную матрицу (преобразование вещественного числа в сетку), а экспонента - в первые два члена его ряда Тейлора.

eiHt1iHt

Эта дискретизация и линеаризация - вот что порождает неунитарность. (Вы можете показать, что трехдиагональная матрица не унитарна прямым вычислением.) Объединение прямой конечной разности с обратной конечной разностью дает приближение

eiHt112iHt1+12iHt

что, к счастью, является унитарным (опять же, вы можете показать это прямым вычислением).


Спасибо за быстрый ответ. Не могли бы вы предоставить более подробную информацию об обоих этих методах? Как они работают и почему? Откуда берется неунитарность?
Эмилио Пизанти

Я был бы рад предоставить более подробную информацию, но чтобы не пропустить мою целевую аудиторию, было бы полезно узнать, какое образование и опыт вы получили в каждом из следующих полей: исчисление, дифференциальные уравнения, линейная алгебра, квантовая механика и Численные методы (в частности, конечно-разностные методы).

Пожалуйста, примите столько, сколько вам нужно из стандартной физики и математики (хотя ссылки на более сложные части, вероятно, помогут). Мои численные методы немного ржавые, хотя.
Эмилио Пизанти

Есть ли различия между этим и ответом Кайла Каноса ? Я имею в виду, что неясно, как реализовать ваше последнее уравнение - поскольку вы написали, что оно включает в себя обращение полного оператора - вы просто говорите, что метод CN просто, посредством решения его трехдиагонального уравнения, работает ? Или есть тонкость, которую я пропустил? На самом деле ваше последнее уравнение является хорошим рендерингом, поскольку оно делает унитарность явной для CN, и этот факт неясен во многих описаниях CN. (1+i2Ht)1(1+i2Ht)ψ

Нет, это тот же алгоритм, который дал Кайл Канос. Я просто написал это таким образом, чтобы дать другой взгляд на это. Я надеялся, что легче осмыслить - тогда как его легче реализовать. Да, вы в конечном итоге просто решаете трехдиагональное уравнение. В AJP была старая (1967 г.) статья, которую я не смог найти ранее, в которой она очень хорошо описана : ergodic.ugr.es/cphys/lecciones/SCHROEDINGER/ajp.pdf. Они использовали CN для создания 8-миллиметровых пленочных петель из гауссовых волновых пакетов. рассеивая различные потенциалы. Вы все еще можете найти эти киноленты во многих университетских демонстрационных библиотеках по физике.

3

Несколько ответов и комментариев здесь путают TDSE с волновым уравнением; возможно, проблема семантики, в некоторой степени. TDSE является квантованной версией классического нерелятивистского гамильтониана С правилами (как обсуждено в главе 1 d'Espagnat, Концептуальные основы квантовой механики, https://philpapers.org/rec/ESPCFO ), поэтому он читает поэтому это явно диффузионное уравнение. Если использовать релятивистскую энергию, которая содержит член E , то волновое уравнение, такое как

H=p22m+V(x)=E.
pix,  Eit,  xx,
[22mxx+V(x)]ψ=itψ,
2
xxψ=ttψ+
(для простоты для V = 0), такие как уравнения Паули или Клейна-Гордона. Но это, конечно, совсем другое дело.

Теперь, возвращаясь к TDSE, очевидный метод - это Crank-Nicolson, как уже упоминалось, потому что это небольшое расширение, которое сохраняет унитарность эволюции (FTCS, например, нет). Для случая 1-пространства-D его можно рассматривать как матричную итерацию, читая с единичная матрица и (Подробности, например, в Численных методах для физики, http://algarcia.org/nummeth/nummeth.html , AL Garcia). Как наиболее ясно видно в периодических граничных условиях, локализованная в пространстве

ψn+1=(I+iτ2H~)1(Iiτ2H~)ψn
Iψψψs=eikx/
Hjk=(H~)jk=22m[δj+1,k+δj1,k2δjkh2]+Vjδjk.
ψ распространяется во времени: это ожидаемо, потому что начальная локализованная является не собственным состоянием стационарного уравнения Шредингера, а его суперпозицией. Собственное состояние (классическая массивная свободная частица) с фиксированным импульсом (для нерелятивистского кинетического оператора) просто , т.е. полностью делокализовано по принципу Гейзенберга с постоянной плотностью вероятности 1 / L везде (обратите внимание, что я избегаю проблем нормализации с состояниями континуума, поскольку моя частица живет на конечной, периодически повторяющейся линии). Используя CN, норма ψ| ψ | 2дхср=Есясх=ятψs=eikx/L
|ψ|2dx
сохраняется благодаря унитарности (это не так в других схемах, таких как, например, FTCS). Кстати, обратите внимание, что, начиная с энергетической эспрессии, такой как с фиксированным , вы получите т.е. уравнение адвекции, которое не имеет дисперсии (если правильно интегрировано с Лакс-Вендрофф методы), и ваш волновой пакет не будет распространяться во времени в этом случае. Квантовым аналогом является уравнение Дирака без частиц.
cp=E
c
icx=it
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.