Strona główna » Poradniki » Maxima » Zmienne i funkcje

Zmienne i funkcje

Deklarowanie zmiennych

Podczas użytkowania programu wygodne może okazać się wprowadzenie zmiennych. Przypuśćmy, że mamy swoją ulubioną liczbę, którą chcemy podać jako argument wielu różnym funkcjom. Niestety przepisywanie tego samego kilka razy może doprowadzić do pomyłki czy frustracji z powodu trwania procesu.

Jednak, aby łatwiej było osiągnąć nasz cel możemy tę liczbę zapisać pod zmienną a. Przypisywanie odbywa się poprzez wpisanie litery, ":" i wyrażenia. Jak każda linijka tu też musimy na końcu postawić średnik. Przykładowo:

(%i1)a:12345;
(a)12345

Teraz taką zadeklarowaną zmienną możemy użyć w dowolnym miejscu w naszym programie wpisując tylko a:

(%i2)a*2;
(%o2)24690

W trakcie użytkowania programu można przypisywać nowe zmienne, deklarować wiele zmiennych i używać w dowolnym wyrażeniu.

Definiowanie funkcji

Definiowanie funkcji w programie może okazać się bardzo przydatne. Funkcję definiujemy nazwa + "(" + lista_argumentów + "):=" i wyrażenie, przykładowo:

(%i4)f(x):=x^2 + 4*x - 2;
f(3);
(%i3)f(x):=x^2+4*x-2
(%i4)19

Funkcje mogą przyjmować bardziej skomplikowane formy. Napiszmy funkcję, która dla danego trójmianu kwadratowego wyznaczy nam jego wyróżnik. Załóżmy, że jako argumenty będą podane wartości stałych a, b, c. Jako wynik zostanie podana wartość wyróżnika:

(%i6)wyroznik(a,b,c):=b^2-4*a*c;
wyroznik(1,4,-2);
(%i5)wyroznik(a,b,c):=b^2-4*a*c
(%i6)24

W przypadku dłuższego korzystania bolesny może okazać się brak innych logarytmów niż tylko naturalnych. Jednak korzystając ze wzoru: możemy napisać funkcję, która będzie przyjmowała dwa argumenty: x jako wartość logarytmowaną i b jako bazę logarytmu:

(%i8)logarytm(x, b):=log(x)/log(10);
logarytm(10,10);
(%i7)logarytm(x,b):=log(x)/log(10)
(%i8)1

Deklarowanie zmiennych

Maxima potrafi operować na samych symbolach. Chcą uzyskać konkretny wynik warto znać kilka funkcji, które pozwolą nam uzyskać co konkretnie chcemy:

factor - znajduje rozkład danej liczby na liczby pierwsze

(%i9)factor(10!);
(%o9)

factor - potrafi również zamieniać wielomiany do postaci kanonicznej:

(%i10)factor(x^2 + x -6);
(%o10)(x-2)*(x+3)

expand - potrafi wyliczać postać ogólną wielomianu

(%i11)expand((x+1)^4);
(%o11)x^4+4*x^3+6*x^2+4*x+1

ratsimp - upraszcza wyrażenia

(%i12)ratsimp(((x^2-1)*(x-1))/((x+1)*(x-1)));
(%o12)x-1

Aplikacja potrafi też sobie radzić z wyrażeniami trygonometrycznymi, przykładowo:

trigsimp - upraszcza wyrażenie trygonometryczne

(%i13)trigsimp(cos(x)^2 + sin(x)^2);
(%o13)1

trigexpand - zwraca ogólną postać wyrażenia

(%i14)trigexpand(sin(2*x)+cos(2*x));
(%o14)-sin(x)^2+2*cos(x)*sin(x)+cos(x)^2