Численное решение уравнения шредингера python

решение 1D уравнения Шредингера с методом Нумерова (python)

В настоящее время я пытаюсь решить 1D Schrödinger eq. (независимое от времени) с методом Нумерова. Вывод метода ясен для меня, но у меня есть некоторые проблемы с реализацией. Я пытался искать решения в google, и есть некоторые (например, этот или этот), но я не совсем понимаю, что они делают в своих кодах.

С помощью некоторой математики вы можете получить уравнение в этой форме: , где . Для начала я хотел бы посмотреть на потенциал V(x)=1 if -a 2017-11-24T01:09:00+03:00 4 года, 3 месяца назад

К сожалению, я не совсем помню квантовую физику, поэтому я не понимаю некоторых деталей. Тем не менее я вижу некоторые ошибки в вашем коде:

Почему внутри numerov_step вы квадрат k1 , k2 и k3 ?

В вашем основном цикле

вы перепутались с индексами. Похоже, эта строка должна быть

Это та часть, которую я действительно не понимаю. Заглядывая в анимацию в вашей первой ссылке, похоже, что это уравнение имеет хорошие решения только для определенных комбинаций V(x) и E а в других случаях оно быстро развивается. Похоже, что и ваши V(x) и пропорция E к hbar и V(x) сильно отличаются от ссылок на статьи, и это может быть еще одна причина, по которой решение идет вразрез.

Визуализация квантовой физики с помощью Python

Дата публикации Apr 12, 2018

В этом блоге я решил рассмотреть некоторую квантовую химию на уровне колледжа для получения электронных орбиталей. Дополнительная забавная часть в том, что мы собираемся визуализировать волновые функции и вероятности электронов . используя Python!

Уравнение Шредингера

В 1926 году Эрвин Шредингер выдвинул знаменитое волновое уравнение, которое связывает энергию системы с ее волновыми свойствами. Поскольку его применение к атому водорода довольно сложно, мы сначала используем волновое уравнение для решения частицы в коробке. Волновое уравнение Шредингера, выраженное в 1D

Визуализация частиц в коробке

Теперь, чтобы упростить наше уравнение, мы предполагаемЧастица в коробке,

Проблема частиц в коробке не соответствует какой-либо реальной химической системе. Его полезность в нашем контексте заключается в том, что он иллюстрирует некоторые квантово-механические особенности. Потенциальная энергия на барьере установлена ​​на бесконечность (т.е. частица не может вырваться), а потенциальная энергия внутри барьера установлена ​​на 0. В этих условиях классическая механика предсказывает, что частица имеет равную вероятность нахождения в любой части коробка и кинетическая энергия частицы могут иметь любое значение. Принимая это предположение во внимание, мы получаем различные уравнения для энергии частицы на барьере и внутри коробки.

На барьере V бесконечно и, следовательно, частица не существует:

Внутри прямоугольника V равно нулю и, следовательно, волна может иметь любое конечное значение:

Внутри коробки мы можем изменить уравнение следующим образом:

Как мы видим выше, волновая функция должна быть такой, чтобы при двукратном дифференцировании она давала ту же функцию, умноженную на E. Функция синуса обладает таким поведением.

Теперь нам нужно оценить значения констант, α и A. Для α мы используем волновые уравнения на барьерах, где волновые функции равны 0.

Теперь добавьте значение для α:

Мы можем определить значение A, потребовав нормализовать волновую функцию. Это потому, что частица должна существовать где-то в коробке. Следовательно, сумма вероятности нахождения частицы в коробке равна 1:

Включая значения, окончательные волновые и энергетические уравнения:

Визуализация энергии и волновых функций с помощью Python:

Обратите внимание, что есть регионы, где оба Ψ и Ψ*Zero равны нулю в тех же регионах. Это известно как узел. Энергетические уровни орбиталей не являются непрерывными. Они существуют на дискретных уровнях, представленных расположением узлов. Кроме того, по мере увеличения значения n плотность волны внутри прямоугольника также увеличивается.

Визуализация орбиталей

Теперь, чтобы получить волновое уравнение относительно квантовых чисел, оно должно быть в следующем трехмерном формате:

Теперь разделение переменных зависит от типа атома и является слишком сложным, чтобы охватить это сообщение в блоге. Вместо этого мы просто напишем решение непосредственно для построения графика. В дальнейшем мы будем использовать функции R и Y для атома водорода, не выводя их.

Во-первых, давайте посмотрим на орбиту 1 с:

Волновая функция 1s показывает, что вероятность появления электрона уменьшается экспоненциально по мере удаления от ядра. Это также показывает сферическую форму.

Немного трудно увидеть на графике электронной плотности выше. Тем не менее, вы можете видеть, что он имеет сферическую форму. По мере удаления от центра плотность уменьшается. Как правило, точка отсечения — это когда вероятность появления электрона составляет 99%.

Графики той же плотности могут быть получены и для других spdf-орбиталей. Надеюсь, этот блог мотивировал вас повеселиться с квантовой физикой и программированием на Python! Чтобы узнать больше о визуализации на основе Python, посетите мой блог:Плоттинг на основе Python с Matplotlib

Численное решение обыкновенных дифференциальных уравнений (ОДУ) в Python

Рассмотрены приемы решения обыкновенных дифференциальных уравнений (ОДУ) с помощью модуля scipy.integrate языка Python

Краткое описание модуля scipy.integrate

Модуль scipy.integrate имеет две функции ode() и odeint(), которые предназначены для решения систем обыкновенных дифференциальных уравнений (ОДУ) первого порядка с начальными условиями в одной точке (т.е. задача Коши).

Функция ode() более универсальная, а функция odeint() (ODE integrator) имеет более простой интерфейс и хорошо решает большинство задач.

Функция odeint() имеет три обязательных аргумента и много опций. Она имеет следующий формат

Решение одного ОДУ

Допустим надо решить диф. уравнение 1-го порядка

Получилось что-то такое:

Решение системы ОДУ

Пусть теперь мы хотим решить (автономную) систему диф. уравнений 1-го порядка

Выходной массив w состоит из двух столбцов — y1(t) и y2(t).

Также без труда можно построить фазовые траектории:


источники:

http://www.machinelearningmastery.ru/quantum-physics-visualization-with-python-35df8b365ff/

http://spyphy.zl3p.com/python/34_scipy_ode