Mathematica 4.0 není jen matematick∞ software, ale i uºiteƒn∞ nástroj, jazyk a prost²edí pro ²eτení technick∞ch problémà a prezentaci v∞sledkà. Pokud jste se s ní jeτt╪ nesetkali, budete p²ekvapeni, co vτechno umí. Pokud znáte její p²edchozí verzi, oceníte zásadní zrychlení v∞poƒtà a nové funkce.
Matematika za jedna
Systém Mathematica? od spoleƒnosti Wolfram Research jist╪ není nutné pravideln∞m ƒtená²àm Chipu p²edstavovat. T╪m ostatním v úvodu p²ipomeσme, ºe jde o jeden z nejznám╪jτích a nejv∞konn╪jτích matematick∞ch programà; není to ovτem ºádn∞ b╪ºn∞ jednoduch∞ software, ale dàmysln∞ a komplexní systém. Ostatn╪, kdyby byl jednoduch∞, nemohl by ²eτit skuteƒn╪ velmi t╪ºké technické problémy, a to v mnoha oblastech. Snad to trochu ilustruje i rozsah manuálu (1500 stran) - mimochodem, je velmi dob²e napsan∞ (samoz²ejm╪ práv╪ v prost²edí Mathematica...).
Co je Mathematica
Aniº bychom p²eƒetli manuál cel∞, pochopili jsme, ºe Mathematica je robustní mnohafunkƒní systém pro ²eτení technick∞ch problémà. Zám╪rn╪ zde ne²íkáme matematick∞ch, protoºe matematika je zde p²ítomna zejména jako nástroj, i kdyº obzvláτt╪ matematici si mohou p²ijít na své. Ale pokud n╪kdo ²ekne, ºe Mathematica je nástroj pro publikování nebo ºe to je programovací jazyk, bude mít také pravdu. Mathematica je totiº toto vτe dohromady.
Mathematica byla pàvodn╪ navrºena Stephenem Wolframem jako nástroj pro zkoumání ràzn∞ch myτlenek ve v╪d╪ a technologii a této zásad╪ zàstala v╪rná dodnes. Od prvního vydání v roce 1988 si získala p²es milion uºivatelà - inºen∞rà, finanƒních analytikà, studentà, matematikà a dalτích. Byla pouºita k návrhu letadel, k burzovní anal∞ze, ²eτení matematick∞ch problémà i k um╪lecké tvorb╪. Dnes do ní pronikají i prvky kartografie, práce se zvukem a ²ada dalτích nov∞ch disciplín.
Mathematica si zkrátka ºije tak trochu sv∞m vlastním ºivotem - existuje uº ²ada knih a ƒasopisà, které se zab∞vají jen tímto systémem a vysv╪tlují nebo diskutují jeho pouºití v ràzn∞ch oborech ƒi pro speciální problémy. Starτí ƒísla t╪chto ƒasopisà jsou k dispozici i na internetu (viz infotipy).
K systému se dodává základní sada programov∞ch rozτí²ení (tzv. "adds-on"), která je moºno jednoduτe "p²ihrát" k základnímu modulu. Tato rozτí²ení jsou oborová (nap²íklad Algebra, Calculus, DiscreteMath, Geometry, Graphics, LinearAlgebra, Miscellaneous, NumberTheory, NumericalMath, Statistics, Utilities). Jsou vyƒlen╪na mimo základní modul ze z²ejmého dàvodu - nainstaluje si je jen ten uºivatel, kter∞ je vyuºije. Krom╪ t╪chto b╪ºn∞ch rozτí²ení existují i dalτí, která jsou k dispozici na internetu; o mnoh∞ch z t╪chto nadstaveb jste se ostatn╪ mohli doƒíst i v Chipu.
Mathematica se ovládá pomocí vlastního jazyka a vlastního prost²edí pro práci s v∞razy, grafikou, zvuky, daty ap. a pro zobrazení v∞stupà (tzv. notebooky - jsou to obyƒejné soubory a nemají s p²enosn∞mi poƒítaƒi nic spoleƒného). Kdo zná n╪kter∞ z programovacích jazykà, brzo si zvykne na její vlastní vyjad²ování, i kdyº to pochopiteln╪ je jin∞ jazyk. Práce s ní tedy není pro nového uºivatele zcela bezbolestná (pokyn k v∞poƒtu není jen Enter, ale Shift +Enter, argumenty se uvád╪jí v hranat∞ch závorkách atd.) a vyºaduje chvíli trp╪livosti. ⁿíkáme to proto, ºe se ƒlov╪k snadno namlsá, kdyº vidí rychlost, jakou Mathematica ²eτí sloºité v∞poƒty, a málem by pak oƒekával, ºe na program postaƒí mluvit... Opak je pravdou - ƒlov╪k se její jazyk a zvyky prost╪ musí jednou provºdy nauƒit.
To ostatní jde uº potom jako na drátku. Nap²íklad vám màºe trvat n╪jakou dobu, neº zjistíte, jak dostat odpov╪╘ na to, jak vypadá prvních 100 000 cifer Ludolfova ƒísla, ale pak uº je Mathematica vypoƒítá za pár desítek sekund. Drtivá v╪tτina v∞poƒtà totiº prob╪hne prakticky okamºit╪. Ani u velmi sloºit∞ch v∞poƒtà nejsou v∞poƒetní ƒasy nijak velké. Posu╘te sami: zmín╪n∞ v∞poƒet ƒísla ??na 100 000 platn∞ch desetinn∞ch míst trval na PC Pentium/166 MHz s Windows NT 4.0 zhruba 29 sekund, coº bylo mnohokrát mén╪ neº doba, po kterou jsme zjiτ£ovali, jak to z programu "dostat". Pokud vás to zajímá, staƒí napsat N[Pi, 100000] a stisknout Shift+Enter.
Pár osobních zkuτeností
Jak známo, dokud nedojde k nejhorτímu, manuály se neƒtou. Kdykoli jsme zaƒali reptat, ºe to nebo ono není vysv╪tleno, museli jsme to nakonec vzít zpátky. Na vτechny otázky, které nás napadly, jsme naτli odpov╪╘ v manuálu nebo v helpu (ƒím déle jsme je hledali, tím blíºe byly k zaƒátku...). Kdyº jsme si mysleli, ºe Mathematica n╪co neumí (te╘ nemáme na mysli rozsah funkcí, ale t²eba signalizaci, ºe zrovna poƒítá, nebo záleºitosti kolem rozhraní), nakonec jsme se p²esv╪dƒili o opaku.
Z poƒátku nám uºivatelské rozhraní trochu vadilo, ale pak jsme si zvykli. Urƒit╪ je dobré si p²eƒíst, jak je to s p²esností v∞poƒtà. A pokud ƒlov╪k nechce ƒíst manuál, je vhodné si alespoσ projít Tour of Mathematica bu╘ v kniºním vydání manuálu, nebo jako help v prohlíºeƒi (Mathematica má svàj vlastní prohlíºeƒ...). Help je skuteƒn╪ velmi dob²e napsán, samoz²ejm╪ hypertextov╪, a zároveσ ukazuje i publikaƒní moºnosti systému, nebo£ je sám jeho produktem. Tak je nap²íklad moºné si v helpu p²i ƒtení o ƒísle ? spustit animaci, je zde mnoºství obrázkà, ilustraƒních vzorcà, funkcí a grafiky. Help lze procházet i po jednotliv∞ch funkcích nebo jako rejst²ík a uƒit se tak "on-line" p²ímo v n╪m.
Θvaha
Nask∞tá se otázka, co vτechno má Mathematica vlastn╪ um╪t. Matematika je jako v╪da dost sloºitá, natoº aplikovaná matematika v mnoha technick∞ch oborech. Auto²i proto museli vybrat ²adu klíƒov∞ch problémà, které uºivatelé musí v ràzn∞ch oblastech ƒasto ²eτit, a napsat pro n╪ pot²ebné funkce. N╪kdy tyto funkce postaƒí samy o sob╪, n╪kdy je nutné n╪kolik z nich zkombinovat do menτího ƒi v╪tτího programu. Tady je Mathematica k dispozici jako kaºd∞ jin∞ programovací jazyk - oproti nim vτak má tu v∞hodu, ºe vτechny podstatné sloºité funkce (integrál, derivaci, maticové operace, ...) má uº p²edprogramovány. N╪kter∞m uºivatelàm postaƒí tyto funkce, jiní si mohou doprogramovat funkce pro ²eτení sv∞ch specifick∞ch problémà nebo "nahrát" nové vhodné rozτí²ení pro dan∞ obor.
Je z²ejmé, ºe u v╪tτiny uºivatelà bude Mathematica ²eτit podobné nebo stejné problémy, ale opakovan╪. Proto se po poƒáteƒním tréninku stane její vyuºívání snadnou rutinní záleºitostí. Vzhledem k tomu je vhodné na poƒátku zjistit vτechno moºné o jejích schopnostech pro danou úlohu a poohlédnout se i po rozτí²eních. Je na kaºdém uºivateli, aby zváºil, kolik mu Mathematica p²i ²eτení jeho problémà uτet²í ƒasu. Jsme p²esv╪dƒeni, ºe v mnoha oborech je ƒas podstatn∞, a ºe se proto vyplatí do tohoto typu softwaru investovat.
Instalace
Instalace systému na naτí stanici s Windows NT 4.0 prob╪hla aº neuv╪²iteln╪ rychle a bezproblémov╪ b╪hem n╪kolika minut. Po celou dobu práce pak byla Mathematica stabilní a jen jednou se nám poda²ilo vyvolat chybu. Ale p²ece jen byla instalace v n╪ƒem odliτná. P²i koupi obdrºíte sice krabici s CD, manuály, licenƒním ƒíslem (LN) a licenƒním ujednáním, ale to jeτt╪ nestaƒí. Wolfram Research se brání pirátsk∞m kopiím programu tak, ºe instalaƒní program vygeneruje identifikaƒní ƒíslo (MathID) závislé na konkrétním hardwaru a toto ƒíslo je nutné zaslat (internetem, faxem) na danou kontaktní adresu. Firma vám pak ke dvojici (MathID, LN) zaτle heslo (password) - teprve s ním màºete systém pouºívat. Zm╪níte-li pak ovτem konfiguraci svého poƒítaƒe, budete muset poºádat o heslo nové...
Co je nového ve verzi 4
To hlavní je rychlost. Jestliºe jste si p²i n╪kter∞ch operacích s velk∞mi objemy numerick∞ch dat u verze 3 mohli v klidu vypít kávu, máte dnes smàlu. P²eprogramování n╪kter∞ch základních postupà (v rámci projektu gigaNumerics) p²ineslo n╪kde aº dvousetnásobné zrychlení numerick∞ch v∞poƒtà. Dále bylo p²idáno nebo vylepτeno sto funkcí, zv∞τily se schopnosti zjednoduτování v∞razà a zv∞τil se poƒet datov∞ch, grafick∞ch a zvukov∞ch formátà, s nimiº program umí pracovat (dnes p²es 20). Zlepτila se také práce s 2D a 3D objekty, velk∞mi maticemi apod. Mathematica te╘ màºe exportovat své dokumenty do formátu HTML, TEX a nového standardu MathML.
Co Mathematica umí
Je toho spousta - pro p²edstavu alespoσ v∞b╪r hlavních oblastí:
? zjednoduτování matematick∞ch v∞razà a práce se symbolick∞mi prom╪nn∞mi;
? integrální a diferenciální poƒet (urƒit∞ i neurƒit∞ integrál);
? funkce a operace z teorie ƒísel, komplexní ƒísla, kvaterniony;
? v∞poƒty s libovolnou poºadovanou p²esností;
? kreslení grafà (1D, 2D, 3D), práce s textov∞mi poli;
? symbolická definice vlastních funkcí, tvorba vlastních programà;
? rozhraní na programové úrovni pro interakce s jin∞mi programy (nap²íklad moºnost volání vlastních funkcí systému z programà v jazyce C, Fortran, Java, a naopak volání externích programà z prost²edí systému).
Ukázkové p²íklady
Bez jakékoliv p²edchozí znalosti programu jsme po pom╪rn╪ krátké dob╪ um╪li ²eτit problémy, které nás napadly. Zajímalo nás t²eba, kolik bità má ƒíslo "RSA-155" a jak vypadají. Staƒilo napsat IntegerDigits[1094...(zkráceno)...897,2] a hned jsme vid╪li vτech jeho 512 bità. Moºná si vzpomenete, ºe toto ƒíslo (modul τifry RSA) o 155 dekadick∞ch ƒíslicích bylo nedávno úsp╪τn╪ faktorizováno - psali jsme o tom v aktualitách Chipu 10/99 (ƒlánek "Jde to i bez TWINKLE"). Také Mathematica by se jist╪ po p²íkazu FactorInteger[1094...(zkráceno)...897] ochotn╪ pustila do hledání souƒinitelà, ale u tak velkého ƒísla bychom se pochopiteln╪ v∞sledku nedoƒkali (tento problém ²eτily stovky poƒítaƒà p²es t²i m╪síce a spot²ebovaly na n╪j v∞poƒetní v∞kon asi 8000 MIPS let)...
P²edloºili jsme jí ale k posouzení, zda nalezené faktory zmín╪ného sloºeného ƒísla RSA-155 jsou opravdu prvoƒísla. K tomu nám poslouºil jednoduch∞ p²íkaz PrimeQ[1026395...(zkráceno)...779]. V∞sledkem bylo True, coº znamená, ºe testované ƒíslo v hranaté závorce je opravdu prvoƒíslo. Dále jsme cht╪li v╪d╪t, jak vypadá první celé ƒíslo, které je v╪tτí neº iracionální ƒíslo 2511 * 21/2, a to op╪t v binární podob╪. P²ání nám splnil p²íkaz IntegerDigits[IntegerPart[N[1+Sqrt[2]*(2^511),200]],2,512].
Nakonec nás zajímalo, jak sviºn╪ Mathematica zvládá modulární umocσování (ab mod c), coº je základní úkon v ²ad╪ asymetrick∞ch τifer. V∞sledky pro 100-, 200- nebo 300ciferná ƒísla a, b, c jsou - po p²íkazu PowerMod[a,b,c] - vypoƒítány tém╪² okamºit╪.
Snaºili jsme se také najít n╪jakou statistickou funkci, která by nám zodpov╪d╪la, zda obdrºené rozd╪lení námi zkoumané náhodné veliƒiny je rozd╪lením daného konkrétního typu. Jin∞mi slovy, hledali jsme funkci z oblasti statistického testování hypotéz. Jako standardní funkci se nám ji najít nepoda²ilo, ale dala by se doprogramovat.
Rozτi²ující moduly
Obdobn╪ jako jiné nástroje, jejichº komplexnost màºe prakticky neomezen╪ naràstat, nabízí i Mathematica moºnost dalτího rozτí²ení podporovan∞ch funkcí pomocí takzvan∞ch aplikaƒních knihoven (i o nich se v Chipu psalo; jejich aktuální stav màºete nalézt na domovské stránce Wolfram Research). Zde si v krátkosti p²edstavíme alespoσ ty (z naτeho úhlu pohledu) nejzajímav╪jτí zástupce.
Kaºdému, kdo se zab∞vá anal∞zou a zpracováním signálà, ud╪lá radost knihovna Signal and Systems, kterou màºe jeτt╪ vhodn╪ zkombinovat s balíkem Wavelet Explorer. V první ze zmín╪n∞ch knihoven nalezne implementace nejpouºívan╪jτích metod matematické anal∞zy, které se p²ímo uplatní v teorii signálà. Jedná se zejména o funkce pro reprezentaci dat a základní operace nad nimi, lineární transformace typu Laplace, Fourier a tzv. Z-transformace, modely základních druhà filtrà (vƒetn╪ digitálních IIF a FIR filtrà) a mnohé dalτí.
Aplikace, pro které z n╪jakého dàvodu není p²íliτ vhodná Fourierova transformace (nap²íklad pràb╪hy s p²íliτ "ostr∞mi" hranami), potom mohou s v∞hodou pouºít jeτt╪ druhou ze zmín╪n∞ch knihoven, která implementuje v souƒasné dob╪ stále populárn╪jτí metodu takzvané vlnkové transformace. Na rozdíl od Fourierovy transformace zde jako základní funkce nevystupuje "obyƒejn∞" sinus a kosinus. Místo toho je dan∞ pràb╪h aproximován pomocí funkcí se sloºit╪jτím pràb╪hem, díky ƒemuº se p²i dob²e zvolené mnoºin╪ aproximaƒních funkcí (takzvan∞ch vlnek) dosahuje rychlejτí a p²esn╪jτí konvergence vymodelované funkce k jejímu originálu. Vzhledem k tomu, ºe z praktického hlediska p²edstavuje vlnková transformace pom╪rn╪ ƒerstvou novinku, je celá knihovna koncipována zároveσ jako uƒebnice, která postupn╪ uºivatele zasv╪tí do vτech aspektà správného a efektivního pouºívání této metody (viz téº Chip 8/98).
Dalτí zajímavou knihovnou je Electrical Engineering Examples. Ta màºe slouºit bu╘ jako v∞vojov∞ nástroj, kde se uplatní jak p²i anal∞ze a návrhu nov∞ch za²ízení, tak i p²i vytvá²ení dokumentace (p²ipomeσme, ºe Mathematica se velmi dob²e hodí práv╪ pro vytvá²ení matematick∞ch prezentací), ale dob²e se uplatní i jako pomàcka pro v∞uku v oblasti teorie elektrick∞ch obvodà. Mezi funkce nabízené touto knihovnou pat²í zejména obecná anal∞za elektronick∞ch obvodà (v∞poƒty na grafov∞ch modelech obvodu, náhradní schémata polovodiƒov∞ch prvkà, v∞poƒet zkreslení ap.), v∞poƒty parametrà p²enosového vedení (parametry, odrazy, disperzní jevy atd.) a dále téº návrh anténních systémà (vyza²ovací charakteristiky).
Poslední knihovna, o které se zde zmíníme, se jmenuje Fuzzy Logic, a jak její název napovídá, jde o implementaci "fuzzy mnoºinového aparátu", kter∞ je dnes τiroce pouºíván zejména v oblasti robotiky a um╪lé inteligence. Také tato knihovna màºe díky své koncepci slouºit jak pro anal∞zu a návrh fuzzy za²ízení, tak i pro v∞uku této teorie jako takové. Díky komplexnosti pouºit∞ch funkcí a jejich snadné rozτi²itelnosti mohou tento balík vyuºít jako pomàcku pro ov╪²ování vlastních hypotéz i matematici, kte²í se zab∞vají p²ímo dalτím rozvojem fuzzy mnoºinového aparátu (viz téº Chip 7/97).
Poznamenejme jeτt╪, ºe rozsah nabízen∞ch knihoven (pocházejí nejen od Wolfram Research, ale i od jin∞ch firem) se zdaleka neomezuje jen na oblasti matematiky ƒi elektroinºen∞rství (které odpovídají oborovému zam╪²ení autorà ƒlánku). V mnoha dalτích knihovnách si p²ijdou na své t²eba finanƒní experti ƒi adepti teoretické medicíny.
Dalτí moºností, jak rozτí²it "akƒní rádius" systému, jsou zdrojové kódy, které ràzní uºivatelé vyvinuli pro speciální problémy - i ty jsou k dispozici, a to v podob╪ balíku zvaného MathSource (viz Chip 11/99).
Operaƒní systém a cena
Mathematica je portována pro operaƒní systémy Windows, Linux, MAC a Unix. Základní cena p²i nákupu verze 4 pro Windows 95/98/NT je 57 200 Kƒ a upgrade z verze 3.0 p²ijde na 22 000 Kƒ. Ceny pro jiné OS jsou vyττí a màºete je nalézt spoleƒn╪ s dalτími nabídkami (doplσky, publikacemi, aplikaƒními knihovnami a dalτími sluºbami) na webové stránce ƒeského distributora produktu, praºské firmy Elkan.
Záv╪r
Mathematica verze 4 je bezesporu velmi propracovan∞ a siln∞ nástroj, jehoº hlavním cílem je co nejp²ijateln╪jτí formou zp²ístupnit souƒasn∞ matematick∞ aparát a umoºnit tak jeho efektivní pouºití i v t╪ch oborech, které na první pohled s matematikou jako takovou p²íliτ nesouvisejí.
K hodnocení tohoto produktu je t²eba poznamenat, ºe p²i rozsáhlosti implementovaného matematického aparátu (kter∞ se snaºí v maximální moºné mí²e drºet krok s aktuálním stavem této disciplíny) není prakticky moºné pln╪ otestovat vτechny nástroje, které Mathematica uºivateli nabízí. Rozhodli jsme se proto vyzkouτet její schopnosti na náhodn╪ zvolené mnoºin╪ úloh, které p²ímo pat²í do naτeho oboru. Zde Mathematica pln╪ splnila naτe oƒekávání a v mnoh∞ch situacích by nám jist╪ byla vítan∞m pomocníkem p²i ov╪²ování nejràzn╪jτích pracovních hypotéz.
Jak ale toto hodnocení zobecnit na cel∞ produkt? Zde vycházíme z p²edpokladu, ºe aƒkoliv Mathematica není produktem orientovan∞m ryze na diskrétní matematiku, p²ece jen dokázala pom╪rn╪ konkrétní úlohy zvládnout k naτí plné spokojenosti. Budeme-li p²edpokládat, ºe i ostatním oboràm se dostalo stejné péƒe jako t╪m námi zvolen∞m (samotná dokumentace a on-line ukázky tomu nasv╪dƒují), lze oƒekávat, ºe i jin∞ uºivatel bude s tímto produktem nakonec spokojen stejn╪, jako jsme byli my.
Vlastimil Klíma (v.klima@decros.cz), Tomáτ Rosa (t.rosa@decros.cz)
Infotipy
Hlavní stránka Wolfram Research, kde lze nalézt odkazy na vτe, co souvisí se systémem Mathematica: www.wolfram.com
Hlavní stránka ƒeského distributora, spoleƒnosti Elkan: www.elkan.cz