Лабораторная работа №4 / лаба4_Istruct
.doc
Решение методом Рунге Кутта
function z=F1(u)
z=u;
function z=F2(u0,u1,x)
z = exp(-x).*((-4)*x-12)-2*u1-5*u0;
clear
clc
format long e;
xs = 0;
xf = 6;
u0(1) = -4;
u1(1)= 13;
x(1)=xs;
n=500;
h=(xf-xs)/n;
for k=1:n
i=max(size(x));
k1(1)=h*F1(u1(i));
k1(2)=h*F2(u0(i),u1(i),x(i));
k2(1)=h*F1(u1(i)+k1(1)/2);
k2(2)=h*F2(u0(i)+k1(2)/2,u1(i)+k1(2)/2,x(i)+h/2);
k3(1)=h*F1(u1(i)+k2(1)/2);
k3(2)=h*F2(u0(i)+k2(2)/2,u1(i)+k2(2)/2,x(i)+h/2);
k4(1)=h*F1(u1(i)+k3(1));
k4(2)=h*F2(u0(i)+k3(2),u1(i)+k3(2),x(i)+h);
u0(i+1)=u0(i)+(k1(1)+2*k2(1)+2*k3(1)+k4(1))/6;
u1(i+1)=u1(i)+(k1(2)+2*k2(2)+2*k3(2)+k4(2))/6;
x(i+1)=x(i)+h;
end
plot(x,u0)
xx=0:0.1:3;
hold on
q=exp(-xx).*(-xx-3)+exp(-xx).*(-cos(2*xx)+5*sin(2*xx));
plot(xx,q,'o');
grid;
hold off;
Графики точного решения и полученного методом Рунге Кутта:
Часть 2
Файл fder41 описание заданного уравнения
function z=fder41(t,y)
z=[-7*y(1)+15*y(2);-6*y(1)+12*y(2)]
Файл fx.m решение заданной системы уравнений
function Fx=fx(q);
Fx=15*exp(3*q)-15*exp(2*q);
Файл fy.m решение заданной системы уравнений
function Fy=fy(q)
Fy=10*exp(3*q)-9*exp(2*q);
Файл rab41
clear
clc
xs=0;
xf=1;
[X,Y]=ode23(@fder41,[xs xf],[0,1]);
plot(X,Y);
grid
hold on
t=xs:0.1:xf;
plot(t,fx(t),'o');
plot(t,fy(t),'o');
hold off
Графики решений