- •Кафедра автоматизации и систем управления
- •Введение.
- •Лабораторная работа № 1. Основы работы с системой MathCad.
- •Ввод формул
- •Лабораторная работа № 2. График функции.
- •Варианты
- •Лабораторная работа № 3. Расширенные скалярные операторы
- •Варианты
- •Задание 2
- •Рассмотрим некоторые способы создания массивов:
- •В любом месте документа допускается как переопределение любого из элементов массива, так и изменение его размерности
- •2. С использованием встроенной функции :
- •Функции, возвращающие специальные характеристики матриц
- •Задание 1
- •Порядок выполнения задания
- •Лабораторная работа № 6. График поверхности
- •Порядок выполнения задания
- •Лабораторная работа № 7 решение нелинейных уравнений
- •Задание 1.
- •Порядок выполнения задания
- •Варианты
- •Порядок выполнения задания
- •Решение нелинейного уравнения
- •Поиск корней с помощью функции root:
- •Лабораторная работа № 8. Аппроксимация функций
- •Линейная интерполяция
- •Сплайн-интерполяция
- •Линейная регрессия
- •Задание 1.
- •Порядок выполнения задания
- •Варианты
- •Варианты
- •Лабораторная работа № 9. Решение дифференциальных уравнений
- •Задание 1.
- •Порядок выполнение задания
- •Варианты:
- •Варианты
- •1. Решение дифференциальных уравнений.
- •2. Дифференциальное уравнение второго порядка
- •Лабораторная работа № 10 Разложение в ряд
- •Внимание
- •Разложение выражения в ряд с разным порядком аппроксимации
- •Разложение выражения в ряд по разным переменным
- •Интегральные преобразования
- •Примечание
- •Прямое преобразование Фурье
- •Прямое и обратное преобразование Лапласа
- •Прямое и обратное z-преобразование
- •Лабораторная работа №11 поиск экстремума функции
- •Экстремум функции одной переменной
- •Условный экстремум
- •Три примера поиска условного экстремума
- •Экстремум функции многих переменных
- •Задание
- •Варианты
Лабораторная работа № 9. Решение дифференциальных уравнений
Цель: научиться решать дифференциальные уравнения в среде MathCAD.
При решении дифференциальных уравнений искомой величиной является функция. Для обыкновенных дифференциальных уравнений неизвестная функция — функция одной переменной. Чтобы решение было единственным, задают дополнительные условия — начальные или краевые, которые определяют тип задачи: задача Коши или краевая задача. Рассмотрим как в MathCAD решается задача. Коши.
Все встроенные функции MathCAD предназначены для решения задачи Коши нормальных систем дифференциальных уравнений; задача Коши для одного уравнения сводится к решению задачи для системы. Задача Коши ставится следующим образом:
y’1 = f1(x, y1, y2, … , yn), y1(0) = y0,1,
y’2 = f2(x, y1, y2, … , yn), y2(0) = y0,2,
……………………….
y’n = fn(x, y1, y2, … , yn), yn(0) = y0,n.
Численное решение этой задачи состоит в построении таблицы приближенных значений yi,1, yi,2…, yi,,n, решения y1(x), у2(х),…уn(х) на отрезке [x0, xN] в точках x0, x1, xN, которые называются узлами сетки.
Систему, содержащую производные высших порядков и разрешенную относительно старших производных искомых функций, путем введения новых неизвестных функций можно привести к нормальному виду. В частности, для дифференциального уравнения n-го порядка
у(n) = f(x,у, у', у''..., y(n-1)), полагая у' =: u1 (х), у" = u2(х),...., y(n-1) = yn-1, у(n) = fn(x, y , u1…, un-1), будем иметь эквивалентную нормальную систему из n дифференциальных уравнений первого порядка относительно функций y, u1, u2,..., un-1:
y’(x) = u1(x),
u’1(x) = u2(x),
…………..
u’n-2(x) = un-1(x),
u’n-1(x) = f(x, y(x), u1(x), …, un-1(x)).
В MathCAD задачу Коши для нормальной системы можно решить с помощью разных встроенных функций, среди которых наиболее простыми являются функции, реализующие широко распространенный метод Рунге-Кутта четвертого порядка:
Наиболее часто используются функции, которые ищут решение широко распространенным методом Рунге-Кутта четвертого порядка.
rkfixed (y, xa, xb, Npoints, D) - решение задачи Коши на отрезке с постоянным шагом;
Rkadapt (y, xa, xb, Npoints, D) - решение задачи Коши на отрезке с автоматическим выбором шага.
Параметрами обеих функций являются:
у — вектор начальных условий размерности п, где п — порядок дифференциального уравнения или число уравнений в системе. Для дифференциального уравнения первого порядка вектор начальных условий вырождается в одну точку у0.
xa, xb - граничные точки интервала, на котором ищется решение дифференциальных уравнений. Начальные условия, задаваемые в векторе начальных условий - это значения решения в точке xa.
Npoints - число точек, не считая начальной, в которой ищется приближенное решение. Этот параметр определяет число строк (1 + Npoints) в матрице результатов.
D(x,y) - функция, которая возвращает в виде вектора из п элементов значения первых производных неизвестных функций (правые части дифференциальных уравнений системы).
В результате решения получается матрица, число столбцов которой на, единицу больше порядка дифференциального уравнения или числа уравнений в системе. Первый столбец матрицы содержит значения узлов, т.е. точек, в которых ищется решение. Второй столбец содержит значения искомой функции в узлах, а оставшиеся столбцы значения производных, начиная с первой и до (n-1)-й включительно. Для дифференциального уравнения первого порядка матрица решения состоит всего из двух столбцов: значений узлов и значений найденного решения в. этих узлах. Вывод таблицы на экран, как обычно, осуществляется, набором символа обычного равенства «i»; при этом если щелкнуть по полю появившейся таблицы - то можно просмотреть ее всю, используя стрелки прокрутки.
В качестве примера рассмотрено решение задачи Коши для уравнения первого порядка:
у'(х) = у(х) - 2х/у(x), на промежутке от 0 до 6 с начальным условием y(0) = 1. Для этого уравнения известно точное решение задачи: . Варьируя число разбиений промежутка интегрирования, можно проследить, как сходится приближенное решение к точному. Обращение к функции rkfixed и полученные результаты приведены в примере.
Для решения уравнений порядка выше первого, помимо разрешения уравнения относительно старшей производной, необходимо свести задачу к задаче для нормальной системы дифференциальных уравнений. Например, задачу Коши для уравнения второго порядка у"(х) +у'(х) - 2у(х) = 0 с начальными условиями у(0) = 1- у'(0) = 3 преобразуем в нормальную систему, вводя обозначения у' = и1(х), y" = и2(x). Поскольку y"(x) = - у'(x)+ 2 у(х), то получим систему:
у'(х) = u1(х), у(0) = 1,
у'1 (х) = - u1(х) + 2у, u1(0) = 3.
В примере показано, как задать исходные векторы начальных значений и первых производных (векторы U и D). С помощью функции rkfixed на отрезке от 0 до 6 получено два решения: с задаваемым числом разбиений (N) и учетверенным числом разбиений (4N). Сравнение двух решений приведено на графике.