clc
clear
close all
% Исходные данные
n = 20;
x0 = 0;
x1 = 1;
y0 = 6;
% Шаг интегрирования
h = (x1-x0)/n;
% Начальные условия
X = zeros(1,n+1);
Y = zeros(1,n+1);
X(1) = x0;
Y(1) = y0;
% Исходное дифференциальное уравнение
f = @(x,y) ((y+x-2)^2-y^2)/(x-2)^2;
% Метод Рунге-Кутты 2-го порядка
for i = 1:n
k1 = f(X(i),Y(i));
k2 = f(X(i)+h,Y(i)+h*k1);
X(i+1) = X(i)+h;
Y(i+1) = Y(i)+h*(k1+k2)/2;
end
% Построение графика
figure(1)
plot(X,Y,'bo-')
grid on
xlabel('X')
ylabel('Y')
title('Метод Рунге-Кутты 2-го порядка')
clc
clear
close all
% Исходные данные
n = 20;
x0 = 0;
x1 = 1;
y0 = 6;
% Шаг интегрирования
h = (x1-x0)/n;
% Начальные условия
X = zeros(1,n+1);
Y = zeros(1,n+1);
X(1) = x0;
Y(1) = y0;
% Исходное дифференциальное уравнение
f = @(x,y) ((y+x-2)^2-y^2)/(x-2)^2;
% Метод Рунге-Кутты 3-го порядка
for i = 1:n
k1 = f(X(i),Y(i));
k2 = f(X(i)+h/2,Y(i)+h*k1/2);
k3 = f(X(i)+h,Y(i)-h*k1+2*h*k2);
X(i+1) = X(i)+h;
Y(i+1) = Y(i)+h*(k1+4*k2+k3)/6;
end
% Построение графика
figure(1)
plot(X,Y,'gs-')
grid on
xlabel('X')
ylabel('Y')
title('Метод Рунге-Кутты 3-го порядка')
clc
clear
close all
% Исходные данные
n = 20;
x0 = 0;
x1 = 1;
y0 = 6;
% Шаг интегрирования
h = (x1-x0)/n;
% Начальные условия
X = zeros(1,n+1);
Y = zeros(1,n+1);
X(1) = x0;
Y(1) = y0;
% Исходное дифференциальное уравнение
f = @(x,y) ((y+x-2)^2-y^2)/(x-2)^2;
% Метод Рунге-Кутты 4-го порядка
for i = 1:n
k1 = f(X(i),Y(i));
k2 = f(X(i)+h/2,Y(i)+h*k1/2);
k3 = f(X(i)+h/2,Y(i)+h*k2/2);
k4 = f(X(i)+h,Y(i)+h*k3);
X(i+1) = X(i)+h;
Y(i+1) = Y(i)+h*(k1+2*k2+2*k3+k4)/6;
end
% Построение графика
figure(1)
plot(X,Y,'r^-')
grid on
xlabel('X')
ylabel('Y')
title('Метод Рунге-Кутты 4-го порядка')