Největší zmatek vnáší do mysli víra v to, v co se nám chce věřit, navzdory tomu, co vidíme.
-- Bossnet



Hlavní strana
Novinky
Výuka
Projekty
Lidé
Jiné
Kontakt


 

Diskuzní fórum
Pískoviště
Poslední změny
Registrace
Etický kodex
Nápověda
Administrace
Hlášení chyb







  © 1999-2008 HEAT


JSPWiki v2.4.104
Verze k tisku
This is version 9. It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]
   Začínáme s Mathematica-ou ... díl 7.

Něco více o funkcích

Než přistoupíme k některým možnostem syntaxe zadávání funkcí, seznámíme se s několika užitečnými instrukcemi; bude to především příkaz Clear[function] a syntaxe logických výrazů.

Příkaz Clear[symbol] vymaže definici symbolu. Tak jako jsou při výpočtech číslovány vstupy a výstupy a je možno je možno je /pomocí nám již známé syntaxe užívající %/ používat, mohlo by se stát, že jsme například před hodinou při práci s jiným programem v M. zadefinvali nějakou funkci /nebo výraz/ pod stejným jménem, což by mohlo vést k omylům a chybám. Doporučujeme tedy před zadefinováním nové funkce použít příkaz Clear. Použití tohoto příkazu ukážeme na příkladě.

     Math7/index_gr_1.gif
     Math7/index_gr_2.gif
     Math7/index_gr_3.gif

Z didaktických důvodů jsme použili při tisku označení nezávisle proměnné písmeno t a nikoli x; pro námi zadefinovanou funkci není podstatné, jaká je hodnota proměnné x kdesi jinde v programu -pokud se tam vůbec proměnná takto označená vyskytuje-, ale hodnota argumentu v hranatých závorkách. Zde je zřejmý důvod, proč v definicici funkce jsou její nezávisle proměnné označené podtržítkem; za hodnotu proměnné např. x v definici funkce označené x_ se dosazuje při vyčíslování hodnoty funkce číslo uvedené v argumentu funkce, za hodnoty proměnných, které nejsou při definování funkce podtržítkem označeny se berou hodnoty stejně označených proměnných odjinud z programu.

Například:

     Math7/index_gr_4.gif

-ujišťujeme se, že žádná funkce označená písmenem g nemůže kolidovat s námi zamýšlenou funkcí

     Math7/index_gr_5.gif

-definujeme konstantu a, kterou využijeme v definici funkce g

     Math7/index_gr_6.gif

- odpověď M. na definici konstanty a

     Math7/index_gr_7.gif

- definujeme funkci g; nezávisle proměnná je x, neboť je na levé straně definice označena podtržítkem; konstanta a je brána jako globální, předtím v programu určený - definovaný či vypočtený - objekt takového typu, že jej lze dosadit do pravé strany definice funkce g / v tomto případě -obecně komplexní- číslo/.

     Math7/index_gr_8.gif
     Math7/index_gr_9.gif
     Math7/index_gr_10.gif

Při tisku se pro výpočet hodnot dosazuje za a v definici funkce výše v programu zadefinovaná hodnota konstanty a a do pravé strany definice funkce se dosazují za nezávisle proměnnou v této definici označenou x hodnoty proměnné z, přičemž tato proměnná z probíhá interval <-a; a>.

Co se stane, když použijeme na místě globální proměnné v definici funkce proměnnou, která nebyla definována si ukážeme opět na příkladu.

     Math7/index_gr_11.gif

- mažeme předchozí /eventuální/ definice symbolu g

     Math7/index_gr_12.gif

- mažeme předchozí /eventuální/ definice symbolu a

     Math7/index_gr_13.gif

- definujeme funkci g

     Math7/index_gr_14.gif
     Math7/index_gr_15.gif
     Math7/index_gr_16.gif
     Math7/index_gr_17.gif
     Math7/index_gr_18.gif
     Math7/index_gr_19.gif
     Math7/index_gr_20.gif

A dostáváme rozličná chybová hlášení - M. nemůže za a nic dosadit; narozdíl od některých jiných SW M. nedosazuje za nedefinované symboly nulu.

Zkusme jiný příklad; proměnná a bude definována až při vlastním tisku:

     Math7/index_gr_21.gif
     Math7/index_gr_22.gif
     Math7/index_gr_23.gif
     Math7/index_gr_24.gif
     Math7/index_gr_25.gif

Otázka pro zvídavého čtenáře: jakou funkci jsme vlastně vytiskli?

Pokud jste tuhle otázku zodpověděli správně /přesvědčit se můžete například tím, že vytisknete svoji odpověď a porovnáte ji s daným grafem/, máte v pojmech "argument funkce", nezávisle proměnná", globální konstanta" jasno a můžeme postoupit dále.

