22
Diferencijalne jednadžbe u MATLAB-u i R-u Andrej Jokić, Mario Essert, Tihomir Žilić, Vladimir Milić Računalna matematika FSB Svibanj 2012. NAPOMENA: Ova prezentacija dodatak je sadržaju pripadajučih “.m” i “.r” datoteka.

Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

  • Upload
    votuyen

  • View
    244

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 2: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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).

Page 3: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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 )

Page 4: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 5: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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)

Page 6: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 7: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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,....

Page 8: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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)

Page 9: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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)

Page 10: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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

Page 11: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

Numeričko rješenjeMetode više koraka

Koriste se informacijama o nekoliko prethodnih točaka za procjenuyk .

Popularne metode: Adams-Bashoforth Adams-Moulton

Page 12: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 13: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

Kruti sustavi (stiff systems)

Page 14: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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

)

Page 15: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 16: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 17: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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.

Page 18: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

MATLABskup naradbi “ode”

Page 19: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

MATLABskup naradbi “ode”

Page 20: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

Primjer 3Dinamika manipulatora

Zadatak: simulirajte putanju glave pisača m2 za zadani moment T (t) i silu F (t)

Page 21: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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

Page 22: Diferencijalne jednad be - u MATLAB-u i R-u - FSB … · Diferencijalne jednadžbe uMATLAB-uiR-u AndrejJokić,MarioEssert,TihomirŽilić,VladimirMilić Računalnamatematika FSB Svibanj2012

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