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