Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие (MathCad).doc
Скачиваний:
97
Добавлен:
27.11.2019
Размер:
3.98 Mб
Скачать

2.5.3. Решение оду с помощью функции odesolve()

Начиная с Mathcad 2000 была введена новая функция для решения одиночных дифференциальных уравнений

odesolve(x,b[,число_шагов]),

которая возвращает решение дифференциального уравнения, описанного в блоке Given, при заданных начальных условиях и в конце интервала интегрирования b.

Эта функция имеет ряд особенностей. Если указан параметр число_шагов, то решение выполняется с фиксированным шагом, иначе — адаптивным методом. Хотя аналитическое выражение для этой функции не выводится, с ней можно выполнять математические преобразования, например, дифференцировать.

П ример 2.27. Решить дифференциальное уравнения второго порядка с помощью функции odesolve. Пример задания уравнения и его решения показан на рис. 2.4.

Рис. 2.4. Решение дифференциального уравнения второго порядка с помощью функции odesolve

В новейшей СКМ Mathcad 11 введена новая функция pdesolve в составе блока Given для решения дифференциальных уравнений в частных производных. Ее описание выходит за рамки данного пособия.

2.5.4. Решение жестких систем оду()

Система дифференциальных уравнений, записанная в матричной форме y = A×x, где A — почти вырожденная матрица, называется жесткой. Решение таких систем характерно резко различной скоростью изменения значений переменных и требует очень малого шага, выбираемого исходя из наивысшей скорости изменения значений переменных. Оно подчас невозможно указанными выше методами, дающими недопустимо большую ошибку при решении таких задач. Для решения жестких дифференциальных уравнений в Mathcad введен ряд функций:

  • bulstoer(y,x1,x2,acc,n,F,k,s) — возвращает матрицу решения системы обыкновенных дифференциальных уравнений на интервале от x1 до x2, правая часть которых записана в символьном векторе F с заданными в векторе y начальными условиями (используется метод решения Булирша-Штера с переменным шагом, параметры k и s задают максимальное число промежуточных точек, на которых ищется решение, и минимально допустимый интервал между ними);

  • Stiffb(y,x1,x2,n,F,J) — возвращает матрицу решений жесткого дифференциального уравнения, записанного в векторе F и функции Якобиана J, y — вектор начальных значений на интервале [x1,x2] (для решения используется метод Булирша-Штера);

  • stiffb(y,x1,x2,acc,n,F,J,k,s) — возвращает матрицу решений только в конечной точке жесткого дифференциального уравнения, записанного в векторе F и функции Якобиана J, y — вектор начальных значений на интервале [x1,x2] (для решения используется метод Булирша-Штера с переменным шагом);

  • Stiffr(y,x1,x2,n,F,J) — возвращает матрицу решений дифференциального уравнения, записанного в векторе F и функции Якобиана J, y — вектор начальных значений на интервале [x1,x2] (для решения используется метод Розенброка);

  • stiffr(y,x1,x2,acc,n,F,J,k,s) — матрица решений только в конечной форме жесткого дифференциального уравнения, записанного в векторе F и функции Якобиана J, y — вектор начальных значений на интервале [x1,x2] (для решения используется метод Розенброка с переменным шагом).

В приведенных функциях: acc — погрешность решения (рекомендуется порядка 0.001), k — максимальное число промежуточных точек, и s — минимально допустимый интервал между точками, в которых ищется решение. Обратите внимание, что функции, начинающиеся с малой буквы, дают решения только для конечной точки. Матрица-функция Якоби J, фигурирующая в этих функциях, имеет размер n ´ (n+1) и представляется в виде:

.

П ример 2.28. Решить жесткую систему дифференциальных уравнений, у которой f(x,y) задана системой уравнений, представленной на рис. 2.5. Там же дано и решение данной задачи.

Рис. 2.5. Пример решения жесткой системы дифференциальных уравнений