20.07.2013 Views

Software matematic

Software matematic

Software matematic

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

134 Ecuat¸ii diferent¸iale în MATLAB<br />

Să considerăm acum ecuat¸ia pendulului simplu [2, sect¸iunea 1.4]:<br />

d2 dt2θ(t) = −g<br />

L sinθ(t),<br />

unde g este accelerat¸ia gravitat¸ională s¸i L este lungimea pendulului. Această ecuat¸ie<br />

de ordinul al doilea se poate transforma într-un sistem de ecuat¸ii de ordinul I, introducând<br />

necunoscutele y1(t) = θ(t) s¸i y2(t) = dθ(t)/dt:<br />

d<br />

dt y1(t) = y2(t),<br />

d<br />

dt y2(t) = − g<br />

L siny1(t).<br />

Aceste ecuat¸ii sunt codificate în fis¸ierul pend.m, dat în continuare:<br />

function yp=pend(t,y,g,L)<br />

%PEND - pendul simplu<br />

%g - acceleratia gravitationala, L - lungimea<br />

yp=[y(2); -g/L*sin(y(1))];<br />

Aici, g s¸i L sunt parametrii suplimentari care vor fi furnizat¸i lui pend de către rezolvitor.<br />

Vom calcula solut¸ia pentru t ∈ [0,10] s¸i trei condit¸ii init¸iale diferite.<br />

g=10; L=10;<br />

tspan = [0,10];<br />

yazero = [1; 1]; ybzero = [-5; 2];<br />

yczero = [5; -2];<br />

[ta,ya] = ode45(@pend,tspan,yazero,[],g,L);<br />

[tb,yb] = ode45(@pend,tspan,ybzero,[],g,L);<br />

[tc,yc] = ode45(@pend,tspan,yczero,[],g,L);<br />

În apelurile de forma<br />

[ta,ya] = ode45(@pend,tspan,yazero,[],g,L);<br />

[] reprezintă opt¸iunile, iar următorii sunt parametrii suplimentari care vor fi<br />

transmis¸i membrului drept. Pentru a obt¸ine grafice de fază vom reprezenta pe y2(t)<br />

în funct¸ie de y1(t). Este sugestiv să reprezentăm pe acelas¸i grafic s¸i câmpul de vectori<br />

cu quiver. Săget¸ile generate de quiver au direct¸ia gradientului [y2,−siny1]<br />

s¸i lungimea proport¸ională cu norma euclidiană a acestui vector. Imaginea obt¸inută<br />

apare în figura 6.2.<br />

[y1,y2] = meshgrid(-5:0.5:5,-3:0.5:3);<br />

Dy1Dt = y2; Dy2Dt = -sin(y1);<br />

quiver(y1,y2,Dy1Dt,Dy2Dt)<br />

hold on<br />

plot(ya(:,1),ya(:,2),yb(:,1),yb(:,2),yc(:,1),yc(:,2))<br />

axis equal, axis([-5,5,-3,3])<br />

xlabel y_1(t), ylabel y_2(t), hold off

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

Saved successfully!

Ooh no, something went wrong!