Generowanie wykresów

Transkrypt

Generowanie wykresów
Zajęcia nr 7
WYKRESY
Prowadzący: mgr Marcin Spryszyński
www: http://www-users.mat.uni.torun.pl/ ∼spryszyn
e-mail: [email protected]
Istotna informacja
Prezentowane w tym skrypcie funkcje, poza plot oraz plot3d, dostępne są w bibliotece plots. Implementuje się ją poleceniem
> with(plots); .
Wykresy funkcji jednej zmiennej rzeczywistej o wartościach rzeczywistych
X plot(f(x),x=a..b,y=c..d) - rysuje wykres funkcji (jednej zmiennej) f na przedziale [a, b], ograniczając zakres wartości do przedziału [c, d] ( podawanie zakresu osi wartości jest nieobowiązkowe);
X plot([f1(x),· · · ,fk(x)],x=a..b,y=c..d) - rysuje na jednym układzie współrzędnych wykresy
funkcji f 1, · · · , f k;
X plot([f(t),g(t),t=a..b]) - rysuje krzywą zadaną parametrycznie, tj. zbiór postaci
{(f (t), g(t)); t ∈ [a, b]} .
Możliwe jest oczywiście zadanie kilku krzywych parametrycznych na jednym układzie współrzędnych. Aby to uczynić należy jako pierwszy argument funkcji podać listę złożoną z list określających
parametrycznie krzywe;
z Przykłady krzywych zadanych parametrycznie:
okrąg o środku w punkcie (x0 , y0 ) i promieniu r > 0
(
x(t) = x0 + r · cos(t)
y(t) = y0 + r · sin(t)
t ∈ [0, 2π]
elipsa o środku w punkcie (x0 , y0 ) i półosiach a, b > 0
(
x(t) = x0 + a · cos(t)
y(t) = y0 + b · sin(t)
t ∈ [0, 2π]
asteroida (hipocykloida) o środku w punkcie (x0 , y0 ) i średnicy a > 0 (krzywa, jaką opisuje
ustalony punkt okręgu toczącego się bez poślizgu wewnątrz okręgu o większym promieniu)
(
x(t) = x0 + a · cos3 (t)
y(t) = y0 + a · sin3 (t)
t ∈ [0, 2π]
cissoida o wierzchołku w punkcie (x0 , y0 ) i szerokości a > 0
(
2
a·t
x(t) = x0 + 1+t
2
a·t3
y(t) = y0 + 1+t2
1
t∈R
cykloida o wysokości 2a > 0 (krzywa, jaką opisuje tor punktu leżącego na obwodzie koła, które
toczy się bez poślizgu po prostej)
(
x(t) = a · (t − sin(t))
y(t) = a · (1 − cos(t))
t∈R
X interactive(funkcja,zmienne) - uruchamia applet języka Java (tzw. maplet), w którym mamy
możliwość wybrać żądane opcje wykresu, bez odwoływania się do linii komend;
X animate(procedura do generowania wykresu,lista określająca wykres,t=a..b,opcje) - generuje wykres (2D, 3D) i animuje go względem zadanego parametru w danym zakresie; Pierwszym
argumentem funkcji może być plot, plot3d, pointplot. Można również określić tło na jakim dokonywana będzie animacja - opcja background.
F Przykład: Efektem działania poniższej animacji jest punkt „ślizgający się” po sinusoidzie:
> p:=plot(sin(x),x=-Pi..Pi,color=blue,thickness=2):
animate(pointplot,[[x,sin(x)],symbol=diamond,symbolsize=20],x=-Pi..Pi
,frames=60,background=p);
X polarplot(zbiór (lista) krzywych, opcje) - rysuje wykresy zadanych krzywych we współrzędnych biegunowych (r(θ), θ) (domyślny zakres jest od −π do π);
X polarplot([r(t),θ(t),t=a..b]) - rysuje krzywą parametryczną (r = r(t), θ = θ(t)) dla podanego
zakresu parametru t;
X pointplot(lista punktów,opcje) - zaznacza w układzie współrzędnych zadane punkty; Można
nakazać programowi połączyć podane punkty (style=line) oraz wpływać na symbol oznaczający punkt opcją symbol (box, circle, cross, diamond, point) oraz na wielkość danego symbolu symbolsize=n (n ∈ N);
Wykresy funkcji dwu zmiennych rzeczywistych o wartościach
rzeczywistych
X plot3d(f(x,y),x=a..b,y=c..d) - rysuje wykres funkcji dwóch zmiennych na kwadracie [a, b]×[c, d];
Zakres zmiennej y może być zależny od zmiennej x.
F Przykład: Wygenerowany zostanie wykres na pewnym dwuwymiarowym stożku.
> plot3d(sqrt(x-y), x=0..9, y=-x..x);
X plot3d([f(s,t),g(s,t),h(s,t)],s=a..b,t=c..d) - generuje wykres parametryczny powierzchni
(obiektu)
{(f (s, t), g(s, t), h(s, t)); s ∈ [a, b], t ∈ [c, d]} .
X sphereplot(f(θ,φ),θ=a..b,φ=c..d,opcje) - rysuje powierzchnię określoną przy użyciu współrzędnych sferycznych (r = f (θ, φ), θ, φ) (efekt jest identyczny do zastosowania w funkcji plot3d
parametru coords=spherical)
F Przykład: „Skorupa ślimaka”
> sphereplot( (1.33)∧ theta * sin(phi), theta=-1..2*Pi, phi=0..Pi );
2
„sfera”
> sphereplot( 1, theta=0..2*Pi, phi=0..Pi, scaling=constrained );
X sphereplot([r(s,t),theta(s,t),phi(s,t)],s=a..b,t=c..d) - generuje wykres parametryczny
obiektu we współrzędnych sferycznych;
X cylinderplot(f(θ,z),θ=a..b,z=c..d,opcje) - rysuje powierzchnię określoną przy użyciu współrzędnych cylindrycznych (r = f (θ, z), θ, z) (efekt jest identyczny do zastosowania w funkcji plot3d
parametru coords=cylindrical)
X sphereplot([r(s,t),theta(s,t),z(s,t)],s=a..b,t=c..d) - generuje wykres parametryczny obiektu
we współrzędnych cylindrycznych;
F Przykład:
> cylinderplot( z, theta=0..2*Pi, z=0..1 );
> cylinderplot( [s*t, s, cos(t∧ 2)], s=0..Pi, t=-2..2 );
Parametry funkcji generujących wykresy
Prezentowane poniżej opcje dodatkowe obu tytułowych komend definiuje się wewnątrz procedur wymieniając je po przecinku następująco: parametr = wartość.
thickness = n - określa grubość linii jaką rysowany jest wykres; n ∈ {1, 2, . . . , 15};
color = kolor - określa kolor linii wykresu; kolor ∈ {grey, khaki, magenta, maroon, orange, navy,
pink, plum, red, sienna, tan, turquoise, violet, wheat, white, yellow}; można również określić swój
własny kolor funkcją color(paleta (RGB, HSV, HUE),parametry palety).
title = tytuł - tytuł wykresu; wartość tego parametru jest typu tekstowego (tzw. string);
titlefont = [RODZAJ,TYP,ROZMIAR] - określa czcionkę tytułu;rozmiar jest liczbą naturalną (domyślnie: 10), natomiast rodzaje i typy czcionek zawarte są w poniższej tabeli
RODZAJ
TIMES
TYP
ROMAN
BOLD
ITALIC
BOLDITALIC
COURIER
DEFAULT
BOLD
OBLIQUE
BOLDOBLIQUE
HELVETICA DEFAULT
BOLD
OBLIQUE
BOLDOBLIQUE
font = [RODZAJ,TYP,ROZMIAR] - określa czcionkę stosowaną do opisu wykresu (tj. jednostek osi,
nie dotyczy ani osi, ani legendy);
axesfont = [RODZAJ,TYP,ROZMIAR] - określa czcionkę etykiet osi układu współrzędnych (analogicznie jak powyższe funkcje dotyczące czcionek);
filled = true\false - wypełnia jednolitym kolorem powierzchnię między osią x-ową a wykresem
funkcji (gdy true); domyślną wartością jest false;
3
labels = [etykieta osi x, etykieta osi y, (etykieta osi z)] - określa nazwy osi układu
(etykiety są łańcuchami); do ustalenia czcionki etykiet służy parametr labelfont;
labeldirections=[vertical\horizontal,vertical\horizontal] - określa wyświetlanie etykiet
osi (pionowo, poziomo);
style = line\point - określa styl wykresu (czy punkty próbkowania są łączone czy też nie);
scaling = constrained\unconstrained - ustalenie tej samej długości jednostki na osiach układu
(constrained);
linestyle = SOLID\DOT - określenie stylu linii (ciągła\punktowa);
numpoints = n - określenie ilości punktów w jakich próbkowana jest funkcja do narysowania wykresu
(n ∈ N);
discont = true\false - określa, gdy true, możliwość wystąpienia w generowanych wykresach
punktów nieciągłości;
grid = [n,m] - ustala, przy funkcjach dwóch zmiennych, ilość próbek na pierwszą i drugą współrzędną (n, m ∈ N);
4

Podobne dokumenty