Čísla - Maple je vyborná kalkulačka

Maple počítá, tam kde to jde přeně.

> 49!;

608281864034267560872252163321295376887552831379210...

nebo

> exp(25);
sin(Pi/10);

exp(25)

sin(1/10*Pi)

Jesliže chceme výsledek pro nás v čitelnější podobě můžeme použít funkci evalf

> evalf(49!);

.6082818640e63

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;

10

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);

.60828186403426756087225216332129537688755283137921...

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;

631.1880811

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;

4141225/6561

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!);

.608281864034267524e63

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;

-1

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);

3

1/2*sqrt(-6+2*sqrt(17))

43.31385664

sqrt(17)

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

polar(sqrt(17),arctan(2/3*sqrt(2)))

polar(4.123105626,.7559694103)

> kompl:=evalc(Im((2+3*I)^exp(sqrt(-8)+3+x))); # mírně komplikovaný příklad

kompl := exp(1/2*exp(3+x)*cos(2*sqrt(2))*ln(13)-exp...

> evalf(subs(x=4,kompl));
evalhf(subs(x=4,kompl)); # tak to nepůjde

-.5154625125e-725

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

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.