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 145<br />

unde A este o matrice N ×N s¸i v este un vector N ×1 cu<br />

⎡ ⎤ ⎡<br />

0 1 −2 1<br />

⎢<br />

⎢−1<br />

0 1 ⎥ ⎢<br />

⎥ ⎢ 1 −2 1<br />

⎢<br />

A = r1<br />

⎢ . .. . .. . ..<br />

⎥ ⎢<br />

⎥<br />

⎢ ⎥+r2<br />

⎢ . .. . ..<br />

⎢<br />

⎢<br />

⎣<br />

. .. . ..<br />

⎥ ⎢<br />

1⎦<br />

⎣<br />

. ..<br />

−1 0<br />

⎤<br />

⎥<br />

. ..<br />

⎥<br />

⎥,<br />

. ..<br />

⎥<br />

1 ⎦<br />

1 −2<br />

v = [r1 −r2,0,...,0,r1 +r2] T , r1 = −a/(2∆x) s¸i r2 = b/∆x 2 . Aici a, b s¸i ∆x<br />

sunt parametrii cu valorilea = 1,b = 5×10 −2 s¸i∆x = 1/(N +1). Acest sistem de<br />

ecuat¸ii diferent¸iale ordinare apare la semidiscretizarea prin metoda liniilor a ecuat¸iei<br />

cu derivate part¸iale<br />

∂ ∂ ∂2<br />

u(x,t)+a u(x,t) = b<br />

∂t ∂x ∂x2u(x,t)+u(x,t)(1−u(x,t)), 0 ≤ x ≤ 1,<br />

cu condit¸iile pe frontieră de tip Dirichlet u(0,t) = u(1,t) = 1. Această ecuat¸ie<br />

cu derivate part¸iale poate fi rezolvată s¸i direct cu pdepe. Componenta yj(t) a<br />

sistemului de ecuat¸ii diferent¸iale ordinare aproximează u(j∆x,t). Presupunem că<br />

ecuat¸ia cu derivate part¸iale verifică condit¸iile u(x,0) = (1 + cos2πx)/2, pentru<br />

care se poate arăta că u(x,t) tinde către starea de echilibru u(x,t) ≡ 1 când<br />

t → ∞. Condit¸ia init¸ială corespunzătoare pentru ecuat¸ia diferent¸ială ordinară este<br />

(y0)j = (1+cos(2πj/(N +1)))/2. Jacobianul pentru ecuat¸ia diferent¸ială ordinară<br />

are forma A + I − 2diag(y(t)), unde I este matricea identică. Sursa MATLAB 6.2<br />

cont¸ine o funct¸ie care implementează s¸i rezolvă sistemul (6.4.2) utilizând ode15s.<br />

Utilizarea subfunct¸iilor s¸i a tipurilor function handle face posibil ca întreg codul să fie<br />

cont¸inut într-un singur fis¸ier, numit rcd.m. S-a luat N = 40 s¸it ∈ [0,2]. Subfunct¸ia<br />

jacobian evaluează jacobianul, jpattern dă s¸ablonul de raritate al jacobianului<br />

sub forma unei matrice rare cu elemente 0 s¸i 1 s¸i f codifică membrul drept al<br />

ecuat¸iei diferent¸iale. A j-a coloană a matricei de ies¸ire y cont¸ine aproximarea lui<br />

yj(t); matricea U a fost creată adăugând o coloană de 1 la fiecare capăt al lui y, conform<br />

condit¸iilor pe frontieră pentru ecuat¸ia cu derivate part¸iale. Graficul produs de<br />

rcd apare în figura 6.9.<br />

6.5. Tratarea evenimentelor<br />

În multe situat¸ii, determinarea ultimei valori tfinal a lui tspan este un aspect<br />

important al problemei. Un exemplu este căderea unui corp asupra căruia act¸ionează<br />

fort¸a gravitat¸ională s¸i rezistent¸a aerului. Când atinge el pământul? Un alt exemplu<br />

este problema celor două corpuri, adică determinarea orbitei unui corp supus atract¸iei

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

Saved successfully!

Ooh no, something went wrong!