Решение дифференциальных уравнений в системе MathCAD

Основной идеей метода является вычисление состояния системы в точке x+h, как результата двух шагов длины h/2, четырех шагов длины h/4,

Решение дифференциальных уравнений в системе MathCAD

Контрольная работа

Математика и статистика

Другие контрольные работы по предмету

Математика и статистика

Сдать работу со 100% гаранией

Кафедра высшей математики

 

 

 

 

 

 

 

 

 

 

 

Отчет по лабораторной работе № 4

Тема: Решение дифференциальных уравнений в системе MathCAD.

 

 

 

Выполнил студент ИГЭУ

Теплоэнергетического Факультета

Кафедры тепловых электростанций

Группы I-2x

Атаманчук М. С.

Проверил: Крутов А.О.

 

Лабораторная работа № 4.

 

Тема: Решение дифференциальных уравнений

Цель: Научиться решать дифференциальные уравнения в системе MathCAD методами Рунге - Кутты (rkfixed, rkadapt), Булирша - Штера (Bulstoer) и Odesolve

 

Описание метода Рунге - Кутты

Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка.

Идея Рунге-Кута состоит в том, чтобы использовать метод неопределённых коэффициентов. Наиболее употребительным методом Рунге-Кутта решения уравнения первого порядка y' = F(x,y) (2.1.1) является метод четвертого порядка, в котором вычисления производятся по формуле:

 

yk+1 = yk +(k1 +2k2 +2k3 +k4 )/6, (2.1.2)

 

где = Fk h = F(xk , yk )h = F(xk +h/2, yk +k1 /2)h = F(xk +h/2, yk +k2 /2)h = F(xk +h, yk +k3 )h, = 0, ..., n-1

 

h = (xf -x0 )/n (2.1.3)

 

Описание метода Булирша - Штера (Bulstoer)

Метод Булирша-Штера - это метод решения системы обыкновенных дифференциальных уравнений первого порядка с гладкими правыми частями. Гладкость правых частей является необходимой для работы метода. Если правые части вашей системы не являются гладкими или содержат разрывы, то лучше использовать метод Рунге-Кутта. В случае же гладкой системы метод Булирша-Штера позволяет добиться существенно большей точности, чем метод Рунге-Кутта.

Принцип работы метода

Основной идеей метода является вычисление состояния системы в точке x+h, как результата двух шагов длины h/2, четырех шагов длины h/4, восьми шагов длины h/8 и так далее с последующей экстраполяцией результатов. Метод строит рациональную интерполирующую функцию, которая в точке h/2 проходит через состояние системы после двух таких шагов, в точке h/4 проходит через состояние системы после четырех таких шагов, и т.д., а затем вычисляет значение этой функции в точке h = 0, проводя экстраполяцию.

Гладкость правых частей приводит к тому, что вычисленное при помощи экстраполяции состояние системы оказывается очень близко к действительному, а использование рациональной экстраполяции вместо полиномиальной позволяет ещё больше повысить точность.

Таким образом проводится один шаг метода, после чего принимается решение - следует ли изменять шаг, а если да - то в какую сторону. При этом используется оценка погрешности, которую мы получаем в качестве дополнительного результата при рациональной экстраполяции. Следует отметить, что алгоритм решает автономную систему, т.е. если уравнения системы содержат время, то необходимо ввести время в качестве переменной, производная от которой тождественно равна единице.

 

Задача №1

 

Найдите два решения дифференциального уравнения на отрезке [1; 5] с начальными условиями соответственно , . Проконтролируйте достижение точности 0.001. Нарисуйте их графики (на одном чертеже). Определите значения этих решений в точке x = 4.85.

 

Метод Рунге - Кутты (rkfixed)

 

 

Создадим функцию

 

Далее применим к ней функцию rkfixed

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для достижения точности 0.001 ниже полученных матриц Z, Z1 выполним оператор TOL :=0.001.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После этого снова найдем решение, но обозначим его иначе:

Возьмем два вектора и , являющиеся столбцами значений первого и второго решений. Найдем модуль разности этих векторов.

 

 

 

Видим, что результаты совпадают в пределах заданной погрешности, что и было необходимо для нашей задачи.

Построим графики этих функций.

 

 

 

 

 

 

 

 

 

 

 

 

Для нахождения значения этих решений в точке x = 4.85 применим к функции функцию rkfixed, но правое ограничение выстави в виде x = 4.85 и построим матрицу решений.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решения дифференциального уравнения на отрезке [1; 5] с начальными условиями, в точке x = 4.85 будет y(4.85)=1.239 и y(4.85)=1.233 соответственно.

 

Метод Рунге - Кутты (rkadapt)

 

 

Создадим функцию

Далее применим к ней функцию rkadapt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для достижения точности 0.001 ниже полученных матриц Z, Z1 выполним оператор TOL :=0.001.

 

После этого снова найдем решение, но обозначим его иначе:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Возьмем два вектора и , являющиеся столбцами значений первого и второго решений. Найдем модуль разности этих векторов.

 

 

 

 

 

 

 

Видим, что результаты совпадают в пределах заданной погрешности, что и было необходимо для нашей задачи.

Построим графики этих функций.

 

 

 

 

 

 

 

 

 

 

 

 

Для нахождения значения этих решений в точке x = 4.85 применим к функции функцию rkadapt, но правое ограничение выставим в виде x = 4.85 и построим матрицу решений.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решения дифференциального уравнения на отрезке [1; 5] с начальными условиями, в точке x = 4.85 будет y(4.85)=-0.127 и y(4.85)=-0.142 соответственно.

 

Метод Булирша - Штера (Bulstoer)

 

 

Создадим функцию

 

Далее применим к ней функцию Bulstoer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для достижения точности 0.001 ниже полученных матриц Z, Z1 выполним оператор TOL :=0.001.

 

 

 

 

После этого снова найдем решение, но обозначим его иначе:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Возьмем два вектора и , являющиеся столбцами значений первого и второго решений. Найдем модуль разности этих векторов.

 

 

 

 

 

Видим, что результаты совпадают в пределах заданной погрешности, что и было необходимо для нашей задачи.

Построим графики этих функций.

 

 

 

 

 

 

 

 

 

<

Похожие работы

1 2 3 > >>