Contents
System av differentialekvationer
clear all; clf
f=@(t,u)[ 0.5*u(1)-0.3*u(1)*u(2)
-0.2*u(2)+0.1*u(1)*u(2) ];
N=5000; h = (80-0)/N;
t = linspace(0,80,N+1);
U(:,1)=[5;3];
for i = 1:N
U(:,i+1) = U(:,i) + h*f(t(i),U(:,i));
end
plot(t,U);
legend('kaniner','rävar')
clear all, clf
f=@(t,u)[ 0.5*u(1)-0.3*u(1)*u(2)
-0.2*u(2)+0.1*u(1)*u(2) ];
[t,U] = ode45(f,[0,80],[5;3]);
plot(t,U);
legend('kaniner','r�var')
Högre ordningens differentialekvationer
l = 0.1; g = 9.81;
f=@(t,u)[u(2); -g/l*sin(u(1))];
[t U]=ode45(f,[0,2],[pi/4;0]);
clf;
subplot(2,2,1);
plot(t,U(:,1)); title('Vinkeln'); xlabel('t')
subplot(2,2,2);
plot(t,U(:,2));title('Vinkelhastigheten'); xlabel('t')
subplot(2,2,3);
plot(U(:,1),U(:,2)); title('Fasporträtt');
xlabel('\theta(t)')
(Visualisering) En pendel
subplot(2,2,4)
U(:,1)=U(:,1)-pi/2;
X=l*cos(U(:,1));Y=l*sin(U(:,1));
staang=plot([0 X(1)],[0 Y(1)]);hold on
klaepp=plot(X(1),Y(1),'ro');
axis equal; axis([-1 1 -2 1]/10);
axis manual
pause(5);
for i=2:numel(t)
staang.XData=[0 X(i)];
staang.YData=[0 Y(i)];
klaepp.XData = X(i);
klaepp.YData = Y(i);
pause((t(i)-t(i-1))*2);
end