Новое в Wolfram Language | Аналитическое решение уравнений в частных производных

в 11:05, , рубрики: wolfram cloud, wolfram language, wolfram mathematica, Алгоритмы, Блог компании Wolfram Research, волновое уравнение, дифференциальные уравнения, математика, Программирование, собственные функции, собственные числа, уравнение блэка-шоулза, уравнение бюргерса, уравнение лапласа, уравнение навье-стокса, уравнение теплопроводности, уравнение Шрёдингера, уравнения в частных производных, уравнения математической физики, урчп, функциональное программирование
Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 1

Перевод поста Devendra Kapadia "New in the Wolfram Language: Symbolic PDEs".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации
.


Уравнения в частных производных (УрЧП) играют очень важную роль в математике и ее приложениях. Их можно использовать для моделирования реальных явлений, таких как колебания натянутой струны, распространения потока тепла в стержне, в финансовых областях. Цель этой статьи — приоткрыть завесу в мир УрЧП (тем кто еще с ним не знаком) и ознакомить читателя с тем, как можно эффективно решать УрЧП в Wolfram Language, используя новый функционал для решения краевых задач в DSolve, а так же новую функцию DEigensystem, которая появилась в версии 10.3.

История УрЧП восходит к работам известных математиков восемнадцатого века — Эйлера, Даламбера, Лапласа, однако развитие этой области в последние три столетия так и не остановилось. И потому в статье я приведу как классические, так и современные примеры УрЧП, что позволит рассмотреть эту область знаний под разными углами.

Давайте начнем с рассмотрения колебаний натянутой струны с длиной π, закрепленной на обоих концах. Колебания струны можно смоделировать с помощью одномерного волнового уравнения, приведённого ниже. Здесь u(x,t) — вертикальное смещение точки струны с координатой х в момент времени t:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 2

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

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 3

Зададим теперь начальные условия для движения струны, указав смещения и скорости различных точек струны в момент времени t=0:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 4

Теперь мы можем использовать DSolve для решения волнового уравнения с начальными и краевыми условиями:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 5

Как указано выше, решение есть бесконечная сумма тригонометрических функций. Сумма возвращается в невычисленной форме (Inactive), поскольку каждый отдельный член разложения имеет физическую интерпретацию, и зачастую даже небольшое количество членов может являться хорошим приближением. К примеру, мы можем взять первые четыре члена для получения приближенного решения asol(x,t)

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 6

Каждый член в сумме представляет собой стоячую волну, которые могут быть представлены следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 7

И все эти стоячие волны складываются воедино, образуя гладкую кривую, как показано на анимации ниже:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 8

Волновое уравнение относится к классу линейных гиперболических уравнений в частных производных, описывающих распространение сигналов с конечными скоростями. Это УрЧП представляет собой удобный способ для моделирования колебаний в струне или в каком-то другом деформирумом теле, однако ещё более важную роль оно играет в современной физике и инженерных приложениях, т.к. оно описывает распространение света и электромагнитных волн.

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

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 9

Поскольку стержень изолирован с обоих концов, то через них проходит нулевой поток тепла, что можно выразить как граничные условия вида х = 0 и х = 1:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 10

Теперь нужно указать начальное температурное распределение в стержне. В этом примере мы будем использовать приведённую ниже линейную функцию. В левом конце (х = 0) начальная температура — 20 градусов, в правом (х = 1) — 100:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 11

И теперь мы можем решить уравнение теплопроводности с заданными условиями:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 12

Как и в приведённом выше примере с волновым уравнением, мы можем извлечь несколько членов суммы и получить приближенное решение:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 13

Первый член приближенного решения — 60 — среднее от температур на границах стержня, и она является стационарной температурой для этого стержня. Как показано на графике функции температуры от длины, представленном ниже, температура стержня быстро достигает стационарного значения в 60 градусов:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 14

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

Рассмотрим теперь уравнение Лапласа, которое используется для моделирования стационарного состояния систем, т. е. поведения после некоторых зависящих от времени уже законченных переходных процессов. В двумерном случае это уравнение можно представить следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 15

Ограничим координаты х и у прямоугольной областью Ω, как показано ниже:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 16

Классическая задача Дирихле — найти функцию u(x,y), удовлетворяющую уравнению Лапласа внутри области Ω с заданным условием Дирихле (DirichletCondition), которое определяет значения на границах области Ω, как показано ниже:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 17

Задачу Дирихле можно решить с помощью функции DSolve, весьма изящно задав при этом область:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 18

Как и в примерах ранее, мы можем извлечь некоторое количество членов (скажем, 100) из суммы и визуализировать решение:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 19

Следует заметить, что решение u(x,y) задачи Дирихле представляется гладким в Ω, несмотря на то, что граничные условия имеют резкие черты. Помимо этого, u(x,y) достигает экстремальных значений на границах, в то время как в центре прямоугольника находится седловая точка. Эти черты характерны для линейных эллиптических уравнений — класса уравнений в частных производных, к которым и принадлежит уравнение Лапласа.

