|
|
Hlavní stránka
Přehled kapitol
1. Krátké představení Octave
2. Práce s programem
3. Datové typy
4. Číselné datové typy
5. Řetězce
6. Datové struktury
7. Datové kontejnery
8. Proměnné
9. Výrazy
10. Vyhodnocení
11. Příkazy
12. Funkce a skriptovací
soubory
13. Vstup a výstup
14. Vykreslování
15. Práce s maticemi
16. Aritmetika
17. Lineární algebra
18. Nelineární rovnice
19. Kvadratura
20. Diferenciální rovnice
20.1 Běžné diferenc. rce
20.2 Algebr.-difer. rce
21. Práce s polynomy
22. Teorie řízení
|
|
20.2 Algebraicko-diferenciální rovnice
Funkce daspk může být použita pro řešení DAR (Algebraicko-diferenciálních rovnic)
ve tvaru
0 = f (x-dot, x, t),
x(t=0) = x_0, x-dot(t=0) = x-dot_0
pomocí Petzoldova DAR řešitele Daspk.
Funkce: [x, xdot, istate, msg] = daspk (fcn, x_0, xdot_0, t, t_crit)
Řeší soustavu algebraicko-diferenciálních rovnic
0 = f (x, xdot, t)
s
x(t_0) = x_0, xdot(t_0) = xdot_0
Řešení se vrací v matici x a xdot, s každým řádkem ve výsledku matice odpovídající
jednomu z prvků vektoru t. První prvek t by měl být t_0 a odpovídat počátečnímu
stavu systému x_0 a jeho derivace xdot_0, tak že první řádek výstupu x je x_0 a
první řádek výstupu xdot je xdot_0.
První argument, fcn, je řetězec, který definuje funkce, které se volají k počítání
vektoru. Funkce musím mít tvar
res = f (x, xdot, t)
kde x, xdot a res jsou vektory a t je skalár.
Pokud je fcn dvou prvkové řetězcové pole, první prvek definuje funkci f popsanou
výše, druhý prvek eefinuje funkce k počítání modifikovaného Jakobiánu.
df df
jac = -- + c ------
dx d xdot
Funkce modifikovaného Jakobiánu musí mít tvar
jac = j (x, xdot, t, c)
Druhý a třetí argument daspk určují počáteční podmínky stavů a jejich derivací
a čtvrtý argument určuje vektor výstupu v čase.
Po úspěšném spočítání, hodnota istate bude větší než nula.
Pokud počítání nebylo úspěšné istate bude menší než nula a msg bude obsahovat
přídavnou zprávu.
Funkce: daspk_options (opt, val)
Pokud je volána se dvěma argumenty, tak tato funkce povoluje nastavit možnosti
parametrů pro funkci daspk. Je-li dán 1 argument vrátí hodnotu odpovídající
možnosti. Pokud není žádný argument, jména všech dostupných možností a jejich
konkrétní hodnoty jsou vypsány.
Možnosti:
"absolute tolerance"
Absolutní přesnost. Může být vektor nebo skalár. Je-li vektor, musí sedět
dimenze s uvedeným vektorem a relativní tolerance musí také být vektor
stejné délky
"relative tolerance"
Relativní přesnost. Může být vektor nebo skalár. Je-li vektor, musí sedět
dimenze s uvedeným vektorem a absolutní tolerance musí také být vektor
stejné délky
"compute consistent initial condition"
"use initial condition heuristics"
"initial condition heuristics"
"print initial condition info"
"exclude algebraic variables from error test"
"algebraic variables"
"enforce inequality constraints"
"inequality constraint types"
"initial step size"
"maximum order"
"maximum step size"
Funkce:
[x, xdot, t_out, istat, msg] = dasrt (fcn [, g], x_0, xdot_0, t [, t_crit])
Řeší soustavu algebraicko-diferenciálních rovnic
0 = f (x, xdot, t)
s
x(t_0) = x_0, xdot(t_0) = xdot_0
Řešení se vrací v matici x a xdot, s každým řádkem ve výsledku matice odpovídající
jednomu z prvků vektoru t. První prvek t by měl být t_0 a odpovídat počátečnímu
stavu systému x_0 a jeho derivace xdot_0, tak že první řádek výstupu x je x_0 a
první řádek výstupu xdot je xdot_0.
Vektor t poskytuje horní mez délky integrace. Pokud se setká se zastavující
podmínkou, vektor t_out bude kratší než t a konečný prvek t_out bude bod, ve
kterém se potkala zastavující podmínka a nemusí odpovídat žádnému prvku
vektoru t.
První argument, fcn, je řetězec, který definuje funkce, které se volají k počítání
vektoru. Funkce musím mít tvar
res = f (x, xdot, t)
kde x, xdot a res jsou vektory a t je skalár.
Pokud je fcn dvou prvkové řetězcové pole, první prvek definuje funkci f popsanou
výše, druhý prvek definuje funkce k počítání modifikovaného Jakobiánu.
df df
jac = -- + c ------
dx d xdot
Funkce modifikovaného Jakobiánu musí mít tvar
jac = j (x, xdot, t, c)
Nepovinný druhý argument definuje funkci, která definuje omezovací funkce,
jejíž kořeny jsou vyžadovány během integrace. Tato funkce musí mít tvar:
g_out = g (x, t)
a vrací vektor hodnot omezovací funkce. Pokud hodnota kterékoli omezovací
funkce změní znaménko, Dasrt se pokusí zastavit integraci na místě, kde se
toto znaménko mění.
Pokud je jméno omezovací funkce vynecháno, dasrt řeší stejný problém jako
daspk nebo dassl.
Po úspěšném spočítání hodnota istate bude větší než nula.
Pokud počítání nebylo úspěšné istate bude menší než nula a msg bude obsahovat
přídavnou zprávu.
Funkce: dasrt_options (opt, val)
Pokud je volána se dvěma argumenty, tak tato funkce povoluje nastavit možnosti
parametrů pro funkci daspk. Je-li dán 1 argument vrátí hodnotu odpovídající
možnosti. Pokud není žádný argument, jména všech dostupných možností a jejich
konkrétní hodnoty jsou vypsány.
Možnosti:
"absolute tolerance"
Absolutní přesnost. Může být vektor nebo skalár. Je-li vektor, musí sedět
dimenze s uvedeným vektorem a relativní tolerance musí také být vektor
stejné délky
"relative tolerance"
Relativní přesnost. Může být vektor nebo skalár. Je-li vektor, musí sedět
dimenze s uvedeným vektorem a absolutní tolerance musí také být vektor
stejné délky
"initial step size"
"maximum order"
"maximum step size"
"step limit"
|
|