Strona główna » Poradniki » Maxima » Plan warstwicowy
 

Plan warstwicowy

Wstęp

Do rysowania wykresu funkcji dwóch zmiennych można użyć funkcji plot3D(). Jednak nie zawsze trójwymiarowe przedstawienie pozwala na odczytanie szukanych punktów. Rozpatrzym przykładowo funkcję f(x, y) = x4 - 2x2y + y2. Funkcja ta opisuje poniższą płaszczyznę:

Wykres 3D funkcji
(%i1)plot3d(x^4-2*x^2*y+y^2, [x, -2, 2], [y, 0, 10]);

Wykres pozwala na zorientowanie się jak zmieniają się wartości funkcji w zależności argumentów oraz gdzie należy szukać lokalnych ekstremów. Podczas analizy funkcji dwóch zmiennych warto zapoznać się z planem warstwicowym funkcji.

Plan warstwicowy

Warstwica to taki zbiór punktów, który odpowiada pewna ustalona wartość c. Analizując tego typu zbiory można narysować plan warstwicowy. Wtedy zazwyczaj punkty ze zbioru tworzą krzywą, która przedstawiona na wykresie osiąga jedną i tą samą wartością c. Ogólnie pozwala to na przedstawienie funkcji dwóch zmiennych przy pomocy wykresu 2D. W programie Maxima istnieje funkcja contour_plot(), która rysuje plan warstwicowy dla podanej funkcji. Jej działanie polega na sprawdzeniu maksymalnej i minimalnej wartości w danym obszarze. Następnie zbiór wartości jest dzielona na pewną ilość równych przedziałów. Następnie dla każdej skrajnej wartości z każdego przedziału jest rysowana krzywa na wykresie.

W celu narysowania planu warstwicowego funkcji należy podać conajmniej trzy argumenty. Są to: wzór funkcji, zakres zmienności zmiennej x oraz y. Zapis tych argumentów pozostaje taki sam jak w przypadku tworzenia wykresu 2D oraz 3D. Oto przykładowy plan warstwicowy:

Prosty plan warstwicowy
(%i2)contour_plot(x^4-2*x^2*y+y^2, [x, -2, 2], [y, 0, 10]);

Jak można zauważyć domyślnie rysuje się tylko parę linii co w przypadku bardzo dużej różnicy pomiędzy minimum, a maksimum może pozwolić poznać jak wygląda warstwica (jej kształt). Ponadto każda warstwa ma swój własny kolor, a w legendzie można podejrzeć jaką wartość reprezentuje.

Dostosowywanie

Domyślnie program rysuje jedynie trzy kontuy. W celu dostosowania wykresu można dopisać argument gnuplot_preamble o wartości set cntrparam levels x, gdzie za x można wstawić dowolną liczbę. W ten sposób można określić ile warstw powinno zostać narysowanych. W przypadku bardzo dużej ilości warstw legenda bardzo szybko się rozrasta, więc warto ją ukryć ustawiając argument legend na false. W przypadku narysowania planu konturowego z 10 konturami plan przedstawia się teraz następująco:

Dostosowany plan warstwicowy
(%i3)contour_plot(x^4-2*x^2*y+y^2, [x, -2, 2], [y, 0, 10], [legend,false], [gnuplot_preamble, "set cntrparam levels 10"]);

Wykres 3D i kontury

Ustawienia rysowania można ze sobą mieszać. Dzięki temu istnieje możliwość narysowania trójwymiarowego wykresu razem z konturami na podstawie. W ten sposób istnieje możliwość zapoznania się jak plan warstwicowy przechodzi na wykres 3D co nie musi być procesem oczywistym. W celu uzyskania takiego efektu należy użyć polecenia plot3D(), a w gnuplot_preamble dopisać set contour co da programowi wyraźny sygnał, że plan warstwicowy też powinien zostać narysowany. Przykładowo wykres może wyglądać następująco:

Wykres 3D razem z planem warstwicowym
(%i4)plot3d(x^4-2*x^2*y+y^2,[x,-2,2],[y,-0,10],[legend, false], [gnuplot_preamble,"set contour;set cntrparam levels 20"]);

Wykres jest w pełni obracalny, ale najbardziej przydatny kąt widzenia jest z góry na wykres. Pod tym kątem kolory wykresu 3D oraz kontury zlewają się w jeden rysunek co powoduje, że można w prosty sposób określić jak szybko pomiędzy warstwami zmienia się wartość funkcji (patrząc po odcieniach kolorów). Ten szczególny przypadek to mapa funkcji i można go uzyskać zmieniając gnuplot_preamble na set view map. Dodając jeszcze informację o wyświetlaniu konturach można otrzymać poniższy wykres.

Mapa funkcji
(%i5)plot3d(x^4-2*x^2*y+y^2,[x,-2,2],[y,-0,10],[legend, false], [gnuplot_preamble,"set view map;set contour;set cntrparam levels 20"]);

Teraz z wykresu można się dowiedzieć o wiele więcej niż z wykresu trójwymiarowego oraz samego wykresu konturowego. Dane są przejrzyste i jedyne co należy zrobic to dobrze się przyjrzeć. Jednak należy pamiętać, że każda metoda przedstawienia funkcji ma swoje wady jak i zalety.

Zadania

Zadanie 1

Dana jest funkcja wzorem f(x, y) = (x2 + y2)0.5, która opisuje stożek. Wygeneruj plan warstwicowy oraz mapę funkcji. Przykładowy wykres łączący wykres 3D oraz plan warstwicowy powinien wyglądać następująco:

Rysunek pomocniczy do zadania 1