Волновое уравнение, уравнение теплопроводности, уравнение Лапласа — самые известные примеры классических УрЧП. Теперь мы рассмотрим три примера типичных современных УрЧП, первым среди которых будет уравнение Бюргерса для вязкой жидкости, которое может быть представлено следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 20

Это нелинейное УрЧП было введено Иоханнесом Бюргерсом в сороковых годах в качестве простой модели для турбулентных потоков (параметр ϵ в уравнении представляет собой вязкость жидкости). Однако, десять лет спустя, Э. Хопф и Д. Коул показали, что уравнение Бюргерса сводится к уравнению теплопроводности, а это значит, что данное уравнение не может проявлять хаотического поведения. Преобразование Коула-Хопфа позволяет решать уравнения Бюргерса в замкнутой форме для начального условия, заданного, к примеру, так:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 21

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

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 22

Представленный ниже график демонстрирует изменение во времени гипотетического одномерного поля скоростей потока. Решение представляется гладким для положительного ϵ, при том что начальное условие есть кусочно заданная функция:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 23

Как можно заметить на нижепреведённых графиках, решение стремится к разрывному при сремлении вязкости ϵ к нулю. Подобные решения с резким переходом (shock solutions) — известная особенность уравнений Бюргерса для невязкой (ϵ = 0) среды.

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 24

В качестве второго примера современных УрЧП рассмотрим уравнение Блэка-Шоулза, используемое в финансовых расчётах. Это уравнение впервые представили Фишер Блэк и Майрон Шоулз в 1973 году в качестве модели для определения теоретической цены на европейские опционы, и формулируется оно следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 25

где:
c — цена опциона как функция от стоимости акций s и времени t,
r — процентная ставка без риска,
σ — волатильность акций.

В их эпохальной статье (которая была процитирована более 28000 раз), Блэк и Шоулз отметили, что их уравнения с помощью преобразования переменных могут быть сведены к уравнению теплопроводности. Это резкое упрощение приводит к знаменитой формуле Блэка-Шоулза для европейских опционов с конечными условиями, основанными на цене исполнения (strike price) k актива в момент времени t=Т:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 26

Вооружившись этой формулой, мы можем вычислить значения финансовых опционов для типичных значений параметров:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 27

Ответ согласуется со значением, полученным с помощью встроенной функции FinancialDerivative:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 28

В качестве третьего примера современных УрЧП рассмотрим уравнение Шредингера для электрона в одномерной потенциальной яме с глубиной d и соответствующим начальным условием. Уравнение и условия можно сформулировать следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 29

Этот пример имеет элементарное решение, которое принимает мнимые значения из-за наличия I в уравнении Шредингера:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 30

Функция плотности вероятности для электрона ρ = Ψ Ψ, с использованием подходящих значений параметров в задаче, может быть вычислена следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 31

Мы можем создать анимацию изменения плотности вероятности во времени, которая показывает, что «центр» электрона в яме движется из стороны в сторону:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 32

Собственные значения и собственные функции играют важную роль как в решении уравнения Шрёдингера, так и в других УрЧП. В частности, они предоставляют «строительные блоки» для решений волновых уравнений и уравнений теплопроводности в виде бесконечных сумм, которые приводились ранее в статье. Поэтому, в качестве нашего последнего примера рассмотрим задачу о нахождении девяти наименьших собственных значений и собственных функций для оператора Лапласа с однородным (нулевым) условием Дирихле для трехмерной сферической области. Найдем девять наименьших значений λ и соответствующих им функций ϕ, удовлетворяющих Λϕ = λ ϕ, которые определяются следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 33

Новая функция DEigensystem в версии 10.3 позволяет вычислить требуемые собственные значения и функции следующим образом:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 34

Собственные значения в этой задаче выражаются через BesselJZero. Вот пример:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 35

Собственные значения можно визуализировать с помощью функции DensityPlot3D, которая возвращает красивые графики, как показано ниже:

Новое в Wolfram Language | Аналитическое решение уравнений в частных производных - 36

УрЧП являются важным инструментом во многих отраслях науки и техники, в статистике и финансах. На более фундаментальном уровне они предоставляют точные математические формулировки некоторых самых глубоких и тонких вопросов о нашей Вселенной, скажем, о возможности существования голых сингулярностей. По моему опыту, изучение УрЧП награждает редким сочетанием из практических идей и интеллектуального удовлетворения.

Рекомендую изучить документацию по DSolve, NDSolve, DEigensystem, NDEigensystem и методу конечных элементов, чтобы узнать больше о различных подходах к решению УрЧП в Wolfram Language.

УрЧП в символьной форме поддерживаются в Wolfram Mathematica и Wolfram Language с версии 10.3, а в ближайшее время будут представлены и во всех остальных программных продуктах Wolfram.

Автор: Wolfram Research

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js