|
13.3.1. Параболические и гиперболические уравнения
В новой версии Mathcad 11 разработчики впервые применили встроенную функцию pdesolve для решения уравнений в частных производных, отлично осознавая значимость этих задач для современного исследователя и инженера. Эта функция применяется в рамках вычислительного блока, начинающегося ключевым словом Given и пригодна для решения различных гиперболических и параболических уравнений.
Встроенная функция для решения одномерного уравнения (или системы уравнений)
в частных производных (того, которое определит пользователь в рамках вычислительного
блока Given), зависящего от времени t и пространственной координаты х, имеет
целый набор различных аргументов и работает следующим образом.
- Pdesolve(u, x, xrange, t, trange, [xpts] , [tpts])) — возвращает
скалярную (для единственного исходного уравнения) или векторную (для системы
уравнений) функцию двух аргументов (x,t), являющуюся решением дифференциального
уравнения (или системы уравнений) в частных производных. Результирующая функция
получается интерполяцией сеточной функции, вычисляемой согласно разностной
схеме.
- u — явно заданный вектор имен функций (без указания имен
аргументов), подлежащих вычислению. Эти функции, а также граничные условия
(в форме Дирихле или Неймана) должны быть определены пользователем перед
применением функции pdesolve в вычислительном блоке после ключевого слова
Given. Если решается не система уравнений в частных производных, а единственное
уравнение, то, соответственно, вектор и должен содержать только одно имя
функции и вырождается в скаляр.
- х —пространственная координата (имя аргумента неизвестной
функции).
- xrange — пространственный интервал, т. е. вектор значений
аргумента х для граничных условий. Этот вектор должен состоять из двух действительных
чисел (представляющих левую и правую границу расчетного интервала).
- t — время (имя аргумента неизвестной функции).
- trange — расчетная временная область: вектор значений аргумента
t, который должен состоять из двух действительных чисел (представляющих
левую и правую границу расчетного интервала по времени).
- xpts — количество пространственных точек дискретизации (может
не указываться явно, в таком случае будет подобрано программой автоматически).
- tpts — количество временных слоев, т. е. интервалов дискретизации
по времени (также может не указываться пользователем явно).
Помимо этой функции для решения параболических и гиперболических уравнений,
начиная с новой версии Mathcad 11, можно использовать еще одну встроенную функцию
numol (). Функция numol () имеет еще большее число аргументов и позволяет управлять
дополнительными параметрами метода сеток. Однако пользоваться ею намного сложнее,
чем функцией Pdesolve (), и поэтому в нашей книге мы не будем на ней особо останавливаться.
В качестве примера использования этой новой функции Mathcad 11 (листинг 13.4) используем то же самое одномерное уравнение теплопроводности (5) с граничными и начальными условиями (6) и (7).
Листинг 13.4. Решение одномерного уравнения теплопроводности

Для корректного использования функции Pdesolve предварительно, после ключевого
слова Given, следует записать само уравнение и граничные условия при помощи
логических операторов (для их ввода в Mathcad существует специальная панель).
Обратите внимание, что уравнение должно содержать имя неизвестной функции u(x,t)
вместе с именами аргументов (а не так, как она записывается в пределах встроенной
функции Pdesolve). Для идентификации частных производных в пределах вычислительного
блока следует использовать нижние индексы, например, uxx(,t) для обозначения
второй производной функции и по пространственной координате х..
Как видно из рис. 13.14, на котором изображены результаты расчетов по листингу 13.4, встроенная функция с успехом справляется с уравнением диффузии, отыскивая уже хорошо знакомое нам решение. Заметим, что использование встроенной функции Pdesolve связано с довольно громоздкими вычислениями, которые могут отнимать существенное время.
Как Вы можете заметить, выбирать величину шага по пространственной и временной
переменным может как сам алгоритм, так и пользователь (неявным образом, через
число узлов сетки). Читателю предлагается повторить вычисления листинга 13.4
для различных комбинаций параметров (главным образом, числа узлов сетки), чтобы
проверить, в каких случаях алгоритм встроенной функции справляется с задачей,
выдавая верное решение, а в каких дает сбой.
Приведем еще один пример применения функции Pdesolve для решения уравнений в частных производных. Рассмотрим одномерное волновое уравнение, которое описывает, например, свободные колебания струны музыкального инструмента:
Рис. 13.14. Решение уравнения диффузии тепла при помощи встроенной
функции Pdesolve (листинг 13.4)
Здесь неизвестная функция u(x,t) описывает динамику смещения профиля струны относительно невозмущенного (прямолинейного) положения, а параметр с характеризует материал, из которого изготовлена струна.
Как Вы видите, уравнение (11) содержит производные второго порядка как по пространственной координате, так и по времени. Для того чтобы можно было использовать встроенную функцию pdesoive, необходимо переписать волновое уравнение в виде системы двух уравнений в частных производных, введя вторую неизвестную функцию v=ut. Программа для решения волнового уравнения приведена в листинге 13.5, а результат — на рис. 13.15.
Листинг 13.5. Решение волнового уравнения.

Рис. 13.15. Решение волнового уравнения (листинг 13.5)
|