Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék
Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék
Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
9. FEJEZET. KÖZÖNSÉGES DIFFERENCIÁLEGYENLETEK (ODE) MEGOLDÁSA 34<br />
van_der_Pol.eps<br />
9.2. ábra. A van der Pol egyenlet megoldása.<br />
) (<br />
)<br />
(ẏ1<br />
y 2<br />
=<br />
ẏ 2 (A − By 1 ) ( 1 + y2) 2 3/2<br />
−<br />
y 2<br />
( )<br />
t<br />
1 + y<br />
2<br />
2<br />
A (csepp.m) programban a numerikus megoldás során figyeljük y 2 értékét (ami a felületet leíró görbe meredeksége)<br />
és ha már majdnem függőleges (itt y 2 > 10 4 ), abbahagyjuk az integrálást. Ezt valósítja meg az<br />
events(t,x) eljárás.<br />
function csepp<br />
global A B<br />
A=1;<br />
B=0.1343;<br />
csepp.m<br />
options = odeset(’Events’,@events);<br />
[t,x] = ode45(@f_csepp,[1e-5 10],[0; 0],options);<br />
plot(t,x(:,1),’k’,-t,x(:,1),’k’);<br />
title([’Vizcsepp alak, A=’,num2str(A)]);<br />
xlabel(’x’);<br />
ylabel(’y’);<br />
%-----------------------------------------------------<br />
function dxdt = f_csepp(t,x)<br />
global A B<br />
dxdt = [x(2);<br />
(A-B*x(1))*(1+x(2)^2)^(3/2)-x(2)/t*(1+x(2)^2)];<br />
%------------------------------------------------------<br />
function [value,isterminal,direction] = events(t,x)<br />
value = abs(x(2))-10^4;<br />
isterminal = 1; % megall az integralas<br />
direction = 0; % mindket iranyban