Встроенные функции для решения уравнений в частных производных. Параболические и гиперболические уравнения.
Как видно из предыдущего раздела, с уравнениями в частных производных вполне можно справиться, и не прибегая к специфическим средствам Mathcad. Между тем, в пакете Mathcad 11 имеется несколько встроенных функций, при помощи которых можно автоматизировать процесс решения дифференциальных уравнений в частных производных. Рассмотрим в данном разделе основные аспекты их применения, отмечая не только инструкции по их применению, описанные разработчиками Mathcad, но также и некоторые "скрытые" возможности этих функций.
В новой версии 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) для обозначения второй производной функции и по пространственной координате х..