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.
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:
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 |
Program posiada szereg wbudowanych stałych i funkcji:
kod | stała przypisana | |
%e | liczba Eulera | |
%gamma | stała Eulera | |
%pi | ||
%phi | złoty podział | |
%i | część 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ć:
kod | stał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 |