LaplaceLenka Čížková
Další matematická pomůcka pro počítače Amiga V březnu 1997 byla uvolněna betaverze V0.8 programu Laplace, jehož autorem je
Benjamin Stegemane (A Vision of Paradise). Zatím jde o mailware dostupný na
Aminetu, po dokončení vývoje by program měl být k dispozici jako. shareware. Charakteristika programu
Autor programu Laplace hledal vhodný nástroj pro své matematické výpočty.
Jediným vhodným programem na Amize se ukázal být Maple, jehož velkou nevýhodou
je ovšem cena (asi 30000 Kč!!). Benjamin se proto rozhodl napsat svůj vlastní
program, který by splňoval jeho požadavky (a následně také požadavky dalších
uživatelů). Vzniká tak dostatečně univerzální nástroj pro matematické výpočty
schopný počítat s proměnnými, maticemi, zlomky i parametry, jehož schopnosti by
se po dokončení vývoje měly rovnat již zmíněnému Maplu - Jatka je tedy nasazena
velmi vysoko; podívejme se, v jakém stádiu vývoje je Laplace nyní. Požadavky programu
Při používání všech matematických programů je samozřejmě výhodou výkonný
počítač - minimální konfigurace pro provoz Laplace je procesor 68020, OS 3.0, a
MUI 3.3. Mnoho uživatelů jistě ocení, že matematický koprocesor-není nutný -
autor ho neměl :-) Systém práce
Program Laplace pracuje podobně jako Shell - na rozdíl od některých
programů, v nichž se funkce a další potřebné vstupy zadávají stiskem různých
tlačítek, používá Laplace pouze řádkový režim (jak je u produktů tohoto typu
obvyklé): na výzvu programu zadá uživatel příkaz (nejčastěji matematický výraz)
a po stisku klávesy Enter se zobrazí výsledek. Vstupy uživatele a odpovědi
programu jsou přitom dostatečně graficky odlišeny. Podobně jako Shell má i
Laplace historii - lze tedy vždy nalistovat a použít libovolný dříve použitý
příkaz; dokonce je možné vrátit se (kurzorem či rolovacími lištami) na některý z
předchozích řádků a provést potřebné úpravy příkazů, například editovat dříve
zadaný matematický výraz - odpověď programu na daný řádek se opraví a provedené
úpravy ovlivní i další řádky. Zde je nutné upřesnit, že Laplace pracuje
hierarchicky, tj. výsledek kterékoliv operace ovlivní vždy pouze následující
řádky.
Vytvořené projekty (projekt je posloupnost všech řádků zadaných uživatelem i s
případnými odezvami programu) se ukládají jako ASCII text. Uživatel má možnost
připravit si potřebné knihovny - zde jde o soubory ve tvaru projektů, které se
při načtení zpracují bez vypsání výsledků; to je vhodné například pro přípravu
konstant a funkcí, které chce uživatel dále používat. Prostředí programu
Laplace otevírá svá okna na Workbenchi. Uživatel může otevřít libovolný
počet oken, a zpracovávat tak více projektů zároveň. Každé okno má nástrojovou
lištu ostatně nepříliš rozsáhlou: najdete zde zatím pouze přepínání editačního
módu, operace s clipboardem, nápovědu a otevření okna preferencí, které ovšem
ještě neexistuje :-( v dolní části okna je stavový řádek a vše mezi ním a
nástrojovou lištou je editační plocha pro projekty. Laplace používá globální
clipboard, takže je možné přenášet části projektů mezi sebou, nebo třeba načítat
vzorce připravené v jiných programech. AREXXový port programu je zatím
nedokončený.
Uživateli je k dispozici dobře (ale zatím pouze anglicky) napsaná AmigaGuide
nápověda. Pomocí příkazu lze také přímo v programu vypsat stručnou nebo
rozsáhlejší on-line nápovědu ke zvolené funkci. Program má dále bublinovou
nápovědu k ovládacím prvkům. A teď ta matematika!
Měli bychom se konečně podívat, co nám program nabízí a umožňuje z hlediska
našich důležitých matematických výpočtů.
Používat můžete operátory +, -, *, /, ^ (mocnina), vektorový součin, logický
součet, součin a negaci, a konečně všechny relační operátory (porovnání).
Program rozeznává proměnné (v tomto případě se s danou hodnotou hned počítá) a
parametry (hodnoty mohou být přiřazeny, ale přesto se počítá symbolicky, výrazy
s parametry lze dodatečně vyhodnotit pomocí funkce „eval“).
Objekty, s nimiž Laplace počítá, zahrnují čísla, logické hodnoty pravda (true) a
nepravda (false), vektory a matice zadaného nebo předem neznámého rozměru,
množiny (pro ně jsou k dispozici i některé statistické funkce), řetězce, funkce
a rovnice. Pro komplexní čísla se používá naprosto běžný zápis, například 6+3i.
Jestliže uživatel výrazy zadává pomocí celých čísel, bude Laplace pracovat se
zlomky; výsledky jsou pak přesnější! Program je dokonce schopen některá
desetinná čísla automaticky převádět na zlomky (0.5 na 1/2 apod.). Možnosti
těchto převodů lze do značné míry měnit pomocí interních parametrů programu.
Poněkud netradičním objektem je asi rovnice. Zadává se pomocí klíčového slova
„eq“, za nímž v závorce následuje levá a pravá strana rovnice, oddělené čárkou.
S rovnicí pak můžete provádět ekvivalentní úpravy - zadané úpravy program
provede s oběma stranami rovnice zároveň; ukažme si to na příkladu (hranatými
závorkami je zde označena odezva programu):
...
3> S = eq(3,x+1)
[S: 3 = 1 + x]
4> S-1
[2=x]
...
Schopnosti podobných programů se často posuzují podle rozsahu dostupných
matematických funkcí. Laplace kromě běžných skalárních funkcí (jako je exp,
sin,...) nabízí mnoho funkcí vektorových (zjištění dimenze, n-tého prvku,
poskládání vektorů do matice, výpočet normy, zadání vektoru funkčním předpisem
pro n-tý prvek), maticových (např. řešení soustav lineárních rovnic Gaussovou
eliminací, výpočet determinantu nebo stopy, inverze matice, transpozice,
zjištění hodnosti matice, Gramm-Schidtova ortogonalizace matice atd.), funkce
množinové (základní statistické funkce - počet prvků, průměr, standardní
odchylky dat i průměru), již zmíněné řešení rovnic pomocí uživatelem zadávaných
ekvivalentních úprav. Laplace umí také počítat parciální derivace a připravuje
se funkce pro rozvoj do Taylorových řad (uživatel si ji však snadno naprogramuje
sám).
Studenti často ohrožovaní úlohami fyzikálních praktik jistě ocení výpočet
standardní chyby: stačí zadat všechny hodnoty s příslušnými chybami měření,
Laplace vše spočítá a vrátí výsledek se správnou hodnotou jeho chyby.
Možnosti programu silně rozšiřují dostupné programovací nástroje syntaxe příkazů
je podobná jako u jazyka C, kromě základních příkazů program umožňuje použití
cyklů while a for, podmíněného příkazu if-else a procedur. Psaní strukturovaných
programů je umožněno i při zachování řádkového principu programu - lze totiž
přepínat editační mód mezi jedno a víceřádkovými uživatelskými vstupy.
Leckterý uživatel si pravděpodobně bude přát poměrně hezky vypadající výstup
programu exportovat i do jiných programů, tedy do TeXu :-) Tohoto uživatele
jistě potěší, že funkcí „export“ je možné libovolný výraz převést do formátu
TeXu. Máto však drobný nedostatek: výstup funkce „export“ se stejně jako odezva
na všechny ostatní příkazy vypíše na obrazovce a nelze jej žádným způsobem
dostat jinam. Zatím jedinou rozumnou možností je nejprve zadat nějaký komentář
(používají se komentáře jazyků C nebo C++), pokračovat příkazem „export“ pro
příslušný výraz, případně posloupnost komentářů a „exportů“ libovolněkrát v
projektu zopakovat a celý projekt uložit. V libovolném textovém editoru je pak
možné vyhledat vždy potřebný komentář - hledaný TeXovský řetězec se najde za
klíčovým slovem RESULT následujícího řádku. Co na závěr?
Uvážíme-li, že jde o program, který autor považuje za nedokončený, musíme
uznat, že jeho schopnosti jsou velmi rozsáhlé. K funkčnosti nemohu mít naprosto
žádné výhrady, jako matematik jsem naprosto nadšena. Překvapilo mne pouze
neuvěřitelně pomalé svislé rolování pomocí rolovacích šipek. Doufejme, že autor
bude ve vývoji programu Laplace pokračovat - slíbeno je například kreslení grafů
funkcí.
Laplace v0.8 |
Hodnocení: 7,0 z 10 |
Autor: B.
Stegemann |
Cena: - |
Typ: mailware |
+ |
možnost programování,
vektorové a maticové operace, derivace, řešení rovnic |
- |
nedořešený export do TeXu,
nástrojová lišta, nejsou grafy |
Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|