Tabulkové procesory se staly hned po svém vzniku jedn╪mi z nejpouºívan╪jτích programà pro PC, a to vτemi kategoriemi uºivatelà - od laikà aº po profesionály. Dàvod je nasnad╪. Jde o naprosto p²irozen∞ zpàsob zobrazení dat a práce s daty.
Excelentní matematika aneb Mathematica v Excelu
Tak jak se postupn╪ rozτi²oval okruh uºivatelà tabulkov∞ch procesorà do oblasti odborníkà a specialistà, rostly i nároky na schopnosti programu. Dnes jiº není problém provád╪t ve v╪tτin╪ tabulkov∞ch procesorà základní matematické, statistické a finanƒní v∞poƒty, pracovat s grafy a pomocí maker vytvá²et jednoduττí "programy".
Vzhledem k vτeobecnému zam╪²ení tabulkov∞ch procesorà jsou jejich moºnosti samoz²ejm╪ ohraniƒené. Aby vτak nebyli specialisté ochuzeni o vyuºití jejich schopností i pro dalτí úƒelové aplikace, obsahují n╪které z nich otev²ená rozhraní, která umoºσují p²ipojení rozτi²ovacích modulà, které pak mohou dát p²ísluτnému uºivateli celou plejádu dalτích moºností.
Jedním z nejrozτí²en╪jτích tabulkov∞ch procesorà je v souƒasné dob╪ (z mnoha ràzn∞ch p²íƒin) program Excel firmy Microsoft. Díky strategické koncepci - provázanosti vτech programà firmy Microsoft, vazb╪ na ostatní prvky systému Windows, podpo²e pro technologii COM a spolupráci s objekty Visual Basicu - je p²edním p²edstavitelem této t²ídy programà.
A práv╪ pro tento tabulkov∞ procesor je urƒen program Mathematica Link for Excel firmy Wolfram Research, Inc. Slouºí k propojení Excelu s programem Mathematica takov∞m zpàsobem, ºe veτkeré v∞poƒty a dalτí ƒinnosti, které je moºné provád╪t v programu Mathematica, jsou díky tomuoto propojení p²ímo p²ístupné i z prost²edí Excelu. Po spuτt╪ní p²ísluτn∞ch programà má Excel k dispozici krom╪ vlastních funkcí i vτechny funkce a dalτí moºnosti programu Mathematica tak, jako by byly souƒástí programu Excel. Data a v∞sledky (ve form╪ hodnot, symbolick∞ch v∞sledkà i grafà) je moºno mezi ob╪ma programy libovoln╪ p²enáτet.
Pov╪zme si o t╪chto moºnostech n╪co více.
Program Mathematica
Program Mathematica firmy Wolfram Research je asi nejznám╪jτí a nejrozτí²en╪jτí program této kategorie. Krom╪ n╪kolika tisíc funkcí ze vτech oblastí "královny v╪d" umí vτe, na co si v matematice vzpomenete. A to jak numericky, tak i symbolicky. Zadáte-li k ²eτení integrál bez oznaƒení oblasti integrace, dostanete jako v∞sledek primitivní funkci. Zadáte-li integrál s hranicemi, dostanete ƒíslo. Derivuje sloºité v∞razy atd.; ve v∞ƒtu moºností bychom mohli jeτt╪ dlouho pokraƒovat.
Instalace a propojení programu Mathematica Link for Excel
Po instalaci programu Mathematica Link for Excel je celá kapacita programu Mathematica v Excelu k dispozici. Instalace je velmi jednoduchá. Instalaƒní program vytvo²í nov∞ adresá² a nahraje do n╪j verze programu Link pro jednotlivé verze Excelu (95 a 97/98) vƒetn╪ ukázkov∞ch aplikací a dále pak program pro zpracování grafiky p²i p²enosu z programu Mathematica do Excelu. Celá instalace zabere na disku n╪co málo p²es 2 MB prostoru.
Propojení Excelu s programem Mathematica má formu "add-in" a není provedeno automaticky p²i instalaci, ale teprve po prvním spuτt╪ní Excelu s p²ísluτnou verzí (odpovídající vaτí verzi Excelu) souboru MLX.XLS. Spuτt╪ní màºe b∞t provedeno jak ze systému, tak z Excelu. Po spuτt╪ní se p²idají do Excelu dv╪ nové liτty - Mathematica a M-Data.
První z nich slouºí k definici funkcí a v∞poƒtà prost²ednictvím programu Mathematica a druhá pak k v∞m╪n╪ dat mezi ob╪ma programy formou obdobnou funkcím systému Windows "copy" a "paste". Tato akce (instalace "add-in") se provede jen jednou - poprvé. P²i následujících startech Excelu zàstávají jiº tyto dv╪ liτty souƒástí menu Excelu.
Vlastní propojení programà se provede poklepáním na n╪kterou z ikonek na t╪chto dvou liτtách. Následn╪ se spustí a k Excelu napojí jádro programu Mathematica. Propojení se màºe liτit podle toho, zda propojujete oba programy na jednom poƒítaƒi, nebo (pomocí protokolu TCP/IP) na ràzn∞ch poƒítaƒích v síti, anebo p²es internet.
Pokud vlastníte multilicenci programu Mathematica, màºe b∞t na n╪j napojeno více uºivatelà souƒasn╪ prost²ednictvím klientà MultiLink a serveru MultiLinkServer. Jakmile jednou spustíte propojení obou programà, zàstává propojení v platnosti aº do skonƒení práce s Excelem - nelze jej "ruƒn╪" ukonƒit.
V∞poƒty
Pouºití takto napojeného programu Mathematica k v∞poƒtàm màºe mít v Excelu celou ²adu forem. K dispozici je celkem τest ràzn∞ch druhà volání, kter∞mi je moºno prost²edky v∞poƒetního systému vyuºít. Aby se v dalτím textu odliτilo klasické pojetí pojmu funkce a toto pojetí funkce jako volání prost²edkà programu Mathematica, pouºívám zde (zcela svévoln╪) pojem "metafunkce".
Math
Nejb╪ºn╪jτím a nejvyuºívan╪jτím uºitím asi bude v∞poƒet hodnot vzorcà a volání funkcí. K tomu slouºí metafunkce Math. Ta màºe mít jeden aº dev╪t parametrà (lze zadat i více), formulujících poºadavek na v∞poƒet programu Mathematica.
Nap²íklad v∞poƒet stého prvoƒísla se formuluje v syntaxi =Math("Prime", 100). V p²ísluτném políƒku stránky Excelu se pak objeví v∞sledek 541. V Mathematice byste stejnou funkci zadávali ve tvaru Prime[100].
Téhoº v∞sledku lze docílit i tak, ºe vzorec nebo jeho ƒást uloºíme do buσky tabulkového procesoru a odkáºeme na n╪j =Math("Prime", A1) nebo =Math(A1), kde A1 bude obsahovat dalτí parametr nebo celé volání funkce ƒi definici vzorce. V t╪chto p²ípadech je t²eba dávat pozor na skuteƒnost, ºe syntaxe p²íkazà programu Mathematica je na rozdíl od v╪tτiny jin∞ch programà "case sensitive", ƒili nap²íklad správné zadání je Sin[x], zatímco v∞raz SIN[x] program nepozná, a tudíº jej povaºuje za chybu.
Pro toho, kdo si není znalostí syntaxe v∞razà a funkcí programu Matematica dostateƒn╪ jist, je urƒen pràvodce (viz dále) pro tvorbu v∞razà, kterého lze vyvolat poklepáním na druhou ikonu na "propojovací" liτt╪. Pràvodce zajistí, ºe zkonstruovan∞ v∞raz nebo volání funkce bude zcela jist╪ odpovídat syntaxi programu Mathematica.
Podobn╪ lze zadávat i dalτí poºadavky. Nap²íklad vykreslení grafu funkce, které byste v Mathematice zadali p²íkazem Plot[Sin(Pi*x),{x,0,6}], màºete v Excelu formulovat =Math("Plot",A1, B1..B3) za p²edpokladu, ºe A1 obsahuje Sin(Pi*x) a B1 aº B3 po ²ad╪ x, 0 a 6.
K úprav╪ jiného matematického v∞razu màºeme pouºít t²eba tvar =Math("Expand[(x+y)^3]") a v∞sledkem bude
x^3+3*x^2*y+3*x*y^2+y^3.
Dalτí metafunkce
Dalτích p╪t metafunkcí pouºívá stejnou syntaxi a mají následující úƒel. MathExact vrací hodnotu ve tvaru, kter∞ zaruƒuje, ºe v∞sledek bude pouºiteln∞ jako vstup pro program Mathematica a ºe nedojde k ƒíseln∞m problémàm, protoºe nap²íklad pokud dochází k v∞poƒtàm, jsou hodnoty vraceny ve tvaru zlomkà. MathFormula vrací hodnoty v obdobné konvenci, ale tak, aby byly ve tvaru funkcí programu Excel. Pro ilustraci rozdílu v pouºití dosud uveden∞ch metafunkcí zvolíme nap². funkci Sin(Pi/4) - v∞τe uvedené t²i metafunkce vrátí po ²ad╪ hodnoty 0.707107, 1/Sqrt[2] a =1/Sqrt(2).
Pouºití metafunkce MathVolatile zajistí, ºe hodnota bude p²epoƒtena p²i kaºdém p²epoƒtu, bez ohledu na to, zda se zm╪nil vstup funkce. Tento p²ípad má vyuºití nap²íklad p²i pravidelném generování náhodn∞ch vstupà. Metafunkce MathDefine neprovádí ºádné v∞poƒty, ale slouºí k p²i²azení symbolického jména tomu, co je argumentem metafunkce. Tím màºe b∞t oblast stránky Excelu nebo v∞raz ve smyslu v∞τe uveden∞ch metafunkcí. P²i dalτích zápisech je pak moºno se na takto nastavené jméno odvolat. Poslední metafunkcí je MathCode. Ta poslouºí k zadání vzorce, kter∞ je rozloºen ve v╪tτím poƒtu bun╪k stránky.
Krom╪ t╪chto metafunkcí existuje n╪kolik dalτích, které se t∞kají vlastností a obsahu jednotliv∞ch bun╪k stránky, ale které zatím není radno vyuºívat ve v╪tτí mí²e. Jejich zavedení je jen zkuτební a lze p²edpokládat, ºe se v budoucích verzích mohou jeτt╪ zm╪nit.
Pràvodce pro tvorbu volání funkcí v Mathematice
Uº jsme se zmínili o pràvodci pro kompletaci funkcí v syntaxi programu Mathematica. Pokud poklepete na ikonu (druhou zleva) na liτt╪, objeví se dvoukrokov∞ pràvodce. Na první stránce si màºete vybrat poºadovanou funkci, a to podle zadaného ²et╪zce (kter∞ je obsaºen na zaƒátku, na konci nebo uvnit² názvu hledané funkce) nebo podle kontextu - zvolen∞ seznam pak obsahuje odpovídající funkce programu Mathematica nebo rozτi²ovacích modulà (viz dále). P²i procházení funkcí se vºdy v okn╪ objevuje popis funkce, na níº je práv╪ umíst╪n kurzor.
Po v∞b╪ru funkce pak p²ejde pràvodce na dalτí stránku, kde je moºno - op╪t podle kontextu vybrané funkce - zkompletovat pot²ebné parametry. Po dokonƒení se objeví p²íkaz metafunkce ve správném tvaru v aktuálním políƒku tabulky.
Mathematica kernel dialog box
Obƒas je pot²eba provést n╪jaké meziv∞poƒty, ov╪²it si hodnoty nebo zobrazit grafy, které nepot²ebujete p²ímo vloºit do tabulek. Tehdy màºete s v∞hodou vyuºít formulá², kter∞ vám zajistí p²ím∞ dialog podobnou formou jako v pracovním seτit╪ programu Mathematica, tedy nemusíte zadávat poºadavky ve tvaru v∞τe zmín╪n∞ch metafunkcí. P²i moºnostech a schopnostech, jaké program Mathematica poskytuje, se mi vτak zdá tento komfort pon╪kud chud∞. Nap²íklad pro zobrazení grafu nebo zprávy je (na rozdíl od konvencí v pracovním seτit╪ programu Mathematica) nutno stisknout tlaƒítko navíc. Nep²íjemná je hlavn╪ skuteƒnost, ºe obsah dialogov∞ch oken je vºdy jen jednorázov╪ pouºiteln∞ a ºe nelze vyvolat historii a vrátit se k n╪kter∞m d²íve zadan∞m údajàm.
Rozτi²ovací moduly
Vzhledem k rozτí²ení a otev²enosti programu Mathematica existuje ohromné mnoºství rozτi²ovacích modulà, upot²ebiteln∞ch v dalτích praktick∞ch oborech. Tyto moduly je moºno vyuºít rovn╪º pro v∞poƒty v Excelu. V menu, p²ípadn╪ na liτt╪ je k dispozici volba, kterou se vyvolá dialog pro p²ipojení poºadovan∞ch modulà.
Zvolen∞ modul pak màºete p²ipojit doƒasn╪ nebo trvale. V druhém p²ípad╪ se automaticky p²ipojí p²i kaºdé aktivaci Excelu.
V∞voj aplikací v Excelu zaloºen∞ch na Mathematice
Pokud vyvíjíte nové aplikace v Excelu ƒast╪ji, umoºσuje Mathematica Link for Excel vyuºít dalτích vlastností programu Mathematica, které v∞voj aplikací usnadσují. Souƒástí programu Mathematica je i vlastní programovací jazyk. Ten lze v programu Mathematica Link for Excel zuºitkovat n╪kolika ràzn∞mi zpàsoby. Jednou z moºností je pouºití takzvan∞ch "ƒist∞ch" (pure) funkcí. V praxi to vypadá tak, ºe pomocí metafunkce lze zapsat volání funkce Mathematica ve tvaru definujícím novou funkci, kter∞ dovoluje odkaz na parametry - tak nap²íklad =Math("Sum[#1/x!],{x,#2}",A3,B5) je v∞poƒet ƒísla "e" umocn╪ného na obsah buσky A3 a B5 urƒuje poƒet ƒlenà ²ady. Dalτí moºností je definovat stránku seτitu se jménem zaƒínajícím "M-". Takovéto stránky jsou chápány programem Mathematica pon╪kud odliτn╪. P²i propojení s programem Mathematica a p²i startu jádra se tyto stránky povaºují za inicializaƒní kód a automaticky se provedou. Tím jsou vlastn╪ tyto stránky p²edurƒeny pro nastavení ràzn∞ch p²eddefinovan∞ch vlastností a uºivatelsk∞ch funkcí, resp. k aktivaci rozτi²ovacích modulà, pot²ebn∞ch ve spouτt╪né aplikaci. Na to navazuje jako dalτí moºnost vytvo²ení rozτi²ovacího modulu. Rozτi²ovací modul je v podstat╪ textov∞ soubor se jménem s p²íponou ".m", obsahující p²íkazy programu Mathematica.
P²enos dat mezi Excelem a programem Mathematica
Druhá liτta slouºí k jednomu z n╪kolika zpàsobà p²enosu údajà mezi Excelem a programem Mathematica. Pokud v Excelu oznaƒíte ƒást stránky a poklepete na první z ikon, uloºí se vybraná data ve form╪ matice do mezipam╪ti. V programu Mathematica se pak volbou "paste" v menu vloºí tato data do místa, kde je umíst╪n kurzor ve tvaru matice, rozepsané po ²ádcích. Na obrázku je vid╪t tvar, v jakém se blok hodnot z Excelu p²enesl. Takto p²enesená a vloºená data lze p²ímo pouºít k v∞poƒtàm - zde nap²íklad k v∞poƒtu determinantu.
Dalτí moºností je naƒtení kompletního obsahu seτitu Excelu p²ímo do programu Mathematica. K tomu úƒelu je v adresá²i programu Mathematica rozτi²ovací modul ReadExcel. Pokud programy pracují v síti, je v∞hodné vyuºít propojení s programem Mathematica prost²ednictvím MultiLinku. Tak je spuτt╪no jen jediné jádro programu Mathematica a tím se i sdílejí data z tohoto programu.
Záv╪r
Souƒástí instalace je i celá ²ada vzorov∞ch aplikací z ràzn∞ch oblastí pouºití, které demonstrují moºnosti a v∞hody spojení t╪chto dvou programà. Domnívám se, ºe pokud vlastníte oba programy - Excel i Mathematica -, pak nevidím jedin∞ dàvod, proƒ nezakoupit i program Mathematica Link for Excel. Oba programy tím získají zcela novou dimenzi. Propojení programà se autoràm poda²ilo velmi p²irozen∞m zpàsobem, kter∞ nenaruτuje styl práce ani na jedné stran╪ propojení, a tak práce je velmi intuitivní a odpovídá logice v╪ci. Tím mám na mysli to, ºe v╪tτinou kdyº si ²eknete "to by se asi m╪lo ud╪lat takhle", obvykle zjistíte, ºe to tak opravdu je. P²íruƒka k programu se zdá b∞t velmi tenká. Ale pokud ji zaƒnete ƒíst, zjistíte, ºe je psána velmi p²esn╪ a odborn╪. Nechybí v ní skuteƒn╪ nic, co byste m╪li a pot²ebovali v╪d╪t. A tak mohu skuteƒn╪ jen znovu konstatovat, ºe za v∞τe zmín╪n∞ch podmínek zakoupením tohoto programu v ºádném p²ípad╪ chybu neud╪láte.