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

8e446d3cc49f484ea201b73467e689d0.png


Перевод поста Devendra Kapadia «New in the Wolfram Language: Symbolic PDEs».
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации
. Уравнения в частных производных (УрЧП) играют очень важную роль в математике и ее приложениях. Их можно использовать для моделирования реальных явлений, таких как колебания натянутой струны, распространения потока тепла в стержне, в финансовых областях. Цель этой статьи — приоткрыть завесу в мир УрЧП (тем кто еще с ним не знаком) и ознакомить читателя с тем, как можно эффективно решать УрЧП в Wolfram Language, используя новый функционал для решения краевых задач в DSolve, а так же новую функцию DEigensystem, которая появилась в версии 10.3.

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

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

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

444b5eaa8e81f14f1a93dff4221aba99.png

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

95b7f1bf665755a4ed01f5141f0c80e3.png

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

0423f26bd80ec19ee9191d1b4e357b81.png

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

a3d8c70fa5db04b3ddcc4b67c90a1d3a.png

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

2c46f830aada3b137c34f8fd7b0614ef.png

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

f150b0db702b78afa0435b0e4ef3d702.png

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

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

1420d66d4528a1d9ed12343036dc54d2.png

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

d3eda2fb074bafe6041b268226ba75a6.png

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

b3cc84aa041f570b218345cffacf2be1.png

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

d7ba4bf10287c37ea2c691836b79f320.png

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

a13936b323f29be1b68048f7bb0a6ddd.png

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

25e2a76cec925d30899968a6de06a656.png

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

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

cf61776107017878686358e5a8b542c0.png

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

0f58090caaf4e7f1594085534ad95b8b.png

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

9b18ae7ee8345107a3d37800090c659b.png

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

3015a38ec472e6f07c8ba699bffc88bd.png

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

cfe72a94a5de2facb63f2499d82d27a7.png

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

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

e0aebb78840bf2ef3c5e7bfc8f58589b.png

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

79602cb8b9b52897f2bb9adf7307cc4e.png

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

821e8c285bf560f62f247c24f99eb7fc.png

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

80a0391dd27bf5852fdb6c13ad072d6f.png

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

4e2df1a5aa3bb5d72030d6946a955a37.png

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

dabb1d27db39977cce0887be6983d3e9.png

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

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

e51ceecea9b01b906cf0ce766271dcb6.png

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

b49ccdf9f2d334022f2f63b3e3106282.png

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

e722db23d2a5bc6294ceedd6804987dd.png

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

58f8894fdeac2387a4336b718e5bbc4d.png

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

c8bcae804ed7ce75dce93b12e58fb7bd.png

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

b269886cd1ba5dc945c67c636f0076d5.png

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

b7830d172cd77cd53af5fee6abfb6726.png

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

e94919e0001bffc40616df76482b1628.png

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

d6408019b6c0ed442601850e303d9ddf.png

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

183f9f70d6cca7edfb63c99aef6c6089.png

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

15c2c60a3038c7435ecc810aabb8168b.png

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

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

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

© Habrahabr.ru