Upload
votuyen
View
244
Download
0
Embed Size (px)
Citation preview
Diferencijalne jednadžbeu MATLAB-u i R-u
Andrej Jokić, Mario Essert, Tihomir Žilić, Vladimir Milić
Računalna matematikaFSB
Svibanj 2012.
NAPOMENA: Ova prezentacija dodatak je sadržajupripadajučih “.m” i “.r” datoteka.
Uvod
Inicijalni problemi
dx(t)
dt = f (t, x(t)) x(t) ∈ Rn, t ∈ R+ (1)
x(0) = x0
Jednadžbe i sustavi jednadžbi višeg reda svode se na sustavjednadžbi prvog reda (1).
Primjer 1Slobodan pad
Model (jednadžba gibanja)
dvdt = g − cd
m v2
cd=koeficijent otpora zrakaAnalitičko rješenje (za v(0) = 0)
v(t) =
√g mcd
tanh(√g cd
m t)
Numeričko rješenje, npr.:
dvdt ≈
∆v∆t =
v(ti+1)− v(ti )
ti+1 − ti
v(ti+1) = v(ti )+[g−cdm v(ti )
2](ti+1−ti )
Primjer 2
Zadano: diferencijalna jednadžba trećeg reda:...y + 6y + 12y + 5y = u(t)
y(0) = 1, y(0) = −1, y(0) = 0
Traži se: ekvivalentna diferencijalna jednadžba prvog reda.
Primjer 2
...y + 6y + 12y + 5y = u
y(0) = 1, y(0) = −1, y(0) = 0
gdje je
u(t) :=
{0 za t < 51 za t ≥ 5
(2)
Numeričko rješenje
Diferencijalna jednadžba, incijalni problem
dx(t)
dt = f (t, x(t)) x(t) ∈ Rn, t ∈ R+
x(0) = x0
Numeričko rješenjeNalaženje aproksimacije
xk ≈ x(tk) = x(0 + kh), k = 1, 2, . . .
za neku unaprijed (ili u tijeku postupka) određenu vrijednostkoraka h.
Numeričko rješenje
Jednostavni postupci: procjena integrala
xk+1 = xk +
∫ xk+1
xkxdt = xk +
∫ xk+1
xkf (t, x)dt (3)
zamjenom nepoznate funkcije x(t) nekim njenim modelom,koisteći se dosad izračunatim vrijednostima i početnim uvjetom.
Lokalna pogrška: pogreška koju činimo pri jednom koraku u (3).Globalna pogreška: ukupna pogreška aproksimacije {yk}k=1,2,....
Numeričko rješenjeMetode jednog koraka
Kod metoda jednog koraka: procjena integrala iz (3) (prethodnastranica) koristi se samo posljednja vrijednost xk i razvoj f (t, x) uTaylorov red.
Eulerova metoda prvog reda:
xk+1 = xk + hf (tk , xk) (4)
Numeričko rješenjeMetode jednog koraka
Kruge-Kutta 4. reda:
s1 = h f (xk , yk)
s2 = h f (xk +h2 , yk +
s12 )
s3 = h f (xk +h2 , yk +
s22 )
s4 = h f (xk + h, yk + s3)
yk+1 = yk +16(s1 + 2s2 + 2s3 + s4)
Numeričko rješenjeMetode jednog koraka
Adaptivni algoritmi: sami biraju veličinu koraka, ovisno oprocijenjenoj pogrešci.Za ilustraciju (Runge-Kutta-Fehlbberg RKF): neka je yk procjenam-tog reda, a zk procjena m + 1 reda. Tada njihova razlika dajeprocjenu pogrške u yk .RKF 4. i 5. reda:
s1 = h f (xk , yk )
s2 = h f (xk +h4
, yk +s1
4)
s3 = h f (xk +38
h, yk +332
s1 +932
s2)
s4 = h f (xk +1213
h, yk +19322197
s1 −72002917
s2 +72962917
s3)
s5 = h f (xk + h, yk +439216
s1 − 8s2 +3680513
s3 −8454104
s4)
s6 = h f (xk +h2
, yk −827
s1 + 2s2 −35442565
s3 +18594104
s4 −1140
s5)
yk+1 = yk +25216
s1 +14082565
s3 +21974104
s4 −15
s5, zk+1 = yk +16135
s1 +665612825
s3 +2856156430
s4 −950
s5 +255
s6
Numeričko rješenjeMetode više koraka
Koriste se informacijama o nekoliko prethodnih točaka za procjenuyk .
Popularne metode: Adams-Bashoforth Adams-Moulton
Kruti sustavi (stiff systems)
Za diferencijalnu jednadžbu kažemo da je kruta, ako malaperturbacija početnih uvjeta dovede do velike perturbacije urješsenju problema.
Za ovakve sustave pojedine numetičke metode su numeričkinestabilne (ako se korak integracije ne uzme izuzetno malen).Općenito: ovakve diferencijalne jednadžbe sadrže članove kojimogu izazvati velike devijacije u rješenju.
Kruti sustav ima neke komponente koje se brzo mijenjaju i drugekoje se sporo mijenjaju. Iako tranzijente pojave (brze komponente)imaju veći utjecaj u samo kratkim intervalima, (kod nekih metoda)one mogu “diktirati” korak integracije za cijeli interval.
Kruti sustavi (stiff systems)
Kruti sustavPrimjer
Promotrimo linearnu diferencijalnu jednadžbu drugog reda
mx + cx + kx = 0
uz početje uvjete x(0) = x0, x(0) = 0.Za m = 1, c = 1001, k = 1000, ekvivalentan sustav prvog reda:
x = Ax , A =
[0 1
−1000 −1001
]
Svojstvene vrijednosti matrice A su λ1 = −1000, λ2 = −1.
Rješenje: x(t) = x0(− 1
999e−1000t + 1000999 e−t
)
MATLABskup naradbi “ode”
Solvers intended to solve nonstiff systems:ode45 is based on an explicit Runge-Kutta (4,5) formula, theDormand-Prince pair. It is a one-step solver Ű in computingy(tn), it needs only the solution at the immediately precedingtime point, y(tn-1). In general, ode45 is the best function toapply as a first try for most problems.ode23 is an implementation of an explicit Runge-Kutta (2,3)pair of Bogacki and Shampine. It may be more efficient thanode45 at crude tolerances and in the presence of moderatestiffness. Like ode45, ode23 is a one-step solver.ode113 is a variable order Adams-Bashforth-Moulton PECEsolver. It may be more efficient than ode45 at stringenttolerances and when the ODE file function is particularlyexpensive to evaluate. ode113 is a multistep solver Ů itnormally needs the solutions at several preceding time pointsto compute the current solution.
MATLABskup naradbi “ode”
Stiff system solvers:
ode15s is a variable order solver based on the numericaldifferentiation formulas (NDFs). Optionally, it uses thebackward differentiation formulas (BDFs, also known asGear’s method) that are usually less efficient. Like ode113,ode15s is a multistep solver. Try ode15s when ode45 fails, oris very inefficient, and you suspect that the problem is stiff, orwhen solving a differential-algebraic problem.ode23s is based on a modified Rosenbrock formula of order 2.Because it is a one-step solver, it may be more efficient thanode15s at crude tolerances. It can solve some kinds of stiffproblems for which ode15s is not effective.
MATLABskup naradbi “ode”
Stiff system solvers:ode23t is an implementation of the trapezoidal rule using a"free" interpolant. Use this solver if the problem is onlymoderately stiff and you need a solution without numericaldamping. ode23t can solve DAEs.ode23tb is an implementation of TR-BDF2, an implicitRunge-Kutta formula with a first stage that is a trapezoidalrule step and a second stage that is a backward differentiationformula of order two. By construction, the same iterationmatrix is used in evaluating both stages. Like ode23s, thissolver may be more efficient than ode15s at crude tolerances.
MATLABskup naradbi “ode”
MATLABskup naradbi “ode”
Primjer 3Dinamika manipulatora
Zadatak: simulirajte putanju glave pisača m2 za zadani moment T (t) i silu F (t)
Problemi rubnih uvjeta
Model (jednadžba gibanja)
dvdt = g − cd
m v2
dxdt = v
Incijalni problem, zadano:
x(0) = x0, v(0) = v0
Rubni problem, zadano:
x(0) = x0, x(tf ) = xf
Problemi rubnih uvjeta
d2ydx2 = f (x , y , dy
dx ), y(x = 0) = y0, y(x = L) = yL
Iako se problemi rubnih uvjeta mogu odnositi na rubne uvjete uvrmenu, ovakvi problemi se češće u primjeni pojavljuju sa rubnimuvjetima zadanim u prostoru (prostorne varijable su nezavisne).Neke od metode rješavanja problema rubnih uvjeta su
Metode gađanjaMetode konačnih razlikaMetode konačnih elemenata