Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб 6 / Отчет 6

.docx
Скачиваний:
16
Добавлен:
24.04.2023
Размер:
276.59 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

Национальный исследовательский университет “МИЭТ”

Факультет Прикладных информационных технологий

Отчет по лабораторной работе №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);

Соседние файлы в папке Лаб 6