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

ЧМ_7

.docx
Скачиваний:
3
Добавлен:
28.06.2022
Размер:
599.07 Кб
Скачать

Никитиной Софии

Лабораторная работа №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

Соседние файлы в предмете Численные методы