diferencijalne jednad be - u matlab-u i r-u - fsb … · diferencijalne jednadžbe umatlab-uir-u...
TRANSCRIPT
![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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022013117/5b9f087c09d3f26e288c3960/html5/thumbnails/22.jpg)
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