W programie Maxima do rysowania wykresów jak również innych obiektów można wykorzystać polecenie draw2d(). Korzystając z niego można ustalać w jaki sposób mają być rysowane wykresy, ich style oraz wiele innych przydatnych rzeczy. W tym artykule zostanie wyjaśnione jak rysować funkcje w określonym przedziale czy jak narysować kilka wykresów w jednym polu.
Przed przystąpieniem do generowania wykresów warto zdać sobie sprawę, że polecenie draw2d() przyjmuje pewną listę poleceń. Każde polecenie z kolei jest określone przez argumenty podane do tego konkretnego polecenia.
W programie Maxima podstawowymi poleceniami służącymi do określania sposobu rysowania funkcji są:
Składnia | Zastosowanie |
---|---|
explicit(f(x), x, x1, x2) | Funkcja określona na przedziale [x1, x2] |
implicit(równanie, x, x1, x2, y1, y2) | Krzywa bezwzględna, określona przez równanie, gdzie x jest określony na przedziale [x1, x2], a y na [y1, y2] |
parametric(x(t), y(t), t, t1, t2) | Krzywa parametryczna x(t), y(t), gdzie parametr t jest z przedziału [t1, t2] |
polar(r(φ), φ, φ1, φ2) | Funkcja w współrzędnych biegunowych; promień r w zależności od kąta φ z przedziału [φ1, φ2] |
W celu skorzystania z powyższych funkcji należy załadować bibliotekę draw tak jak to zostało przedstawione poniżej:
(%i1) | load(draw); |
Przypuśćmy, że do narysowania jest funkcja f(x) = x2 - 3x + 2 na przedziale [-3, 3]. Wtedy kod będzie wyglądał następująco:
(%i2) | wxdraw2d(explicit(x^2-3*x+2, x, -3, 3))$ | |
(%o2) |
Teraz przypuśćmy, że należy wyznaczyć miejsce przecięcia funkcji f(x) z funkcją g(x) danej wzorem g(z) = -z^2 +4z określonej na przedziale [-2, 4]. Obydwie funkcję przydałoby się odróżnić, więc przed narysowaniem kolejnej g(z) kolor pisaka zostanie zmieniony na inny kolor poleceniem color.
(%i3) | wxdraw2d(color=blue, explicit(x^2-3*x+2, x, -3, 3), color=red, explicit(-z^2+4*z, z, -2, 4))$ | |
(%o3) |
Jak nietrudno zauważyć program stara się dostosowywać wyświetlany wykrse do dziedzin obu funkcji. Można to skorygować zmieniając zakres wyświetlania narysowanych wykresów poprzez przekazanie odpowiedniego parametru funkcji draw2d().
(%i4) | wxdraw2d(color=blue, explicit(x^2-3*x+2, x, -3, 3), color=red, explicit(-z^2+4*z, z, -2, 4), xrange=[-2, 2])$ | |
(%o4) |
Polecenie implicit pozwala na ograniczenie funkcji dwóch zmiennych. Jest ona bardzo przydatna podczas rysowania hiperboli, aby wybrać konkretny fragment.
Przykładowe polecenie wygląda następująco:
(%i5) | wxdraw2d(implicit(x^2-y^2=-1,x,-5,5,y,-5,5))$ | |
(%o5) |
Należy pamiętać, że w przypadku ograniczania funkcji z poprzednich przykładów można ograniczyć poleceniami xrange oraz yrange. Zmiana każdej funkcji z osobna mogłaby się okazać bardzo niewygodna przy każdej kolejnej poprawce. Polecenie implicit znajduje zastosowanie w przypadku funkcji dwóch zmiennych.
W fizyce większość równań ruchu, szczególnie tych po okregu, zadaje się równaniami parametrycznymi. W przypadku, gdy obie funkcje zależą od tej samej zmiennej to należy użyć polecenia parametric. Przykładowo w celu narysowania wykresu jednostkowego należy wpisać:
(%i6) | wxdraw2d(parametric(sin(t),cos(t),t,-4,4),xrange=[-1.6,1.6],yrange=[-1.1,1.1])$ | |
(%o6) |
Bez dodania odpowiednich zakresów wyświetlania program narysuje koło wyglądające jak elipsa, ponieważ koło zostanie rozciągnięte, aby wypełnić prostokątny układ współrzędnych.
Niektóre rysunki zdecydowanie łatwiej jest opisać we współrzędnych biegunowych niż kartezjańskim. W przypadku takiego wzoru można skorzystać z polecenia polar. Jego użycie jest bardzo wygodne co pokazuje poniższy kod rysujący spiralę archimedesa:
(%i7) | wxdraw2d(polar(2*p,p,0,10),xrange=[-26,20],yrange=[-14,20])$ | |
(%o7) |
Rysowanie wykresów w określonym przedziale nie powinno już stanowić problemu. W następnej części zostanie wyjaśnione jak do narysowanych wykresów można dodać strzałki, opisy oraz inne obiekty.
Narysuj wykres funkcji f(x) = sin(x) określonej na przedziale [0, 4π] w taki sposób, aby przedział [0, 2π] był innego koloru niż [2π, 4π].
Narysuj w układzie współrzędnych biegunowych elipse. Przykładowy obraz to: