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.

6.5. Tratarea evenimentelor 147<br />

1.4<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

2<br />

1.5<br />

1<br />

timp<br />

0.5<br />

0<br />

0<br />

0.2<br />

0.4<br />

spat¸iu<br />

Figura 6.9: Exemplu stiff, cu informat¸ii despre jacobian<br />

gravitat¸ionale a unui corp mult mai greu. Care este perioada orbitei? Facilitatea de<br />

prelucrare a evenimentelor a rezolvitorilor din MATLAB furnizează răspunsuri la<br />

astfel de întrebări.<br />

Detect¸ia evenimentelor în MATLAB presupune două funct¸ii f(t,y) s¸i g(t,y) s¸i<br />

o condit¸ie init¸ială (t0,y0). Problema este de a găsi o funct¸ie y(t) s¸i o valoare finală<br />

t∗ astfel încât<br />

s¸i<br />

y ′ = f(t,y)<br />

y(t0) = y0<br />

g(t∗,y(t∗)) = 0.<br />

Un model simplu al unui corp în cădere este<br />

y ′′ = −1+y ′2 ,<br />

cu o condit¸ie init¸ială care dă valori pentru y(0) s¸i y ′ (0). Problema este pentru ce<br />

valori a lui t avem y(t) = 0? Codul pentru funct¸iaf(t,y) este<br />

function ydot=f(t,y)<br />

ydot = [y(2); -1+y(2)ˆ2];<br />

0.6<br />

0.8<br />

1

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

Saved successfully!

Ooh no, something went wrong!