Maple :: zmienne, zestawy i listy

Zmienne

Wszystkie operacje matematyczne wykonuje się na zmiennych. W programie MAPLE nie ma potrzeby specjalnego definiowania używanych zmiennych (nazwy, typu itd.). Dla programu MAPLE każdy ciąg liter i cyfr, nie rozpoczynający się jednak od cyfry i nie zawierający innych znaków, jest zmienną. Nazwy zmiennych mogą być więcej niż jednoznakowe.

Jednakże może się zdarzyć, że potrzebujemy korzystać ze stałych nie zdefiniowanych w programie. W takiej sytuacji możemy zadeklarować jakąś zmienną i przypisać jej potrzebną nam wartość, np. g = 9.81

Sprawdźmy najpierw czy program MAPLE czasem nie ma zadeklarowanej takiej stałej:

> g;


                                       g

> about(g);


g:

  nothing known about this object

Przypisujemy zmiennej g wartość 9.81:

> g:=9.81;

                                   g := 9.81

Tak przygotowaną zmienną (stałą) możemy użyć w innych obliczeniach:

> g^2;

                                    96.2361

Wartość zadeklarowanej zmiennej można oczywiście zmieniać podczas dalszej pracy:

> g:=10;


                                    g := 10

> g^2;


                                      100

> about(g);

10:

  All numeric values are properties as well as objects.

  Their location in the property lattice is obvious,

  in this case float.

W celu usunięcia z pamięci zmiennej g należy wpisać

> g:='g';

                                    g := g

> about(g);

g:

  nothing known about this object

Obliczenia

Program MAPLE jest tak skonstruowany aby wykonywał wszystkie obliczenia możliwie najdokładniej i w jak najbardziej ścisły sposób. Może to powodować małe niedogodności:

> c:=sin(2);


                                  c := sin(2)

Aby zmusić MAPLE'a do podania wartości liczbowej można użyć funkcji evalf:

> evalf(c);


                                 0.9092974268

Zmienne zależne od innych zmiennych

Zmienne w programie MAPLE nie muszą być wartościami stałymi - mogą zawierać w sobie inne zmienne:

> a:=2*b;


                                   a := 2 b

> 2*a + 5;


                                    4 b + 5

Zestawy (ang. sets)

Zestawem w programie MAPLE nazywamy zbiór jedno- lub więcejelementowy zawierający niepowtarzające się elementy. Zestaw jest zawsze sortowany rosnąco.

> {2,1,3,2,1};


                                   {1, 2, 3}

W celu połączenia dwóch zestawów można użyć takiej funkcji:

> {a,b,c,d} union {d,e,f};


                              {a, b, c, d, e, f}

a wyznaczenie części wspólnej – takiej funkcji:

> {1,2,3,4,5} intersect {2,4,6,8,10};


                                    {2, 4}

Aby sprawdzić czy jakiś element (n) należy do danego zestawu ({w,e,d,n,e,s,d,a,y}) należy postąpić tak:

> member(n,{w,e,d,n,e,s,d,a,y});


                                     true

Dodanie elementu(-ów) do zestawu:

> ze:={2,3,4,3,4,4};


                                ze := {2, 3, 4}

> ze:={op(ze),-9};


                              ze := {-9, 2, 3, 4}

Listy (ang. lists)

Listą w programie MAPLE nazywamy zbiór jedno- lub więcejelementowy zawierający elementy, które (w odróżnieniu od zestawu) mogą się powtarzać. Elementy listy pamiętane są w takiej kolejności, w jakiej zostały podane.

> l:=[a,b,c,d,e,f,g,h,i,j];


                      l := [a, b, c, d, e, f, g, h, i, j]

W celu poznania rozmiaru listy (ilości znajdujących się na niej elementów) używamy funkcji:

> nops(l);


                                      10

Funkcja op służy do wybierania z listy konkretnych jej elementów:

> op(7,l);


                                       g

> op(4..8,l);


                                 d, e, f, g, h

> op(-2,l);

Dodanie elementu(-ów) do listy:

> li:=[2,3,4,3,4,4];


                           li := [2, 3, 4, 3, 4, 4]

> li:=[op(li),9];


                          li := [2, 3, 4, 3, 4, 4, 9]

Sekwencje

Za pomocą komendy seq tworzyć można ciągi skończone i wykorzystać je do tworzenia list lub zestawów:

> seq(k^2,k=1..100);


1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324,


    361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024,


    1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936,


    2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136,


    3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624,


    4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 6241, 6400,


    6561, 6724, 6889, 7056, 7225, 7396, 7569, 7744, 7921, 8100, 8281, 8464,


    8649, 8836, 9025, 9216, 9409, 9604, 9801, 10000

> [seq(k^2,k=-5..5)];


                     [25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]

> {seq(k^2,k=-5..5)};


                             {0, 1, 4, 9, 16, 25}

Inną metodą definiowania sekwencji jest użycie operatora $:

> [k^2$k=-5..5];


                     [25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]

> {k^2$k=-5..5};


                             {0, 1, 4, 9, 16, 25}