МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
В.В. Чернушкин, В.Д. Овсянников
МОДЕЛИРОВАНИЕ ЗАДАЧ
КВАНТОВОЙ МЕХАНИКИ
В СРЕДЕ MAXIMA
Учебное пособие
Воронеж
Издательский дом ВГУ
2016
Стр.1
Содержание
Предисловие _____________________________________________________ 4
Введение в среду Maxima __________________________________________ 4
Встроенные константы. Переменные и функции _______________________ 7
Аналитические преобразования алгебраических выражений ____________ 12
Суммы, произведения, пределы ____________________________________ 16
Решение уравнений и систем уравнений _____________________________ 18
Операции с векторами и матрицами ________________________________ 20
Дифференцирование и интегрирование выражений ___________________ 25
Решение дифференциальных уравнений _____________________________ 26
Построение графиков функций ____________________________________ 28
Специальные функции ___________________________________________ 34
Расчет коэффициентов квантовой теории угловых моментов ___________ 40
Основы программирования в среде MAXIMA ________________________ 44
Нахождение решения стационарного уравнения Шредингера
для различных квантовых систем __________________________________ 51
Стоячие волны ________________________________________________ 52
Полупроницаемая перегородка ___________________________________ 54
Прямоугольная потенциальная яма _______________________________ 59
Виртуальные уровни ___________________________________________ 61
Дираковская потенциальная гребенка (периодический потенциал) _____ 65
Гармонический осциллятор______________________________________ 68
Частица внутри потенциальной сферы ____________________________ 70
Сферически симметричная прямоугольная яма конечной глубины _____ 72
Задачи для самостоятельного решения ____________________________ 75
Библиографический список _______________________________________ 76
3
Стр.3
историю команд (ввод и вывод), а файлы типа wxm сохраняют только
команды ввода. После повторного считывания файлов нужно запустить на
исполнение при помощи команд основного меню, например, Ячейка ->
Evaluate All Cells (Ctrl+Shift+R).
Все команды вводятся в поле ввода, разделителем команд является
символ ; (точка с запятой). Для создания окна ввода нужно нажать клавиши
Shift+Enter. После ввода команды необходимо нажать клавиши Ctrl+Enter
для её обработки и вывода результата. В ранних версиях Maxima и
некоторых её оболочках (например, xMaxima) наличие точки с запятой
после каждой команды строго обязательно. Завершение ввода символом $
(вместо точки с запятой) позволяет вычислить результат введённой
команды, но не выводить его на экран.
Правила ввода чисел в Maxima точно такие, как и для многих других
подобных программ. Целая и дробная часть десятичных дробей
разделяются символом точка. Перед отрицательными числами ставится
знак минус. Числитель и знаменатель обыкновенных дробей разделяется
при помощи символа / (прямой слэш). Обратите внимание, что если в
результате выполнения операции получается некоторое символьное
выражение, а необходимо получить конкретное числовое значение в виде
десятичной дроби, то решить эту задачу позволит применение флага numer.
В частности он позволяет перейти от обыкновенных дробей к десятичным.
Преобразование к форме с плавающей точкой осуществляет также функция
float.
6
Стр.6
В Maxima определены арифметические операции + (сложение), –
(вычитание или унарный минус как знак отрицательного числа), *
(умножение), / (деление). Существует несколько идентичных способов
задания возведения в степень (^, **, ^^). Операция нахождение факториала
обозначается восклицательным знаком, например, 5!.
Для увеличения приоритета операции, как и в математике,
используются круглые скобки: ().
Встроенные константы. Переменные и функции
В Maxima для удобства вычислений имеется ряд встроенных
констант. Самые распространённые из них - %pi (число пи), %e (число e –
основание натуральных логарифмов), %i (мнимая единица). По умолчанию
все вычисления проводятся на множестве комплексных чисел. Символ %
используется в начале служебных имен Maxima для исключения
пересечений с пользовательскими идентификаторами. Одиночный символ
% используется для обращения к результату предыдущего вычисления, а
одиночный символ подчеркивания – к предыдущему вводу.
7
Стр.7
Кроме того, все ячейки нумеруются символами %i номер (ячейки
ввода) и %o номер (ячейки вывода), что позволяет обращаться из любой
ячейки программы к любому ранее вычисленному значению.
Помимо этого, существует и традиционный способ запоминания
вычисленных значений – посредством переменных. Имена переменных и
функций (идентификаторы) могут включать в себя буквы латинского
алфавита, символ подчеркивания и цифры. Идентификаторы не могут
начинаться с цифры. Необходимо также подчеркнуть, что прописные и
строчные буквы в идентификаторах различаются, так что имена temp,
TEMP и TemP задают разные объекты. Присваивание значения переменной
осуществляется с использованием символа : (двоеточие), например, x:5.
В правой части оператора присваивания могут быть также и
уравнения, то есть выражения, содержащие знак равенства. Допустимы
арифметические операции над уравнениями:
8
Стр.8
Вывод в последнем примере требует пояснения. Дело в том, что если
в уравнении правая часть тождественна нулю, то правая часть (вместе со
знаком равенства) опускается.
Зарезервированные слова, использование которых в качестве имён
переменных вызывает синтаксическую ошибку: integrate, next, from, diff, in,
at, limit, sum, for, and, elseif, then, else, do, or, if, unless, product, while, thru,
step.
Если необходимо удалить значение переменной (очистить её), то
применяется метод kill. Например, kill(x) удаляет переменную x; kill(all)
удаляет все введенные ранее переменные. Заметим также, что
kill(all)полностью очищает память, в том числе и ранее вычисленные
значения. Поэтому после использования kill(all) нумерация ячеек
начинается сначала. Рекомендуем использовать kill(all) для разделения
задач в одном файле, чтобы избежать ошибочного повторного
использования результатов из других задач.
В Maxima имеется достаточно большой набор встроенных
математических функций.
Для записи функции необходимо указать ее название, а затем, в
круглых скобках записать через запятую значения аргументов.
Основные математические функции представлены в таблице 1:
9
Стр.9
sin — синус;
cos — косинус;
tan — тангенс;
sec — секанс;
csc — косеканс;
cot — котангенс.
Таблица 1. Основные математические функции системы Maple.
asin — арксинус;
acos — арккосинус;
atan — арктангенс;
asec — арксеканс;
acsc — арккосеканс;
acot — арккотангенс.
sinh — гиперболический синус; asinh — гиперболический арксинус;
Cosh — гиперболический
косинус;
Acosh—гиперболический арккосинус;
tanh — гиперболический тангенс; atanh — гиперболический арктангенс;
sech — гиперболический секанс; asech — гиперболический арксеканс:
Csch — гиперболический
косеканс;
Coth – гиперболический
котангенс;
log — натуральный логарифм;
sqrt — квадратный корень
mod – остаток от деления
max – максимальное из чисел
lcm
кратное;
cabs
числа;
realpart — действительная часть
комплексного числа;
imagpart — мнимая часть комплексного
числа;
Операция divide(a,b) реализует деление с остатком. Результатом является
двухэлементный список, первый элемент которого принимает значение неполного
частного, а второй – остатка. Как и в функциях нахождения наибольшего общего
делителя gcd(a,b) и наименьшего общего кратного lcm(a,b), в качестве аргументов
допускается задавать выражения в виде полиномов.
abs — модуль числа;
sign – знак аргумента
min – минимальное из чисел
– наименьшее общее gcd – наибольший общий делитель;
модуль комплексного
carg аргумент комплексного числа;
Acsch— гиперболический арккосеканс
atanh — гиперболический арккотангенс;
ехр — экспонента;
10
Стр.10