17.04.2014 Views

Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék

Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék

Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!