MC, 10:41 sobota, 19.11.2011 r.
Ilustracja do artykułu: GNUplot: część 14. - Dziedzina funkcji, różne funkcje na przedziałach

GNUplot: część 14. - Dziedzina funkcji, różne funkcje na przedziałach

Zmiana zakresu wykresu jest podstawową umiejętnością każdego użytkownika GNUplota i nie ma z nią większych problemów, jeśli idzie jednak o ustawienia dziedziny funkcji, sprawa okazuje się znacznie mniej jasna, a przecież nie mniej przydatna. Oczywiście istnieje możliwość ustawienia dziedzin funkcji co zaprezentuję w tej części poradnika.

Funkcja określona na pewnej dziedzinie

Zatem do rzeczy. Określanie dziedziny dla funkcji w GNUplocie odbywa się za pomocą instrukcji warunkowej znanej z programowania:
warunek ? gdy spełniony : gdy nie spełniony
Zatem sprawa wygląda tak, że określamy dziedzinę funkcji (warunek) oraz dwa wzory funkcji dla argumentów z dziedziny i z poza niej.
Weźmy prosty przykład - zakres x-ów na wykresie niech będzie od -5 do 5, a narysujmy wykres funkcji kwadratowej określonej na dziedzinie [-2;4].
plot [-5:5] (x>-2 && x<4) ? x**2 : 0/0 notitle;
Od razu śpieszę z wyjaśnieniem jak należy rozumieć 0/0 i dlaczego GNUplot nie protestuje w tym miejscu. Jak wiadomo 0/0 (0 podzielone przez 0) jest symbolem nieoznaczonym i w takiej konstrukcji GNUplot po prostu będzie to traktował jako nasze życzenie aby poza dziedziną nie zaznaczać żadnych punktów (są nieoznaczone). Symbol && oznacza koniunkcję zaś alternatywę oznaczamy przez ||.

Zamiast symbolu nieoznaczonego dodajmy tam wzór innej funkcji:

plot [-5:5] (x>-2 && x<4) ? x**2 : 3*x+2 notitle;

Zbiór funkcji określonych na kilku przedziałach

Dotąd rozpatrzyliśmy przypadek, w którym określamy dziedzinę dla funkcji, oraz funkcję określoną na dopełnieniu tej dziedziny, czyli innymi słowy, gdy cały wykres zajmują dwie funkcje określone na różnych przedziałach. Co gdy interesuje nas bardziej złożony przypadek? Odpowiedź jest prosta - zapytania warunkowe można ze sobą łączyć, co pokazuję na poniższym przykładzie:
plot [-5:5] (x>-2 && x<4) ? x**2 : ((x<0) ? 4 : 4*x) notitle;

Mam nadzieję, że zagadnienie wydaje się już dostatecznie jasne i nie będzie już problemów z określeniem dziedzin funkcji w programie GNUplot.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: