Лаб 6 / Отчет 6
.docxМинистерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
Национальный исследовательский университет “МИЭТ”
Факультет Прикладных информационных технологий
Отчет по лабораторной работе №6
Вариант 7
Дисциплина: Численные методы
Выполнил:
Студент П-43
Губарев Сергей
Москва, 2022 год
Решение задачи Коши для обыкновенных дифференциальных уравнений
Цель работы: изучение методов численного решения задачи Коши для обыкновенных дифференциальных уравнений; приобретение навыков программирования методов решения задачи Коши для обыкновенных дифференциальных уравнений; приобретение навыков использования стандартных средств системы Matlab для решения задачи Коши для обыкновенных дифференциальных уравнений.
Ход работы
Задание 1 – 4
% задача 1-2. Выбрать вариант согласно номеру компьютера. Решить ОДУ,
% написав m-файл. Использовать явный метод Эйлера и метод Рунге - Кутты 4-го порядка
% начало и конец заданного отрезка
a=2;
b=2.5;
% шаг по условию
h=0.01;
x=a:h:b;
N=length(x);
% Явный метод Эйлера
n=N-1;
% новый вектор-строка значений функции для дальнейшего поиска решения ОДУ
u=zeros(1,N);
% значение функции по условию
u(1)=2;
% цикл для решения задачи Коши через замену производной на правую разностную
% производную и поиска Y_1...Y_n-1
for i=1:n
u(i+1)=u(i)+h*lab6_function_ishodnaya(x(i),u(i));
end;
% рисуем график
figure(1);
plot(x,u,'r');
% Метод Рунге-Кутта 4-го порядка
% новый вектор-строка значений функции для дальнейшего поиска решения ОДУ
u1=zeros(1,N);
% значение функции по условию
u1(1)=2;
% цикл для решения задачи Коши через формулу метода Рунге-Кутта
for i=1:n
k1=lab6_function_ishodnaya(x(i),u1(i));
k2=lab6_function_ishodnaya(x(i)+h/2,u1(i)+h*k1/2);
k3=lab6_function_ishodnaya(x(i)+h/2,u1(i)+h*k2/2);
k4=lab6_function_ishodnaya(x(i)+h,u1(i)+h*k3);
u1(i+1)=u1(i)+(k1+2*k2+2*k3+k4)*h/6;
end;
% рисуем график
figure(2);
plot(x,u1);
% задача 3-4. Решить ОДУ с использованием оператора ode45. Построить графики,
% сравнить результаты.
% через средство-оператор ode45
[x, u3] = ode45('lab6_function_ishodnaya',a:h:b,2);
% рисуем график
figure(3);
plot(x,u3,'g');
% общий график всех методов
figure(4);
plot(x,u,'y');
hold on
plot(x,u1,'g');
hold on
plot(x,u3);