Strona główna » Poradniki » Maxima » Szybki start
ΣξM
 

Szybki start

Krótko o programie

Maxima to program, który służy do rozwiązywania zadań matematycznych. Zalicza się do programów CAS (Computer Algebra System) co oznacza, że nie jest zwykłym kalkulatorem. Rozbudowana obsługa wprowadzonych danych pozwala na niemalże dowolne manipulowanie nimi. Program pozwala również wygenerować wykresy, obliczać wyznacznik macierzy i wiele innych. Ponadto przechowuje wyniki z bardzo dużą precyzją nieznacznie tracąc na szybkości.

Pomimo wielu zalet program posiada także szereg wad do których zalicza się: mało intuicyjne wprowadzanie danych (szczególnie w konsoli) czy problem z rozwiązaniem równania, a czasem trzeba ręcznie poprawiać dane wyjściowe. Użytkownicy Maximy wciąż zgłaszają problemy i tworzą poprawki czyniąc program coraz mniej zawodnym.

Skąd zdobyć?

Główna strona internetowa: http://maxima.sourceforge.net/. Program można pobrać z sekcji Downloads.
Na platformie Windows instalujemy program po pobraniu pliku *.exe i z poziomu Start > Wszystkie Aplikacje wybieramy sekcje Maxima. Znajdziemy tam:

  1. Maxima (command line) - co pozwoli wywołać funkcje bezpośrednio w linii poleceń
  2. XMaxima (simple GIU)
  3. wxMaxima (GUI for Maxima)
W każdym z nich działają te same komendy, ale sposób wprowadzania ich się różni. W swoim artykule skupie się na obsłudze ostatniej 3) pozycji.

wxMaxima - szybki start

Po uruchomieniu pojawia się nam widok bardzo podobny do zwykłego notatnika tekstowego. Nie zwlekając zacznijmy wpisywać z klawiatury "2+2", a potem SHIFT+ENTER. Ukaże nam sie:

(%i1)2+2;
(%o1)4

Tak samo zadziała z odejmowaniem, mnożeniem ... itd. Oczywiście ilość składników możemy dowolnie zwiększać. Program w tej chwili zachowuje się jak zwykły kalkulator. Okazuje się, że jednak program już tu zyskuje przewagę nad normalnym kalkulatorem mogąc przechować bardzo duże liczby i obliczając je w rozsądnym czasie. Wystarczy wpisać 13^26 lub 2^512.

Warto zauważyć, że wprowadzenie danych ma tajemniczy kod np. (%i01), a każdy wynik np. (%o01). Są to znaczniki, które pozwolą nam się odwołać do poprzedniego wyniku bez potrzeby przepisywania go czy kopiowania. Przeanalizujmy poniższy fragment:

(%i2)2 + 2;
(%o2)4
(%i3)%o2 * 3;
(%o3)12

W programie wykonaliśmy dwie niezależne od siebie operacje. Zapisany wynik z operacji pierwszej użyliśmy w drugiej odwołując się do kodu wyniku operacji pierwszej.

Kolejnym punktem do omówienia pozostają ułamki liczb. W zwykłym programie dzielenie oznacza operacje, która bardzo często niesie za sobą utratę wielu cennych informacji. Maxima potrafi przechować zarówno ułamki jak i rozwinięcie z precyzją nie wymagającą przybliżenia.

Na podstawie sposobu wpisanych danych program po interpretacji zwróci wynik w odpowiednim formacie. Format jest wybierany na takich samych zasadach jak przy operacjach arytmetycznych w C++ tj.:
dzielenie dwóch liczb całkowitych zwróci nam wynik całkowity jak ułamek skrócony:

(%i4)6 / 2;
(%o4)3

jeśli podzielimy liczbę całkowitą przez liczbę rzeczywistą to otrzymamy liczbą rzeczywistą

(%i5)6 / 2.0;
(%o5)3.0

jednak dzieląc już mniejszą liczbą całkowitą przez większą nie otrzymamy ("brzydkiego") dziesiętnego wyniku, a skrócony ułamek

(%i6)1 / 2;
(%o6)

Niemniej czasem nam zależy nam na rozwinięciu dziesiętnym, ponieważ łatwiej nam wtedy porównać dwie liczby - możemy liczbę całkowitą podzielić przez rzeczywistą i otrzymamy liczbę rzeczywistą w rozwinięciu dziesiętnym

(%i7)1 / 2.0;
(%o7)0.5

jednak lepszym pomysłem jest użycie specjalnej funkcji float, która zamieni każdy wynik na wynik w formacie dziesiętnym

(%i8)float(1 / 2);
(%o8)0.5

Wbudowane funkcje i stałe

Program posiada szereg wbudowanych stałych i funkcji:

kodstała przypisana
%eliczba Eulera
%gammastała Eulera
%pi
%phizłoty podział
%iczęść urojona
inf
minf

Przykładowo w celu obliczenia pola koła można wpisać:

(%i9)%pi*5^2;
(%o9)

Wśród podstawowych funkcji można wyróżnić:

kodstała przypisana
sqrt(x)pierwiastek z x
log(x)logarytm naturalny z x
cos(x)funkcja cosinus
sin(x)funkcja sinus
tan(x)funkcja tanges
cot(x)funkcja contanges

Zamiast x można wstawić dowolne wyrażenie algebraiczne, przykładowo:

(%i10)log(%e);
(%o10)1