function dx=dx_ode(t,x)
dx=zeros(1,1); %dla 1 x (1,1) dla dwóch (2,1)
dx(1)=2*t(1)-3;
dt=0.001; % rozdzielczosc wyniku
t_czas=1; %koncowy czas rownania
x1(1)=0;
for i=1:t_czas/dt
t1(i+1)=i*dt;
dx1=(2*t1(i)-3)*dt;
x1(i+1)=x1(i)+dx1;
end
dla rownania:
dx/dt = 2x-3 x(0)=1
Dy/dt=3xy y(0)=3
t „należy” (0,2)
Sposób
function dz=nazwa_funkcji(t,z)
dz=zeros(2,1);
dz(1)=2*z(1)-3;
dz(2)=3*z(1)*z(2);
%wywołujemy "ode45('nazwa_funkcji',[0 2],[1 3]
Sposób
dt=0.001; % rozdzielczosc wyniku
t_czas=2; %koncowy czas rownania
x1(1)=1;
y1(1)=3;
for i=1:t_czas/dt
t1(i+1)=i*dt;
dx1=(2*x1(i)-3)*dt;
x1(i+1)=x1(i)+dx1;
dy1=(3*x1(i)*y1(i))*dt;
y1(i+1)=y1(i)+dy1;
end
figure;
subplot(2,1,1);
plot(t1,x1);
subplot(2,1,2);
plot(t1,y1);
dla rownania:
dx/dt = sigma(y-x), -sigma to stała=10 x(0)=9
Dy/dt=x(r-z)-y, gdzie r to stała=28 y(0)=15
Dz/dt=xy-bz gdzie b to stała =8/3 z(0)=18
t „należy” (0,100)
1)
dt=0.01; % rozdzielczosc wyniku
t_czas=100; %koncowy czas rownania
x(1)=9; sigma=10;
y(1)=15; r=28;
z(1)=18; b=8/3;
for i=1:t_czas/dt
t(i+1)=i*dt;
dx=(sigma*(y(i)-x(i)))*dt;
x(i+1)=x(i)+dx;
dy=(x(i)*(r-z(i))-y(i))*dt;
y(i+1)=y(i)+dy;
dz=((x(i)*y(i))-(b*z(i)))*dt;
z(i+1)=z(i)+dz;
end
figure;
plot3(x,y,z)
2)
figure;
plot3(z(:,1),z(:,2),z(:,3))