Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Цель: научиться решать дифференциальные уравнения в среде 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)), полагая у' =: u 1 (х), у" = u2(х),...., y(n-1) = yn-1, у(n) = fn( x, y , u 1 …, un-1), будем иметь эквивалентную нормальную систему из n дифференциальных уравнений первого порядка относительно функций y, u 1, 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). Сравнение двух решений приведено на графике. Задание 1. Решить на отрезке [ x 0, xend] задачу Коши для уравнения первого порядка с постоянным шагом. Получить и изобразить графики решений, вычисленных с шагами h, и 4h. Сравнить с точным решением. Порядок выполнение задания
1. Задать начальное значение функции как элемент вектора (т.е. в виде переменной с нулевым значением индекса). 2. Создать функцию D( x, y), которая вычисляет значение переменной при заданных значениях зависимой переменной и неизвестной функции. 3. Определить начальное и конечное значения отрезка интегрирования. 4. Указать число шагов интегрирования. 5. Вычислить численное решение при помощи функции rkfixed: z := rkfixed ( у , a, b, N, D). Просмотреть результат вычислений — матрицу z с двумя столбцами, первый из которых содержит значения независимой переменной, а второй - соответствующие значения функции. 6. Вычислить численное решение при учетверенном числе разбиений. 7. Создать функцию для вычисления точного решения. 8. Построить графики приближенных (двух) и точного решения. 9. Изменить число шагов N и проследить за решениями. Варианты:
Задание 2. Решить задачу Коши у'1 = f1(x, y1, y2), у' 2 = f2(x, y1, y2), у1(a) = y0,1, y2(a) = y0,2 на отрезке [а, b] с постоянным шагом h =0.1 Изобразить графики решений, вычисленных с шагами h и 2 h. Варианты
Пример: |
Последнее изменение этой страницы: 2019-06-09; Просмотров: 159; Нарушение авторского права страницы