Čísla - Maple je vyborná kalkulačka
Maple počítá, tam kde to jde přeně.
> 49!;
nebo
>
exp(25);
sin(Pi/10);
Jesliže chceme výsledek pro nás v čitelnější podobě můžeme použít funkci evalf
> evalf(49!);
Zde je vyčíslený výsledek na takový počet míst, jaký je udán v porměnné Digits, která je po startu systému nastavena na 10.
> Digits;
Toto nastavení lze jednoduše změnit novým pčiřazením (např. Digits:=20), nebo lze lokálně počítat na zvolený počet míst.
> evalf(49!,50);
Maple nepočítá přesně v případě, že to z pricipu nelze (např. při výpočtu kořenů polynomu vyššího stupně, kdy je nutno v výpočtu použít numerickou metodu), nebo tehdy, jsou-li zasány vstupní data pomocí reálných čísel.
> 25.123456789^2;
Chceme-li, aby i v tomto případě Maple počítal přesně, je nutno tyto data převést na přirozená nebo racionální čísla a potom provést výpočet. V naše případě následovně:
> convert(25.123456789,rational)^2;
Funkce convert má mnoho dalších nastavení, o kterých je užitečné vědět a některé jsou i dále ukázány.
>
Pro vyčíslení výsledku, kdy je potřebné minimalizovat čas výpočtu (výpočty v dlouhých cyklech, ...) je výhodné použít funkci evalhf , která využívá výpočetních možností matematického koprocesoru a tím lze podstatně zrychlit výpočet. Nevýhodou je neměnný počet míst výsledku (nezávisí na proměnné Digits ) a navíc zdaleka ne všechny funkce MAPLE jsou do matematického koprocesoru implementovány. MAPLE se o převod takových funkcí na funkce implementované nestará, takže to zbývá na uživateli, viz příklad v další kapitole Komlexní čísla .
> evalhf(49!);
Komlexní čísla
Stejně počítá maple i s komplexními čísly., kde imaginární jednotka je při startu systému definována pro písmeno I .
> I^2;
V jednoduchých případech lze použít pro vyjádření složek imag. čísla jednoduchého zápisu:
> Re(sqrt(-8)+3);
Ve složitějších případech je nutno použít nací funkci evalc
>
evalc(Im(sqrt(sqrt(-8)+3)));
evalf(argument(sqrt(-8)+3)*180/Pi);
abs(sqrt(-8)+3);
Tak jak jsme vypočítali argument a absolutní hodnotu komlexního čísla, tak je implementován příkaz convert[polar]
> ?polar
> convert(sqrt(-8)+3,polar);map(evalf, %); # porzor, tady je uhel v radianech
> kompl:=evalc(Im((2+3*I)^exp(sqrt(-8)+3+x))); # mírně komplikovaný příklad
>
evalf(subs(x=4,kompl));
evalhf(subs(x=4,kompl)); # tak to nepůjde
Error, unable to evaluate built-in function `subs` in evalhf
>
kompl1:=subs(x=4,kompl):
evalhf(kompl1); # takto to sice jde, ale matematický koprocesor si myslí, že -.5154619909e-725=0
Vůbec nejlepší způsob je místo výrazů pracovat s funkcemi, které lze pomocí evalhf bez problémů vyčíslovat. Funkce budou probrány v následující kapitole.
S čísly lze provádět samozřejmě všechny možné operace a lze na ně aplikovat zanámé funkce. Jejich výčet by zabral značnou část této ukázky, tudíž ponecháme na "čtenáři", ať si pro něho potřebné najde v helpu.
Zpět na začátek kapitoly.