| At line 1 changed 1 line. |
| [{ColorTitle |
| [{ALLOW view All}] |
| [{ALLOW edit,upload Trusted}] |
| [{ColorTitle bgcolor='#F6931B' |
| At line 7 added 3 lines. |
| %%(text-align: right) |
| [Předchozí|Math5] [Další|Math7] [Obsah|Math]%% |
|
| At line 75 added 39 lines. |
|
| O poslední při příkazy zůstanete ochuzeni; poslední je systémový a podle mého názoru neužitečný... koneckonců umíte používat help, ne? |
|
| Zastavme se ještě u příkazu NDSolve. Už víme, nebo tušíme, že to bude příkaz k řešení /Solve/ diferenciálních /D/ rovnic a toto řešení bude numerické /N/. |
|
| /Analyticky řešitelných diferenciálních rovnic je nejvýše alef jedna, celkem je diferenciálních -rozuměj obyčejných diferenciálních rovnic konečného řádu- alef dva. Tedy téměř žádné diferenciální rovnice nejsou analyticky řešitelné; příkaz NDSolve nám pomůže se řešení přiblížit./ |
|
| __WARNING:__ Jde o __numeriku__; řešení samo existovat nemusí /podaří-li se vám zadat pravou stranu jako nespojitou funkci ve více než konečném počtu bodů/, nemusí být jediné /nesplníte-li Lipschitzovu podmínku/; přesto vám numerické metody nějaké řešení obvykle nabídnou. S řešením dané rovnice toto řešení nemusí mít nic společného. Mathematica je inteligentní systém; potřebu inteligence uživatele však eliminovat neumí. |
|
| Takže pro začátek zkusíme rovnici u níž řešení známe. A zároveň si napíšeme "prográmek" v Mathematice. |
|
| [{nbsp count='5'}][Math6/index_gr_23.gif] |
|
| __rovnice__ je samotná diferenciální rovnice, __podminka__ je její okrajová podmínka. |
|
| Protože budeme chtít výsledek vytisknout přes celý obor řešení, tento obor si zadefinujeme. |
|
| [{nbsp count='5'}][Math6/index_gr_24.gif]\\ |
| [{nbsp count='5'}][Math6/index_gr_25.gif]\\ |
| [{nbsp count='5'}][Math6/index_gr_26.gif] |
|
| Příkaz NDSolve vytvoří interpolační funkci; ta má strukturu datovou a nelze s ní jednoduše pracovat. Proto příkazem |
|
| [{nbsp count='5'}][Math6/index_gr_27.gif]\\ |
| [{nbsp count='5'}][Math6/index_gr_28.gif] |
|
| vytvoříme "tisknutelnou" funkci. Příkaz __Evaluate[[oborreseni]__ |
|
| způsobí, že příkaz __Plot__ dosadí za objekt __oborreseni__ hodnotu {x,0,5}. |
|
| Pokud je vám tento prográmek jasný, je vše v pořádku. Pokud ne, zkuste si projít a provést jednotlivé příkazy postupně, bez středníků, abyste viděli výsledky. pokud chcete "vidět" proměnnou definovanou pomocí __SetDelayed__, jednoduše si ji necháte zobrazit vypsáním jejího označení na další řádek a vyhodnocením onoho řádku: |
|
| [{nbsp count='5'}][Math6/index_gr_29.gif]\\ |
| [{nbsp count='5'}][Math6/index_gr_30.gif]\\ |
| [{nbsp count='5'}][Math6/index_gr_31.gif] |
|
| Takto později budete tvořit programy: nejprve řádek po řádku s vypisováním výsledků, poté rušení jinak zbytečných výpisů a sdružování příkazů do větších celků. |
|
| [6.notebook|Math6/zacmath6.nb] |