Pakiet Maple
Małgorzata Mikulska, Zbigniew Staszel
29 kwietnia 2006
Praca umieszczona jest pod adresami:
www.mikulska.com/mownit/
www.mati.com.pl/zbych/
1
Spis treści
1
Interfejs
4
2
Konwencja w Maple
4
3
Obliczenia podstawowe
5
4
Obliczenia numeryczne
7
5
Obliczenia symboliczne
8
6
Grafika
10
7
Programowanie
13
8
Połączenie z innymi programami
15
9
Podsumowanie
16
10 Literatura
16
2
Wprowadzenie
Wśród programów wspomagających prace naukowo-techniczne szczególne miej-
sce zajmują programy obliczeniowe. Są to pakiety matematyczne, które dają
możliwość rozwiązywania rozmaitych zadań dużej grupie użytkowników, stano-
wią pomoc w nauce i zachęcają do rozwijania własnych zainteresowań. Jednym
z tych programów jest Maple.
Maple jest programem komputerowym stworzonym w 1981 roku przez Sym-
bolic Computation Group na uniwersytecie w Waterloo w Kanadzie. Jest on
wykorzystywany do wykonywania obliczeń symbolicznych. Od 1988 był on roz-
wijany oraz sprzedawany komercyjnie przez Waterloo Maple Inc. znane także
jako Maplesof. Obecnie jest to najbardziej symboliczny z programów o tym cha-
rakterze, to znaczy, że w najwyższym stopniu naśladuje ludzki sposób myślenia
i liczenia.
Maple jest programem służącym do rozwiązywania zaawansowanych pro-
blemów matematycznych z wykorzystaniem rachunku symbolicznego, obliczeń
numerycznych z dowolną dokładnością, oraz bogatym zestawem sposobów wi-
zualizacji matematycznej.
Dzięki zastosowaniu rachunku symbolicznego można rozwiązywać zagadnie-
nia matematyczne z dużą dokładnością. Oprogramowanie uwalnia użytkownika
od ręcznego dokonywania wielu długich i żmudnych przekształceń oraz obliczeń,
które są narażone na nieuniknione błędy. Otrzymane wyniki nie zawierają błę-
dów, a wyrażenia przedstawiane są w prosty sposób, przez zastosowanie zaawan-
sowanych uproszczeń, podstawień, przekształceń, itp. Matematyczne podejście
do problemu zostaje zachowane, co umożliwia wnikliwe spojrzenie na charakter
i przebieg rozwiązania, wskazuje wpływ ewentualnych parametrów na wynik, a
także jego naturę.
Prostota oprogramowania oraz składnia poleceń umożliwia w szybkim tem-
pie rozwiązywać zaawansowane zadania matematyczne. Ogromna ilość procedur
graficznych pozwala na dowolną wizualizację danych, bądź wyników obliczeń.
Uzyskane rozwiązania mogą być automatycznie przekształcone na wysoko zop-
tymalizowany kod w języku C lub Fortran.
Jest to doskonałe narzędzie dla użytkownika przydatne do wykonywania
skomplikowanych operacji obliczeniowych, symulacji lub też tworzenia prac na-
ukowych, opracowań. Przekształcenia oraz wyniki obliczeń posiadają standardo-
wą notację matematyczną, która nadaje się do bezpośredniej publikacji. Wyniki,
przebieg obliczeń, grafika oraz dowolny opis są ujęte w postaci arkusza. War-
stwowa struktura arkuszy ułatwia zarządzanie całością pracy. Maple daje moż-
liwość dowolnego formatowania arkusza, oraz eksportu do LaTeX-a, co sprawia,
że środowisko to jest odpowiednie nie tylko do prowadzenia zaawansowanych
obliczeń i przekształceń matematycznych, ale daje również ogromne możliwości
tworzenia profesjonalnych publikacji.
Nieustanny rozwój Maple powoduje duże zmiany w graficznym interfejsie
użytkownika, oferuje miedzy innymi najnowsze algorytmy do obliczeń nume-
rycznych oraz symbolicznych, a przede wszystkim do rozwiązywania równań
różniczkowych cząstkowych i funkcji przedziałowo określonych.
3
1
Interfejs
W Maple występuja trzy rodzaje interfejsu:
• Standardowy arkusz
• Klasyczny arkusz
• oraz wiersz poleceń
Standardowy arkusz pozwala na tworzenie elektronicznych dokumentów, w
których można umieszczać obliczenia, uwagi do tych obliczeń, przemyślenia na
temat rozwiązywanego problemu. Używając specjalnych zakładek, można ukry-
wać wszelkie komentarze do rozwiązywanego zadania, co pozwala użytkownikowi
skupić się na końcowym wyniku.
Klasyczny arkusz jest przeznaczony dla starszych komputerów, z małą ilością
pamięci.
Wiersz poleceń stosowany jest do rozwiązywania bardzo dużych zadań.
Wszystkie instrukcje przekazywane do programu są wpisywane po znaku: >.
Nazywany jest on znakiem zgłoszenia. Dane wyjściowe muszą być zakończone
znakiem „:” lub „;”. Różnica między tymi znakami polega na tym, że średnik
każe programowi wykonać daną instrukcję i wyświetlić rezultat w arkuszu. Na-
tomiast dwukropek powoduje wykonanie instrukcji, bez wyświetlania wyniku.
W tym miejscu należy jeszcze wspomnieć o znaku backslash(\), który oznacza
kontynuację wiersza.
Dane wejściowe w pakiecie Maple są wyświetlane w kolorze czerwonym, a da-
ne wyjściowe są wyświetlane w kolorze niebieskim. W przypadku błędów otrzy-
muje się komunikat w kolorze różowym.
2
Konwencja w Maple
Maple ma bardzo różnorodną gamę logicznych i łatwych do zapamiętania kon-
wencji dotyczących składni. Standardowe operacje arytmetyczne to: dodawanie,
odejmowanie dzielenie, mnożenie, potęgowanie(wprowadzane za pomocą znaku
ˆ).
Dla programu MAPLE każdy ciąg liter i cyfr, nie rozpoczynający się od cy-
fry i nie zawierający innych znaków, jest zmienną. Nazwy zmiennych mogą być
dowolnej długości. Opisywany pakiet ma już wbudowane standardowe zmien-
ne, których nazwy są zastrzeżone. Znaczy to, że użytkownik nie może, nazwać
swojej zmiennej jeśli już istnieje zmienna o takiej samej nazwie. W tym miejscu
można wymienić kilka takich zmiennych, są to: Pi, I . . . Zmienne nie mogą też
przyjmować nazw funkcji wbudowanych.
Program MAPLE jest tak skonstruowany aby wykonywał wszystkie oblicze-
nia możliwie najdokładniej i w jak najbardziej ścisły sposób. Dlatego wszystkie
obliczenia są wykonywane za pomocą rachunku symbolicznego. Wpisując 3 +
4
Pi użytkownik otrzyma wynik 3+
Q zamiast spodziewanego: 6.14. . . . Aby zmu-
sić Maple do podania wyniku, należy użyć funkcji evalf(a), która oblicza wynik
wyrażenia a.
Argumenty funkcji wpisujemy w nawiasach okrągłych ”()”, np.: evalf(3+Pi).
Nawiasy kwadratowe są natomiast stosowane do wydobywania, bądź tworzenia
listy. Oznacza to, że jeśli utworzymy listę za pomocą instrukcji lista:=[2,3,1,4,5],
to dostęp do trzeciego elementu tej tablicy można uzyskać wydając komendę
lista[3]. Listy są indeksowane od 1.
Maple pamięta wszystkie zmienne użytkownika zdefiniowane w całej sesji.
Aby dowiedzieć się szczegółów dotyczących danego symbolu możemy się posłu-
żyć funkcją about(symbol). Aby odwołać się do poprzedniego obliczenia można
użyć znaku procent(%). Zmienną zdefiniowaną przez użytkownika można wy-
czyścić stosując polecenie a:=’a’, gdzie „a” jest zmienną.
Aby wykonać obliczenia w Maplu należy wcisnąć klawisz enter lub z paska
narzędzi wybrać odpowiednią opcję. Często jednak jest tak, że potrzeba jest
wprowadzenia kilku komend, i nie chcemy otrzymywać wyniku po każdej in-
strukcji. W takim przypadku trzeba wcisnąć kombinację klawiszy Shift+Enter
zamiast samego klawisza Enter.
3
Obliczenia podstawowe
Maple może być używany jako zwykły kalkulator, lecz jego możliwości są znacz-
nie większe. Potrafi dokonywać obliczeń z ogromną dokładnością. Ponadto oprócz
dużej funkcjonalności oraz elastyczności umożliwia dostęp do szerokiej gamy
funkcji matematycznych, jak choćby transformaty Fouriera, interpolacji, czy
analiz statystycznych. Funkcje pogrupowane są w pakiety, więc aby mieć do-
stęp do nich, należy dołączyć je za pomocą komendy with(„nazwa pakietu”).
Przykładowym pakietami są: linalg, combinat. Pierwsza z nich przeznaczona
jest do obliczeń algebraicznych z zakresu algebry liniowej, natomiast druga jest
przydatna przy kombinatoryce.
Maple pozwala dokonywać wielu różnorodnych obliczeń arytmetycznych i
algebraicznych, operacji na listach (mogących reprezentować zbiory, wektory
oraz macierze – listy zagnieżdżone). Jednymi z najbardziej popularnych funkcji
są:
• abs(x) - wartość bezwzględna (moduł) liczby x
• sqrt(x) - pierwiastek kwadratowy z x
• exp(x) - funkcja wykładnicza e
x
• ln(x) - logarytm naturalny x
• log[n](x) - logarytm x przy podstawie n
• log10(x) - logarytm x przy podstawie 10
5
• max(x
1
,x
2
,x
3
,...) - zwraca największą wartość spośród wymienionych x
1
,
x
2
, x
3
...
• min(x
1
,x
2
,x
3
...) - zwraca najmniejszą wartość spośród wymienionych x
1
,
x
2
, x
3
...
Maple jest bardzo przydatny do operacji na liczbach całkowitych. Umożliwia
na przykład rozkład liczb na czynniki pierwsze. Aby rozłożyć liczbę 875632487561
na czynniki pierwsze należy zastosować funkcję ifactor w następujący sposób:
ifactor(875632487561). Otrzymany wynik jest następujący:
(13) (29) (103) (139) (162229)
Innymi przydatnymi funkcjami na liczbach całkowitych są:
• Igcd(x
1
,x
2
,. . . ,x
n
) – największy wspólny dzielnik liczb x
1
,x
2
,. . . x
n
.
• Ilcm(x
1
,x
2
,. . . ,x
n
) – najmniejsza wspólna wielokrotność liczb x
1
, x
2
, . . . ,
x
n
.
• Isprime(x) – sprawdza czy liczba x jest liczbą pierwszą
Maple ma też wiele wbudowanych funkcji wspomagających działania na
ułamkach. Oto kilka z nich:
• Ceil(x), floor(x) – funkcje zwracają najmniejszą, największą liczbę całko-
witą większą, mniejszą bądź równą x.
• Round(x) – zaokrąglenie liczby x.
• Rationalize(x) – usuwa niewymierność z mianownika ułamka x.
Pakiet ten bazuje na obliczeniach symbolicznych, przez co doskonale nadaje się
do różnego rodzaju operacji na wyrażeniach algebraicznych. Wyrażenia
algebraiczne, trygonometryczne, logarytmiczne i inne rozwijamy przy pomocy
funkcji expand(f ), na przykład:
expand((x+3)*(4*x-2));
zwraca wynik:
4x
2
+ 10x − 6
Funkcja normal(f ) stosowana jest do upraszczania wyrażeń poprzez redukcję
wyrazów podobnych i skracanie, na przykład:
normal(a*a-(b+aˆ2 -1)+2 +3*b);
w rezultacie otrzyma się:
2b + 3
6
Można również obliczać wartość wyrażenia w punkcie x i/lub dla zada-
nej wartości parametru a. Do tego celu wykorzystujemy funkcję subs(x
1
=a
1
,
x
2
=a
2
,. . . ,w), która oblicza wartość wyrażenia w z warunkami x
1
= a
1
, x
2
=
a
2
... gdzie x
i
są zmiennymi (parametrami) wyrażenia w, a a
i
ich wartościami.
Dla:
w:=(3*a*xˆ4-4)/(2*x-a),
funkcji
subs(a=2,w)
wynikiem jest:
6x
2
− 4
2x − 2
Natomiast dodając jeszcze do funkcji parametr x=2 w następujący sposób:
subs(a=2,x=2,w);
otrzymamy wynik: 46.
4
Obliczenia numeryczne
Maple jest programem matematycznym, który wykonuje między innymi obli-
czenia numeryczne, czyli na konkretnych wartościach zmiennoprzecinkowych,
reprezentowanych ze skończoną, a więc ograniczoną dokładnością. Wszędzie
tam, gdzie nie da się zastosować symboli, Maple uruchomia swoje algorytmy
numeryczne i oblicza wynik przybliżony. Wynik jest jednak na tyle dokładny,
że nadaje się do zastosowań przemysłowych. Dokładność reprezentacji, która
zależy od zasobów komputera, może maksymalnie wynosić zarówno dla liczb
całkowitych, jak i zmiennoprzecinkowych 228 cyfr!
Ponieważ jednak Maple jest ukierunkowany na rozwiązywanie problemów za
pomocą rachunku symbolicznego, opisany będzie tutaj tylko najbardziej popu-
larny dział dotyczący metod numerycznych, a mianowicie macierze.
Macierz tworzymy wpisując: M:= matrix([[2,4,1],[1,3,2],[2,2,3]]); Wektor zaś
można utworzyć wpisując: v:=[2,1,4]; Chcąc rozwiązać w Maplu równanie Mx=v,
używa się funkcji linsolve() z biblioteki linalg, podając jej argumenty M oraz v
w następujący sposób linsolve(M,v). Otrzymamy wynik:
[2,
−3
5
,
2
5
]
Natomiast chcąc znaleźć macierz odwrotną do macierz M należy użyć funkcji
odwM:=inverse(M). W macierz odwM będzie zapisany wynik zwrócony przez
funkcje inverse().
Innymi przydatnymi funkcjami z biblioteki linalg są:
• transpose - funkcja do transponowania macierzy.
7
• Det – funkcja do obliczania wyznacznika macierzy.
• Coldim, rowdim – funkcja zwraca ilość kolumn, wierszy.
• Delcols,delrows – usuwanie kolumn, wierszy. W parametrach wejściowych
funkcji podaje się macierz oraz kolumny, które są do usunięcia. Np. del-
cols(C,2..2) – spowoduje usunięcie kolumny drugiej.
• Macierze można dodawać posługując się komendą evalm(M+N)
• Mutiply(M,N) – funkcja mnoży macierze M i N.
• Mulcom(M,n,j) – funkcja mnoży n-tą kolumnę, przez j.
• Swaprow(M,n,m) – funkcja przestawia wiersze w macierzy M.
W Maple istnieje szereg funkcji wbudowanych, które będą opisane w kolejnych
rozdziałach.
5
Obliczenia symboliczne
Maple, oprócz standardowych obliczeń numerycznych, potrafi działać także na
symbolach i wyrażeniach, optymalizując je i przekształcając do najprostszej po-
staci. Umiejętność wykonywania obliczeń na symbolach pozwala często uzyskać
dokładne rozwiązania wielu problemów matematycznych, takich jak całkowanie,
rozwiązywanie równań różniczkowych czy układów równań liniowych. Również
zwykłe obliczenia algebraiczne uwzględniają tu symbole, takie jak pierwiastek,
część urojona liczby zespolonej I czy liczba Pi.
Maple wykonuje obliczenia symboliczne m.in. na wyrażeniach zawierających
ułamki proste, logarytmy, funkcje trygonometryczne czy wielomiany. Symbole
wykorzystywane są także podczas obliczania wartości funkcji i rozwiązywania
równań, np. przy podstawianiu wzorów w miejsce zmiennych.
Poniżej zostaną przedstawione podstawowe zastosowania rachunku symbo-
licznego:
1. Wielomiany
Dzielenie wielomianów W
1
przez W
2
o współczynnikach wymiernych reali-
zuje się poprzez użycie funkcji divide(W
1
,W
2
,’q’). Funkcja zwraca wartość
logiczną ”true”, jeśli dzielenie jest wykonalne, w przeciwnym razie „false”.
Jeśli podamy dowolną nazwę jako trzeci argument (q), to w przypadku
wykonalności dzielenia, będzie mu przyporządkowany iloraz wielomianów:
divide(xˆ4-2*xˆ2+2*x-1,x-1,’q’);
funkcja ta zwraca wartość „true”, a w q zapisany jest nowy wielomian
powstały w wyniku podzielenia xˆ4-2*xˆ2+2*x-1 przez x-1:
x
3
+ x
2
− x + 1
Na wielomianach mogˇ
s być wykonywane również następujˇ
sce operacje:
8
• quo(W
1
,W
2
,x,’q’) – zwraca iloraz dwóch wielomianów W
1
i W
2
jednej
zmiennej x. Jeśli ostatnim argumentem będzie zmienna q to zostanie
jej przypisana reszta z dzielenia wielomianów.
• rem(W
1
,W
2
,x,’q’) - zwraca resztę z dzielenia dwóch wielomianów W
1
oraz W
2
jednej zmiennej x. Jeśli podamy jeszcze nazwę jako ostatni
(q) argument, to zostanie jej przyporządkowany iloraz wielomianów.
• Sort(W
1
) – sortowanie wielomianu wg stopnia.
• W bibliotece „student” mamy na przykład funkcję, która pozwala
nam zwinąć wielomian stopnia drugiego do pełnego kwadratu, jest
to funkcja completsquare.
completesquare(2*xˆ2+4*x-5);
otrzymamy wynik:
2(x + 1)
2
− 7
2. Różniczkowanie i całkowanie
Aby wyznaczyć pochodną z funkcji f zmiennej x należy zastosować funkcję
diff(f,x), na przykład:
diff(ln(sin(3/(3*x-1))),x);
−
9 cos
3
3x−1
(3x − 1)
2
sin
3
3x−1
Całkę nieoznaczoną oblicza się za pomocą funkcji int(f,x) po x z wyrażenia
f będącego funkcją tej zmiennej x. Przykład:
int(sin(2*x)+cos(x),x);
wynik:
−
1
2
cos(2x) + sin(x)
Natomiast całkę oznaczoną można wyznaczyć analogicznie określając do-
datkowo przedział całkowania [a,b]:
int(sin(2*x)+cos(x),x=1..2);
1
2
cos(2) − sin(1) −
1
2
cos(4) + sin(2)
3. Rozwiązywanie równań i układów równań
9
Maple ma wbudowaną funkcję solve umożliwiającą rozwiązanie równań..
Wyznacza ona symboliczne rozwiązanie danego równania. Znakomicie nadaje
się do rozwiązywania równań liniowych. Przy równaniach kwadratowych i sze-
ściennych zapis jest już w mniej przystępnej formie. Dla równań stopnia czwar-
tego udaje się jeszcze znaleźć rozwiązanie. Przydatne stają się również funkcje:
rhs(r) – zwracająca prawą stronę równania oraz lhs(r) – zwracająca lewą stronę
równania.
Mając dane:
r1:= 4*x-2*y-z=2;
r2:= x+4*y=7;
r3:= 5*x-y+3*z=4;
i używając funkcji solve w następujący sposób:
solve({r1, r2, r3},{x, y, z});
uzyska się następujący wynik:
y =
109
75
, z =
−4
25
, x =
89
75
6
Grafika
Do rysowania wykresów funkcji służą polecenia ”plot” i ”plot3d” - pierwsze do
funkcji jednej zmiennej, drugie do rysowania wykresów funkcji dwóch zmien-
nych. Wywołujemy je w następujący sposób:
plot(nazwa funkcji, dziedzina, wartości, inne opcje);
Jeśli ”nazwa funkcji” jest podawana bez zmiennej, wtedy ”dziedzina” jest
ujęta jako: ”a..b”, gdzie a,b są krańcami przedziału. Jeżeli natomiast zosta-
nie wpisana ”f(x)” bądź formuła funkcji, wtedy należy wpisać dziedzinę jako:
”x=a..b”. ”Wartości” podaje się jako ”c..d” lub ”y=c..d”. W drugim przypad-
ku pionowa oś zostanie oznaczona jako oś ”y”. Podanie przedziału wartości jest
opcjonalne - Maple wylicza wtedy maksymalną i minimalną wartość funkcji na
danej dziedzinie i je przyjmuje jako przedział wartości.
Wymienić należy kilka najbardziej przydatnych funkcji:
• Axes - ustawienie osi. ”typ” może być
FRAME (z dołu i z lewej strony), BOXED (wokół),
NORMAL (pośrodku),
NONE (bez osi).
10
• Color - ustawienie koloru wykresu, mogą to być:
aąuamarine, black, blue, navy. coral, cyan, brown, gold, green, gray, grey, khaki,
magenta, maroon, orange. pink, plum. red, sienna, tan, turquoise. violet, whe-
at, white, yellow; (dopuszcza się również brytyjską wersję słowa kolor: ”colour”);
• coords - układ współrzędnych, w którym ma być wykres, może być:
cartesian (prostokątny),
polar (biegunowy),
logarithmic (logarytmiczny);
• discont - jeśli ustawiona zostanie opcja discont=true, to na wykresach
funkcji nieciągłych nie będą się pojawiały pionowe linie w miejscach nie-
ciągłości,
Przykład:
Dla funkcji
f:= x-> 1/(exp(xˆ2));
wykres można narysować za pomocą polecenia:
plot(f, -2..2,0..1,color=green);
Chcąc narysować wykres kilku funkcji jednocześnie należy napisać:
11
plot([nazwa funkcji 1, nazwa funkcji 2, ...], x=a..b);
Ilość funkcji może być dowolna.
Aby odróżniać funkcje po kolorze, stylu bądź grubości linii, to należy również
opcje ująć w nawiasach kwadratowych, np. color=[red, green] - wtedy pierwsza
funkcja będzie czerwona, a druga niebieska.
W wykresach funkcji dwóch zmiennych postępuje się analogicznie.
Przykład:
plot3d([(3+cos(y))*y, (cos(y))+cos(x), sin(y)+sin(x)], y=0..2*Pi,
x=0..2*Pi);
Pozostałe funkcje graficzne są umieszczone w dwóch bibliotekach: plots i
plottools.
animate(funkcja, zmienna przestrzenna, zmienna czasowa, opcje);
Polecenie to przedstawia wykres funkcji dwóch zmiennych, jako animację, to
znaczy przedstawia kolejne wykresy funkcji f(x,t), dla ustalonych t przebiegają-
cych przedział „zmienna czasowa” w pewnych ustalonych odstępach.
Wśród opcji, oprócz dotychczas znanych, występuje:
”frames=n” ilość klatek oglądanej animacji - przedział czasowy, c..d
jest podzielony na n równych części.
display([struktura], insequence=true, opcje);
Przedstawia wykres struktury złożonej się z wielu obiektów graficznych na
jednym obrazie.
12
”insequence=true” jest opcjonalne. Jeśli go brak, to struktury te są
wyświetlane na raz, jeśli zaś jest, to są one wyświetlane
jedna po drugiej.
implicitplot(równanie, zmienne x, zmienne y, opcje);
Rysuje wykres funkcji uwikłanej, zadanej poprzez ”równanie”. Podanie prze-
działów ”zmienne x” i ”zmienne y” jest konieczne.
pointplot(lista punktów, opcje);
Rysuje punkty na płaszczyźnie. Do opcji w tym miejscu można dołączyć:
symbol=s - określa sposób rysowania wykresu(linii):
BOX (kwadrat),
CROSS (krzyżyk),
CIRCLE (kółko),
POINT (punkt)
DIAMOND (romb).
Dostępne są również odpowiedniki powyższych poleceń dla funkcji dwóch
zmiennych:
• animate3d,
• display3d,
• implicitplot3d.
7
Programowanie
W programie Maple podstawowe konstrukcje są zbliżone do konstrukcji, które
występują w wielu językach programowania.
1. Wyrażenia warunkowe
Budowane są w następujący sposób:
if <warunekl> then <poleceniel>
elif <warunek2> then <polecenie2>
...
else <polecenie ostatnie>
fi; .
Polecenia, które zaczynają się od elif oraz od else są opcjonalne. Maple
postępuje w następujący sposób: jeśli warunekl jest spełniony, to wtedy
wykonuje poleceniel. Jeśli nie, to sprawdza kolejny warunek, jeśli któryś
z nich jest spełniony to wykonuje odpowiednie polecenia. Gdy żaden z
warunków nie jest spełniony, a występuje linia zaczynająca się od else, to
wykonuje polecenie ostatnie.
13
2. Pętle
• Pętla for/from/by/to/do/od
Jest pętla o ogólnej postaci:
for <zmienna> from <początek> by <krok> to <koniec>
do <polecenie> od;
<polecenie> jest wykonywane dopóki <zmienna> nie przyjmie wartości
<koniec>
• Pętla for/from/by/while/do/od
for <zmienna> from <początek> by <krok>
to <koniec> while <warunek> do <polecenie> od: .
Odmienna pętla do poprzedniej, różni się tym, że <polecenie> jest wyko-
nywane dopóki spełniony jest <warunek>.
• Pętla warunkowa while/do/od
while <warunek> do
<polecenie>
od;
<polecenie> jest wykonywane dopóki <warunek jest spełniony>
• Pętla for/In/do/od
for <zmienna> in <wyrażenie> do
<polecenie>
od;
<zmienna> przyjmuje kolejne operandy <wyrażenia>, a <polecenie> jest
wykonywane tyle razy ile jest składników w <wrażenie>.
3. Wymuszanie i przerywanie powtarzania
W tym miejscu należy wymienić dwa polecenia:
• next - wymusza ignorowanie wykonywania dalszych poleceń w da-
nym kroku operacji powtarzania i natychmiastowo wykonuje następ-
ny krok pętli.
• break - służy do natychmiastowego przerwania wykonywania pętli.
4. Procedury
14
Podstawową zaletą języków programowania jest możliwość tworzenia pro-
cedur, w których możemy zawrzeć polecenia, występujące w wielu miejscach
programu. Stworzona procedura może zawierać szereg różnych poleceń, których
wielokrotne wypisywanie byłoby niewygodne.
W pakiecie Maple tworzenie procedur wygląda następująo:
<nazwa procedury>:=proc(<parametr1>::typ, <parametr2>::typ,
. . . )
<polecenia>
Od;
Wartością zwracaną przez procedurę jest domyślnie ostatnia obliczona war-
tość. Można jednak jawnie wyjść z procedury i zwrócić wynik używając po-
lecenia RETURN(<blok wyrażeń>). <blok wyrażeń> oznacza sekwencję wy-
rażeń oddzielonych przecinkami. Polecenie RETURN może być wywołane w
dowolnym miejscu procedury. Przerywa ona wykonywanie poleceń i zwraca
<blok wyrażeń>.
Warto jeszcze wspomnieć o poleceniu ERROR(<blok wyrażeń>). Polecenie
to przerywa wykonywanie procedury i informuje użytkownika o napotkanym
błędzie. <blok wyrażeń> będzie zwrócony po komunikacie Error.
Przykład procedury( prosty algorytm Euklidesa):
eukl:=proc(a::integer,b::integer)
l1:=a:
l2:=b:
c := irem(l1,l2):
while c<>0 do
l1 := l2:
l2 := c:
c := irem(l1,l2):
od;
RETURN(l2);
end;
Wywołanie tej procedury odbywa się tak samo jak w przypadku funkcji
wbudowanych, czyli eukl(a,b),gdzie a i b są liczbami całkowitymi.
8
Połączenie z innymi programami
Maple doskonale współpracuje z innymi językami programowania i programa-
mi. Funkcje Mapla nie muszą być pisane w jego własnym języku, mogą być one
wywoływane z zewnętrznych bibliotek albo zaimportowane z programu Matlab.
Maple potrafi generować kod w jezyku C, Fortran i w Java. Zatem podczas
pisania własnego programu, tworzenie niektórych fragmentów kodu można po-
wierzyć programowi Maple. Pakiet Maple pozwala ponadto na tworzenie tzw.
Mapletów. Maplety udostępniają całą moc obliczeniową programu, przy czym
są proste w obsłudze ze względu na okienkowy graficzny interfejs użytkownika.
Maple świetnie nadaje się również do prezentacji danych. Istnieje możliwość
dodawania komentarz, opisów. Dzięki temu bdajhą się one do publikacji. Jed-
15
nocześnie dynamiczna struktura tworzonych dokumentów czyni z nich bardzo
wartościowe materiały dydaktyczne i pozwala eksportować do róznych forma-
tówtakich jak: MathML 2.0, HTML i XML, TEX a także do MS Word 2000.
Maple może być także wspomagany przez Excela.
Maple jest również dostępny pod różne systemy operacyjne, takie jak: Win-
dows, Linux oraz wszelkie popularne odmiany Unix.
9
Podsumowanie
Maple odniósł spory sukces na świecie, zwłaszcza w środowiskach akademic-
kich. Jest to jeden z nielicznych programów, który może poszczycić się takimi
możliwościami obliczeniowymi. Jest to pakiet, który wyśmienicie nadaje się do
rozwiązywania zaawansowanych problemów matematycznych wykorzystujących
rachunek symboliczny, obliczenia numeryczne z bardzo dużą dokładnością. Ma-
ple posiada również bardzo bogaty zestaw funkcji do wizualizacji. Jest on wy-
korzystywany też do rozwiązywania zadań między innymi z algebry wyższej,
analizy, kombinatoryki, statystyki a także fizyki, ekonomii i wielu innych. Obli-
czenia matematyczne to jednak nie wszystko co potrafi Maple. Wykorzystywany
jest również do sporządzania artykułów i opracowań naukowych. Dobrze współ-
pracuje z takimi programami jak latex czy Word.
Olbrzymie możliwości obliczeniowe, czy współpraca z innymi programami
nie są jedynymi zaletami tego oprogramowania. Jest on bardzo prosty i intu-
icyjny w obsłudze, co powoduje, że przyciąga do siebie rzesze użytkowników.
Składnia poleceń umożliwia w szybkim tempie rozwiązywać zaawansowane pro-
blemy matematyczne. Wszystko to powoduje że, Maple pozwala użytkownikowi
skupić się na istocie problemu, a nie na żmudnych przekształceniach.
10
Literatura
• Maple User Manual
• Problem Solving with Maple A Handbook, C. Eberhart
• http://www.pcworld.pl/artykuly/26116.html
• http://www.fuw.edu.pl/∼msadow/maple/mul.php
16