
- •Высокоуровневые методы информатики и программирования: автоматизированная математическая система mathcad
- •351400 “Прикладная информатика (в экономике)”,
- •060800 “Экономика и управление на предприятии”
- •Введение
- •1. Простейшие вычисления и документы
- •1. Ознакомление с системой, ввод текста
- •Панель инструментов
- •2. Математические выражения
- •3. Использование функций
- •4. Дискретные переменные, суммы, произведения
- •5. Вычисление пределов
- •6. Действия с комплексными числами
- •2. Двумерная графика
- •1. Декартовы графики
- •2. Графики в полярной системе координат
- •3. Определение координат точек пересечения графиков по двумерному графику.
- •3. Трехмерная (3d) графика
- •1. Построение поверхностей
- •2. Дополнительные возможности построения поверхностей.
- •Пространственные кривые.
- •4. Алгебраические уравнения, оптимизация
- •1. Численное решение нелинейного уравнения с помощью функции root
- •2. Определение корней полинома
- •3.Решение систем нелинейных уравнений
- •4. Определение точек экстремума функций одной и двух переменных
- •5. Математический анализ, символьные вычисления
- •Вычисление определенных интегралов
- •2. Вычисление неопределенных интегралов
- •3. Дифференцирование
- •4. Символьные вычисления
- •6. Дифференциальные уравнения
- •1. Функция rkfixed
- •2. Функция odesolve
- •7. Линейная алгебра, матрицы
- •1. Матричные8 уравнения
- •2. Действия с матрицами
- •8. Линейное программирование
- •1. Транспортная задача
- •Минимальные затраты на перевозок
- •2. Графический анализ задач оптимизации с двумя переменными
- •9. Программирование в среде MathCad
- •Приложение
- •1. Системные переменные
- •2. Встроенные операторы
- •3. Встроенные функции Тригонометрические функции
- •Рекомендуемая литература
- •351400 “Прикладная информатика (в экономике)”,
- •060800 “Экономика и управление на предприятии”
- •4 28015. Чебоксары, ул. Урукова, 17
6. Дифференциальные уравнения
Для решения обыкновенных дифференциальных уравнений в системе MathCAD существует несколько функций. Рассмотрим подробнее две из них – rkfixed и odesolve.
1. Функция rkfixed
Эта функция записывается в виде rkfixed(y,x1,x2,n,F) и возвращает матрицу решений методом Рунге-Кутта системы обыкновенных дифференциальных уравнений первого порядка с начальными условиями в векторе у. Правые части системы должны быть записаны в символьном векторе F, решение на интервале от x1 до х2 находится за фиксированное число шагов n. В качестве примера рассмотрим дифференциальное уравнение Ферхюлста
,
имеющее аналитическое решение
,
называемое логистической кривой и описывающее процессы с насыщением во многих процессах в биологии и экономике [4, 7].
Численное решение дифференциального уравнения Ферхюлста
Начальное
условие
Решение
|
|
Рис. 28. График решения уравнения Ферхюлста - логистическая кривая
Численное решение систем дифференциального уравнения представляется в виде таблицы (матрицы) из двух столбцов с номерами 0,1,2, в которых размещаются значения t и y. При построении графика у осей координат указываются наименования столбцов или номера строк таблицы n=0..99 соответствующие шагам алгоритма. Построение графиков решений (интегральных кривых) двумя указанными способами выполнено на рис. 28.
Примеры решения системы двух дифференциальных уравнений для экономических задач приведены в [7,8]. Дифференциальные уравнения порядка выше первого должны быть предварительно приведены к системе уравнений первого порядка. Рассмотрим для уравнения, описывающего изменение рыночных цен
,
задачу Коши с начальными условиями
.
Приведем исходное уравнение второго порядка к системе двух уравнений первого порядка с помощью замены
.
Задача Коши примет вид
.
Численное решение систем обыкновенных дифференциальных уравнений представляется в виде таблицы (матрицы) из трех столбцов с номерами 0,1,2, в которых размещаются значения t, y0 и y1. При построении графика у осей координат указываются наименования столбцов: Z<0>, Z<1>, Z<2>, причем символы <0>, <1>, <2> вводятся с помощью палитры Matrix (Матрицы). Номера строк таблицы n=0..99 соответствуют шагам алгоритма.
Начальные условия
Правые части системы уравнений
Численное решение задачи на интервале (0,7) проведено методом Рунге-Кутта
График решения
показан на рис. 29.
При
функция
имеет асимптоту
и колеблется около нее. Это означает,
что цены стремятся к установившемуся
значению с колебаниями около него с
затухающей амплитудой. Такое поведение
соответствует действительным изменениям
цен в условиях рыночной экономики.
Рис. 29. Изменение со временем рыночной цены
2. Функция odesolve
В версию системы MathCAD 2000 Professional введена новая функция odesolve, которая возвращает решение на интервале [a, b] задачи Коши обыкновенного дифференциального уравнения порядка n, линейного относительно старшей производной
.
Функция
имеет формат odesolve(t,b,[step]),
где t
– переменная, b
– конец
отрезка
интегрирования, [step]
– число
шагов на интервале [a, b]
(необязательный параметр). Если число
шагов не указано, то решение выполняется
с автоматическим выбором шага (адаптивно)
и время счета может возрасти.
Дифференциальное уравнение и начальные
условия
записываются в вычислительном блоке,
начинающемся директивой Given
(в переводе с англ. дано, произведено).
При их записи используется знак булева
равенства =
с математической панели (палитры) Boolean
(Булевы операторы). Вычислительный блок
заканчивается обращением к функции
odesolve.
Рассмотрим пример решения дифференциального уравнения первого порядка
,
(1)
с начальным условием
и построение графика (рис. 30,
а):
Для
проверки найденное в документе MathCAD
решение продифференцируем и сравним
график производной
с графиком функции
(рис. 30,
б). Указанные графики практически
совпадают.
Примep решения дифференциального уравнения первого порядка с помощью функции odesolve и вычислительного блока Given
а |
б |
Рис. 30. Пример использования функции odesolve
Графики интегральных кривых – решений дифференциального уравнения (1) для пяти различных начальных условий построены в следующем документе MathCAD и на рис. 31.
Построение интегральных кривых дифференциального уравнения первого порядка с помощью функции odesolve и вычислительного блока Given
Рис. 31. Построение интегральных кривых с помощью функции odesolve
Рассмотрим пример решения дифференциального уравнения второго порядка
(2)
с начальными
условиями
.
Ниже приведен
документ MathCAD7,
график функции
(рис. 32 а), а также графики функций
и второй производной
(найденной по приближенному решению)
(рис. 32, б). Из последнего рисунка
видно, что графики совпадают всюду,
кроме концов интервала, где велика
погрешность определения
.
Примep решения дифференциального уравнения второго порядка с помощью функции odesolve и вычислительного блока Given
Проверка решения
а |
б |
Рис. 32. Пример дифференциального уравнения второго порядка с помощью функции odesolve
Фазовые траектории решений уравнения (3) с различными начальными условиями построены в следующем документе MathCAD.
Построение фазовых траекторий дифференциального уравнения второго порядка с помощью функции odesolve и вычислительного блока Given
Рис. 33. Построение фазовых траекторий с помощью функции odesolve
Поскольку результат
вычислений производных
,
в
начальной точке
равен нулю, то для получения правильного
результата использована очень малая
добавка eps.
Задания.
6.2.1. Для дифференциальных уравнений первого порядка из табл. 12 построить: а) график решения для указанного начального условия, б) интегральные кривые во всех частях координатной плоскости.
Таблица 12
1.
|
2. |
3.
|
4.
|
5.
|
6.
|
7.
|
8.
|
9.
|
10.
|
11.
|
12.
|
13.
|
14.
|
15.
|
16.
|
6.2.2. Построить интегральные кривые для заданий (П3) 1.1–4.4 из учебника [1].
6.2.3. Построить интегральные кривые и фазовые траектории для дифференциальных уравнений второго порядка для заданий (П3) 5.1-6.10 из [1].