- •Задачи:
- •1 Теоретические основы работы
- •1.1 Решение алгебраических и трансцендентных уравнений
- •1.2 Решение систем линейных уравнений
- •1.2.1 Правило Крамера для решения систем линейных уравнений
- •1.2.2 Метод обратной матрицы для решения систем линейных уравнений
- •1.2.3 Метод Гаусса для решения систем линейных уравнений
- •1.3 Решение дифференциальных уравнений
- •Модифицированный метод Эйлера
- •Метод Рунге – Кутты
- •Метод Эйлера
- •2 Порядок выполнения работы
- •3 Содержание отчета
- •4 Контрольные вопросы
- •Библиографический список
- •Решение уравнений в среде компьютерных вычислений matlab
- •443086 Самара, Московское шоссе, 34
Метод Эйлера
Для решения задачи Коши выберем достаточно малый шаг h и построим на интервале [t0; tn] систему равноотстоящих точек:
В этом случае можем записать:
(3)
Процесс нахождения значения функции xi в узловых точках ti по формуле (3) называется методом Эйлера. Основным недостатком этого метода является его невысокая точность.
Модифицированный метод Эйлера
Более точным методом решения дифференциальных уравнений является модифицированный метод Эйлера, при котором сначала вычисляют промежуточные значения:
Далее находят значения xi+1 по формуле:
Метод Рунге – Кутты
Рассмотренные методы Эйлера являются частными случаями методов Рунге-Кутты k-го порядка. В общем случае формула вычисления очередного приближения методом Рунге-Кутты имеет вид:
Функция φ(x, t, h) аппроксимирует отрезок ряда Тейлора до k-го порядка и не содержит частных производных f(t, x).
Метод Эйлера является методом Рунге-Кутты первого порядка (k=1) и получается при φ(x, t, h)= f(t, x).
Семейство методов Рунге-Кутты второго порядка имеет вид:
Модифицированный метод Эйлера является частным случаем метода Рунге-Кутты второго порядка при a=1.
Наиболее распространенными методом численного решения дифференциальных уравнений является метод Рунге-Кутты 4-го порядка, расчетные формулы которого можно записать в виде:
Система MATLAB позволяет решать дифференциальные уравнения и системы высокого порядка с табличным и графическим представлением результатов. В среде MATLAB для нахождения численного решения дифференциальных уравнений используются встроенные функции семейства ode (), реализующих методы Рунге-Кутты различных порядков. Функции ode23 () реализует численные методы Рунге-Кутта второго порядка, функция ode45 () – четвертого порядка. Обе функции имеют одинаковый синтаксис следующего вида:
[t, x]=ode45(‘fun’, [t0 tf], x0, tol, trace)
где: 'fun' – имя m-файла, в котором содержатся правые части системы дифференциальных уравнений, t0 – начальное значение аргумента, tf – конечное значение аргумента, x0 – вектор начальных условий, tol – задаваемая точность, опциональный параметр, по умолчанию равен для ode23() – 10-З, для ode45() – l0-6, trace – опциональный параметр, обеспечивает отображение промежуточных результатов.
Алгоритм решения дифференциальных уравнений в системе MATLAB включает в себя два этапа: создание новой файл-функции в виде m-файла в среде MATLAB для вычисления правой части дифференциального уравнения и использование одной из функции ode () для непосредственного получения решения.
Пример: найти решение задачи Коши для следующего дифференциального уравнения:
1. Создаем файл-функцию и сохраняем ее в виде m-файла с произвольным именем:
function f=eq1(t, x)
f= –x+sin(x*t)
end
2. Используем одну из функций ode (), выберем интервал интегрирования уравнения [0, 35]; вызовем функцию ode45 для использования метода Рунге-Кутты четвертого порядка для нахождения численного решения уравнения:
[t, x] = ode45(@eq1, [0 35], 1,5)
В данном случае @eq1 это ссылка на созданную m-файл, содержащий функцию f(x, t), т.е. правую часть дифференциального уравнения, другой формой вызова файл-функции является обращение к ней следующим образом: ‘eq1’. Для графической иллюстрации найденного решения необходимо построить график зависимости x=x(t) с помощью функции plot(t, x). Результатом решения дифференциального уравнения является график зависимости, приведенный на рисунке 1.
Рисунок 1 – График зависимости x=x(t), являющейся решением уравнения
