Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6.5. Tratarea evenimentelor 153<br />
valul de timp specificat, nici o solut¸ie nu este afis¸ată. Situat¸ia se poate evita utilizând<br />
facilitatea de localizare a evenimentelor, as¸a cum se poate vedea în script-ul următor.<br />
Pozit¸iile init¸iale, drumurile celor două animale s¸i pozit¸ia finală apar în figura 6.13.<br />
tspan = [0,10]; y0=[3,0];<br />
k=1.1;<br />
opt = odeset(’RelTol’,1e-6,’AbsTol’,1e-6’,’Events’,@events);<br />
[tfox,yfox,te,ye,ie] = ode45(@fox2,tspan,y0,opt,k);<br />
plot(yfox(:,1),yfox(:,2)), hold on<br />
plot(sqrt(1+tfox).*cos(tfox),sqrt(1+tfox).*...<br />
sin(tfox),’--’)<br />
plot([3,1],[0,0],’o’)<br />
plot(yfox(end,1),yfox(end,2),’*’)<br />
axis equal, axis([-3.5,3.5,-2.5,3.1])<br />
legend(’Vulpe’,’Iepure’,0), hold off<br />
Aici s-a utilizat funct¸ia odeset pentru a seta erorile s¸i a specifica funct¸ia de localizare<br />
a evenimentelor. Membrul drept s¸i funct¸ia de localizare a evenimentelor se dau<br />
în sursa MATLAB 6.4. Ele sunt memorate în fis¸iere distincte. În funct¸ia de locali-<br />
Sursa MATLAB 6.4 Funct¸iile fox2 s¸i events pentru problema de urmărire<br />
function yprime = fox2(t,y,k)<br />
%FOX2 simulare urmarire vulpe iepure<br />
% YPRIME = FOX2(T,Y,K).<br />
r = sqrt(1+t)*[cos(t); sin(t)];<br />
r_p = (0.5/sqrt(1+t)) * [cos(t)-2*(1+t)*sin(t);...<br />
sin(t)+2*(1+t)*cos(t)];<br />
dist = max(norm(r-y),1e-6);<br />
factor = k*norm(r_p)/dist;<br />
yprime = factor*(r-y);<br />
function [value,isterminal,direction] = events(t,y,k)<br />
%EVENTS Functie eveniment pentru FOX2.<br />
% Localizare cand vulpea este aproape de iepure.<br />
r = sqrt(1+t)*[cos(t); sin(t)];<br />
value = norm(r-y) - 1e-4; % vulpea aproape de iepure.<br />
isterminal = 1; % oprire integrare.<br />
direction = -1; % valoarea descreste catre 0.<br />
zare events se calculează distant¸a dintre animale minus pragul de eroare 1e-4. S-a<br />
ales direction=-1 pentru că distant¸a trebuie să descrească. Parametrii de ies¸ire