ЧМ_7
.docxНикитиной Софии
Лабораторная работа №7.
syms y(x)
dsolve(diff(y)/diff(x) == x^2, y(0) == 1)
x^3/3 + 1
Метод Эйлера: clear
clc
clear
clc
x = 0:0.01:0.5;
y_Euler(1)=1; % i от одного
for i = 1:length(x)-1
h(i) = x(i+1)-x(i);
y_Euler(i+1) = y_Euler(i)+h(i)*x(i)^2;
end
y = x.^3/3+1;
e = abs(y_Euler-y); % погрешность в сравнении с аналитическим решением
hold on
grid on
plot(x,y_Euler, 'r')
plot(x,y, 'b')
legend('Euler','noEuler')
y0 = [1;0];
[t y] = ode45(@oscil,[0 15],y0);
function F = oscil(t,y)
F = [y(2); -2*y(2)-10*y(1)+sin(t)];
end
clear
clc
y0 = [1;0];
[t1 y1] = ode45(@oscil,[0 15],y0);
figure (1)
hold on
grid on
plot(t1,y1(:,1))
plot(t1,y1(:,2))
title('ode45')
[t2 y2] = ode23(@oscil,[0 15],y0);
figure (2)
hold on
grid on
plot(t2,y2(:,1))
plot(t2,y2(:,2))
title('ode23')
figure (3)
hold on
grid on
t = 0:0.001:15;
y = (exp(-t).*(87*cos(3*t)+26*sin(3*t))+(9*sin(t)-2*cos(t)))/85;
dy = (9*cos(t))/85 + (2*sin(t))/85 - (87*cos(3*t) + 26*sin(3*t))./(85*exp(t)) + (78*cos(3*t) - 261*sin(3*t))./(85*exp(t)); % diff(y)
plot(t,y)
plot(t,dy)
title('without ode')
function F = oscil(t,y)
F = [y(2); -2*y(2)-10*y(1)+sin(t)];
end
clear
clc
y0 = [log(0.01);100];
[t1 y1] = ode45(@oscil,[0.01 5],y0);
hold on
grid on
plot(t1,y1(:,1),'r')
plot(t1,y1(:,2),'r')
title('ode45 - red, without ode - blue')
t = 0.01:0.001:5;
y = log(t);
y_ = 1./t
plot(t,y,'b')
plot(t,y_,'b')
axis([1 5 -1 2])
function F = oscil(t,y)
F = [y(2); -1/t^2];
end