Obzvláště v technické praxi nevystačíme obvykle s elementárními funkcemi, ale potřebujeme zadefinovat funkci pomocí různých předpisů na různých intervalech, nebo v závislosti na nějaké podmínce. Syntaxe je následující:

funkce[nezávisleproměnná_]:=výraz1/;podmínka1

funkce[nezávisleproměnná_]:=výraz2/;podmínka2

a tak dále., za poslední podmínkou je středník. A opět příklad přímo z M.:

     Math7/index_gr_27.gif
     Math7/index_gr_28.gif
     Math7/index_gr_29.gif

Podmínka i funkce mohou ovšem obsahovat i globální proměnnou:

     Math7/index_gr_30.gif
     Math7/index_gr_31.gif
     Math7/index_gr_32.gif
     Math7/index_gr_33.gif
     Math7/index_gr_34.gif

Všimněme si nyní toho, že funkce g je zadefinovaná pro jakýkoli reálný argument; právě jedna ze dvou uvedených podmánek má hodnotu True. Pro takové situace lze s výhodou použít příkaz If.

     Math7/index_gr_35.gif
     Math7/index_gr_36.gif

Příkaz If[podmínka,výstup1,výstup2] znamená, že v případě, že má podmínka hodnotu True je výstupem výstup1 a v případě, že má podmínka hodnotu False výstup2. Definice funkce g pak vypadá následovně:

     Math7/index_gr_37.gif

A Abychom se přesvědčili, že jde o "tutéž" funkci, provedeme stejný tisk:

     Math7/index_gr_38.gif
     Math7/index_gr_39.gif
     Math7/index_gr_40.gif

V technické praxi se často vyskytne potřeba komplikovanějších podmínek. Protože podmínka sama je výraz typu boolean, uvedeme zde nějaké operace s objekty tohoto typu. Připomeňme, že výraz typu boolean nabývá nejvýše dvou hodnot a to True a False.

7.notebook(info)

Přílohy

index_gr_1.gif Info on index_gr_1.gif 733 bytes
index_gr_10.gif Info on index_gr_10.gif 215 bytes
index_gr_11.gif Info on index_gr_11.gif 205 bytes
index_gr_12.gif Info on index_gr_12.gif 203 bytes
index_gr_13.gif Info on index_gr_13.gif 237 bytes
index_gr_14.gif Info on index_gr_14.gif 324 bytes
index_gr_15.gif Info on index_gr_15.gif 486 bytes
index_gr_16.gif Info on index_gr_16.gif 518 bytes
index_gr_17.gif Info on index_gr_17.gif 521 bytes
index_gr_18.gif Info on index_gr_18.gif 687 bytes
index_gr_19.gif Info on index_gr_19.gif 813 bytes
index_gr_2.gif Info on index_gr_2.gif 1015 bytes
index_gr_20.gif Info on index_gr_20.gif 226 bytes
index_gr_21.gif Info on index_gr_21.gif 211 bytes
index_gr_22.gif Info on index_gr_22.gif 212 bytes
index_gr_23.gif Info on index_gr_23.gif 242 bytes
index_gr_24.gif Info on index_gr_24.gif 354 bytes
index_gr_25.gif Info on index_gr_25.gif 1003 bytes
index_gr_27.gif Info on index_gr_27.gif 936 bytes
index_gr_28.gif Info on index_gr_28.gif 1391 bytes
index_gr_29.gif Info on index_gr_29.gif 224 bytes
index_gr_3.gif Info on index_gr_3.gif 217 bytes
index_gr_30.gif Info on index_gr_30.gif 210 bytes
index_gr_31.gif Info on index_gr_31.gif 214 bytes
index_gr_32.gif Info on index_gr_32.gif 767 bytes
index_gr_33.gif Info on index_gr_33.gif 1038 bytes
index_gr_34.gif Info on index_gr_34.gif 228 bytes
index_gr_35.gif Info on index_gr_35.gif 150 bytes
index_gr_36.gif Info on index_gr_36.gif 1309 bytes
index_gr_37.gif Info on index_gr_37.gif 448 bytes
index_gr_38.gif Info on index_gr_38.gif 328 bytes
index_gr_39.gif Info on index_gr_39.gif 1038 bytes
index_gr_4.gif Info on index_gr_4.gif 206 bytes
index_gr_40.gif Info on index_gr_40.gif 227 bytes
index_gr_5.gif Info on index_gr_5.gif 140 bytes
index_gr_6.gif Info on index_gr_6.gif 120 bytes
index_gr_7.gif Info on index_gr_7.gif 474 bytes
index_gr_8.gif Info on index_gr_8.gif 316 bytes
index_gr_9.gif Info on index_gr_9.gif 1340 bytes
zacmath7.nb Info on zacmath7.nb 63906 bytes
Více informací... Přihlášení
This particular version was published on 16:22 23.09.2005 by jirka.