|
|
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
21. Práce s polynomy
22. Teorie řízení
|
|
10. Vyhodnocení
Normálně se výrazy vyhodnocují jednoduše napsáním na příkazový řádek Octave
nebo požádáním Octave, aby zpracoval příkazy, které máte uloženy v souboru.
Někdy může být nezbytné vyhodnotit výraz, který byl počítán a uložen v řetězci
nebo použít řetězec jako jméno funkce k zavolání.
Zabudovaná funkce: eval (try, catch)
Rozdělí řetězec try a vyhodnotí jej jako by to byl Octave program. Pokud
selže vyhodnotí řetězec catch. Řetězec try je vyhodnocen v původním kontextu,
takže jakýkoli výsledek zůstane dostupný po návratu funkce eval.
Zabudovaná funkce: feval (name, ...)
Vyhodnotí funkci jménem name. Jakýkoli argument, který následuje po prvním
je předán jménu funkce. Například:
zavolá funkci acos s argumentem "-1".
Funkce feval je potřebná k tomu, aby bylo možné psát funkce, které volají
uživatelem zadané funkce, protože Octave nemá možnost deklarovat
ukazatele na funkce jako jazyk C nebo deklarovat speciální druh proměnné,
která by mohla být použita k udržení jména funkce. Místo toho se musíte na
funkce odvolávat jménem a použít feval k jejich zavolání.
Zde je jednoduchá funkce používající feval, která najde kořen uživatelem
zadané funkce jedné proměnné pomocí Newtonovy metody.
function result = newtroot (fname, x)
# usage: newtroot (fname, x)
#
# fname : a string naming a function f(x).
# x : initial guess
delta = tol = sqrt (eps);
maxit = 200;
fx = feval (fname, x);
for i = 1:maxit
if (abs (fx) < tol)
result = x;
return;
else
fx_new = feval (fname, x + delta);
deriv = (fx_new - fx) / delta;
x = x - fx / deriv;
fx = fx_new;
endif
endfor
result = x;
endfunction
|
|