Глава 5. Решение  дифференциальных уравнений

      5.8 Функции решения параболических и гиперболических уравнений


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

Уравнения в частных производных можно разделить на три типа:

1) параболические, содержащие первую производную по одной переменной и вторую – по другой, причем все производные входят в уравнение с одинаковым знаком;

2) гиперболические, содержащие первую производную по одной переменной и вторую – по другой, входящие в уравнение с разными знаками;

3) эллиптические, содержащие вторые производные, причем одного знака.

 

Функции решения параболических и гиперболических уравнений

MathCAD 11 включает в себя две функции для решения параболических и гиперболических уравнений, pdesolve и numol.

Функция pdesolve используется в составе вычислительного блока Given pdesolve для решения параболических и гиперболических уравнений (или систем уравнений) в частных производных, имеющих в качестве аргументов, как правило, время t и пространственную координату x.

Обращение к этой функции:

pdesolve(u, x, xrange, t, trange, [xpts], [tpts]),

возвращает скалярную (для одного уравнения) или векторную (для системы уравнений) функцию, являющуюся решением уравнения (или системы уравнений). Здесь  u –явно заданный вектор имен функций (без указания имен аргументов), подлежащих вычислению. Эти функции, а также граничные условия должны быть определены внутри вычислительного блока Given pdesolve; х – пространственная координата; xrange – вектор значений аргумента х для граничных условий. Он должен состоять из двух чисел, представляющих две границы расчетного интервала; t – время (имя второго аргумента неизвестной функции); trange – вектор значений аргумента t для граничных условий, состоящих из двух чисел, представляющих две границы расчетного интервала; xpts – количество пространственных точек дискретизации (может не указываться); tpts – количество временных слоев (может не указываться).

Пример использования функции pdesolve приведен на рис. 5.19 запись вычислительного блока с функцией pdesolve аналогична записи блока с функцией Odesolve. Результаты расчета показаны на рис. 5.20.

                                                                     Решение одномерного волнового уравнения

                                                                                                        

                                                                                    Здесь w-перемещение, v-скорость перемещения

                                                                                    где          тогда     

                                                                                    Представим первое уравнение как систему двух

                                                                                    уравнений первого порядка

                                                                                    Given                   

                                                                                   граничные условия     

                                                                                                                                    

                                                                                         

                                                                         Рис. 5.19 Пример использования функции pdesolve          

 

                                                                                  Единичное решение волнового уравнения

                                                                                 

                                                      Сетка решений волнового уравнения на временном и пространственном интервалах

                                                                                                    

                                                                                     

                                                           Рис. 5.20 Результаты решения волнового уравнения

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

Недостатком функции pdesolve (как и функции Odesolve) является невозможность ее использования в составе выражения – программы для многократного решения дифференциального уравнения. При необходимости многократного решения обыкновенных дифференциальных уравнений в состав программного модуля можно включать функции Rkadapt или Bulstoer.

При необходимости многократного решения дифференциальных уравнений в частных производных в состав программного модуля можно включать функцию numol, которая, как и pdesolve, появилась в MathCAD 11.

Функция numol предназначена для решения тех же уравнений, что и функция pdesolve.

Обращение к этой функции:

numol(xrange, xpts, trange, tpts, Npde, Nae, rhs, init, bc)

возвращает матрицу решения дифференциального уравненияв частных производных в каждой точке по пространственной (по строкам) и временной (по столбцам) координате. Если решается не одно уравнение, а система уравнений, то результатом решения является составная матрица, образованная путем слияния (слева направо) со значениями каждой искомой сеточной функции. Здесь xrange – вектор значений аргумента х для граничных условий. Он должен состоять из двух чисел, представляющих две границы расчетного интервала; trange – вектор значений аргумента t для граничных условий, состоящих из двух чисел, педставляющих две границы расчетного интервала; xpts – количество пространственных точек дискретизации (может не указываться);  tpts – количество временных слоев (может не указываться); Npde – количество дифференциальных уравнений в частных производных в системе; Nae – количество дополнительных алгебраических уравнений, входящих в систему; rhs – вектор правых частей уравнений; init – векторная функция, определяющая начальные условия для каждой неизвестной функции; bc – функциональная матрица граничных условий.

Вектор граничных условий может иметь значения трех типов:

rhs содержит вторые пространственные производные: граничные условия (или Дирихле «D», или Неймана «N») требуются по одному с каждой стороны интервала интегрирования;

rhs содржит первые пространственные производные: граничные условия Дирихле на левой или правой границе интервала, на другой стороне NA;

– нет пространственных производных – граничные условия не требуются.

Функциональная матрица bc содержит три столбца, имеющих ледующий вид:

– (init_left(t) init_right(t) "D") – для граничных условий Дирихле;

– (init_left(t) init_right(t) "N") – для граничных условий Неймана.

Пользоваться функцией numol намного сложнее, чем функцией pdesolve.

Граничное условие называется условием Дирихле, если задано значение функции, или Неймана, если задана первая производная функции.

                                                                                     

                                                                                                 

НазадВперед

Оглавление   Глава 5