Решение дифференциальных уравнений в среде Matlab Выполнил: Койшыбаев А.Б. Преподаватель: Мурзабеков З.Н. д.т.н., профессор Казахский национальный университет им. аль-Фараби
Создание файла-функции
Ввод название функции Название файла и название функции должны совпадать Функция-файл должен быть расположен в текущий папке
Заголовок функции Красным подчеркнуто имя функции. Оно должно совпадать с названием файла. Синим подчеркнут вектор входных аргументов. Если аргументов несколько, их вводят через запятую. Желтым подчеркнут вектор выходных аргументов. Если аргументов несколько, они разделяются пробелом. Зеленым обозначаются комментарии, сгенерированные MATLAB при создании файла. (ВМК МГУ) З
Заполнение тела функции-1 Сделаем созданный файл функцией правой части системы дифференциальных уравнений С начальными условиями на отрезке [0, 3].
Заполнение тела функции-2 Файл task1. m теперь выглядит следующим образом:
Решение дифференциальных уравнений Для решения обыкновенных дифференциальных уравнений и систем обыкновенных дифференциальных уравнений чаще всего используется функция ode45(odefun, tspan, y0), реализующая метод Рунге-Кутты-Фельберга 4-го порядка. Результатом работы функции является пара [T, Y ].
Аргумент odefun Этот аргумент отвечает за правую часть дифференциального уравнения или системы. Вместо odefun подставляется ссылка на имя функции, реализующей правую Используемая нами функция ode45 предназначена для решения задач вида: y = f (t, y), поэтому функция правой части должна зависеть от двух переменных t и y.
Аргумент tspan Варианты задания: указать явно в виде вектора: [ ] указать начало вектора, конец вектора и требуемый шаг: [0:0.5:2] указать начало и конец отрезка: [0 2]. В этом случае вектор будет сгенерирован автоматически.
Результат [T, Y] T - вектор времени Y - матрица решений. Как они согласуются: вектор времени содержит некие значения - разбиение временного отрезка матрица решений содержит значение искомой функции в каждый момент времени из вектора времени.
Практическое использование ode45 Применим ode45 для решения нашей задачи Коши (слайд 5). правая часть задана в файле task1. m вектор времени зададим, указав начальную и конечную точки отрезка: [0, 3] начальные условия представим в виде вектора [3 4 5].
Первый вариант вызова Используем следующую команду: [T, Y] = [0,3], [1 0 1]) В результате выполнения такой команды: будут созданы вектор T и матрица Y в них соответственно будут помещены сетка по времени и значение функции y(t) на этой сетке эти вектор и матрица будут выведены на экран.
Второй вариант вызова Используем следующую команду: [0,3], [3 4 5]) Такая команда, в отличие от предыдущей не сохраняет в памяти переменные T и Y не выводит их на экран строит график траекторий в зависимости от времени.
Решение в графическом виде
Изменяем время графика [0,5], [3 4 5])