Przeglądaj wersję html pliku:

Matlab 5


Instytut Robotyki i In»ynierii Oprogramowania Wy»sza Szkoªa In»ynierska w Zielonej Górze

Laboratorium Systemów Przetwarzania Numerycznego i Symbolicznego

Elementy graki trójwymiarowej
Program ¢wiczenia obejmuje nast¦puj¡ce zadania: 1. Do rysowania krzywych wykorzystuje si¦ polecenie

plot3 . Przy jego pomocy narysowa¢ wykresy krzy-

wych danych nast¦puj¡cymi równaniami parametrycznymi: (a) (b) (c) (d)

(tn , t, t), (t , t, t )
2 3

n = 1, 2, 3

(sin t, cos t, t) (cosh t, sinh t, t)

Jak do otrzymanych wykresów doda¢ opisy osi i tytuª caªego rysunku? 2. Aby narysowa¢ wykres funkcji

sin(r)/r na prostok¡cie [−8, 8]×[−8, 8], nale»y wprowadzi¢ ci¡g instrukcji

>> >> >> >> >> >>

x = -8:.5:8; y = x; [X, Y] = meshgrid(x,y); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(Z) mesh(Z) wywoªaniem surf(Z) ? (zob. colormap )?
[−8, 8]
(podobnie na osi

Wyja±ni¢ znaczenie ka»dej z tych instrukcji. Jak¡ rol¦ peªni w czwartym poleceniu zmienna otrzyma si¦ po zast¡pieniu wywoªania u»ywan¡ przez to ostatnie polecenie

eps?

Co

Jak zmieni¢ palet¦ kolorów

Jak do otrzymanego wykresu doda¢ opisy osi i tytuª caªego rysunku? Zauwa»y¢, »e zakres warto±ci na osi

x

nie odpowada bynajmniej zakresowi

y ).

Sk¡d bior¡ si¦ w takim razie

widoczne warto±ci? Jak doprowadzi¢ do wªa±ciwego wyskalowania wszystkich osi? A jak w ogóle usun¡¢ z rysunku wszystkie osie? Do zmiany k¡ta widzenia caªego wykresu sªu»y polecenie j¡c kolejno

view. Przetestowa¢ jego dziaªanie wprowadzaview(-37.5,30) , view(-7,80) , view(-90,0) , view(-7,-10) (zwróci¢ uwag¦ na to, »e k¡ty

s¡ w tym przypadku wyj¡tkowo podawane w stopniach, a nie w radianach). Narysowa¢ wykresy poni»szych funkcji: (a) (b) (c) (d) (e) (f ) (g)

z = x + 2y − 2, z =x +y , sin(xy),
2 2 2

(x, y) ∈ [−2, 2] × [−2, 2]

(x, y) ∈ [−2, 2] × [−2, 2] (x, y) ∈ [−2, 2] × [−2, 2] (x, y) ∈ [10, 20] × [−10, 10]

(x, y) ∈ [0, 3π] × [0, π] , (x, y) ∈ [−2, 2] × [−2, 2]
y4 x 24 )e ,

z = ln(x + 4y 2 ), z=e
−4x2 −y 2 x2 2

z = (1 − z = −10

+

|xy|,

(x, y) ∈ [−5, 5] × [−5, 5]
1

(h)

z=

  

xy

x2 − y 2 x2 + y 2 0

gdy gdy

x2 + y 2 > 0 x=y=0 − 10( x − x3 − y 5 )e−x 5
2

(i) (j)

z = −10x3 y 2 , z = 3(1 − x) e

(x, y) ∈ [−5, 5] × [−5, 5]
−y 2

2 −x2 −(y+1)2

− 1 e−(x+1) 3

2

−y 2

,

(x, y) ∈ [−3, 3] × [−3, 3]

3. Do rysowania izolinii sªu»¡ procedury

contour i contour3 . Czym ró»ni si¦ ich dziaªanie? Przetestowa¢

je na przykªadach z poprzedniego zadania. Jak zmieni¢ liczb¦ rysowanych poziomic? Jak spowodowa¢ umieszczenie obok ka»dej poziomicy liczb oznaczaj¡cych odpowiedni¡ warto±¢ funkcji? Jak doprowadzi¢ do sytuacji, gdy dªugo±ci obu osi na ekranie s¡ równe (ekran spªaszcza wykres tak, »e ma on ksztaªt prostok¡ta, a nie kwadratu)? Podobnym poleceniem jest

kolorów (zmienia si¦ je poleceniem

pcolor . Wypróbowa¢ colormap ).

jego dziaªanie, testuj¡c równocze±nie ró»ne palety

Zastanowi¢ si¦ jak narysowa¢ poziomice funkcji, wypeªniaj¡c jednocze±nie przestrze« mi¦dzy nimi odpowiednimi kolorami (tak jak w kartograi: punkty poªo»one najwy»ej maj¡ by¢ rysowane na czerwono, ni»ej  na »óªto, itd.). Wskazówka: W tym celu trzeba równocze±nie u»y¢ funkcji

pcolor ,

jak równie» pozby¢ sie instrukcj¡

shading flat

siatki rysowanej przez

pcolor .

contour

i

4. Co oznacza symbol

NaN?

Co spowoduje zamiana instrukcji

>> mesh(Z)
w przykªadzie z zad. 2 na sekwencj¦

>> Z(16:30, 4:16) = NaN * Z(16:30, 4:16); mesh(Z)
5. Funkcjami podobnymi w dziaªaniu do rysuj¡c wykresy funkcji z zad. 2. 6. Efekt o±wietlenia powierzchni uzyskuje si¦ poprzez zastosowanie funkcji na przykªadzie sekwencji polece«

surf i mesh



surfc i meshz . Prosz¦ przetestowa¢ ich dziaªanie surfl . Sprawdzi¢ jej dziaªanie

>> >> >> >> >>

[X, Y] = meshgrid(linspace(-1,1,50)); Z = -X.^2 - Y.^2; surfl(Z, [-10 50]); colormap(gray); shading flat

Jaka jest rola ka»dego z tych polece«? Jak zmieni¢ poªo»enie ¹ródªa ±wiatªa? Dlaczego lepiej jest w tym przypadku stosowa¢ g¦stsze siatki punktów, na których wyznaczane s¡ warto±ci funkcji? 7. Jaka jest rola polecenia

hidden off

w poni»szym ci¡gu instrukcji?

>> >> >> >> >> >>

[X, Y] = meshgrid(linspace(-1,1,10)); Z = X.^2 + Y.^2; mesh(Z) hold pcolor(Z) hidden off mesh
narysowa¢ powierzchnie okre±lone nast¦puj¡cymi równaniami parame-

8. Przy pomocy polecenia trycznymi: (a)

(s, t, s − t)
2

(b) (c) (d) (e) (f ) (g) (h)

(t + 1, s, s − t) (s + t, s − t, s2 + t2 ) (s2 − t2 , 2st, s2 + t2 ) (s + t, s − t, st) (s, t, t3 − 3s2 t) (sin s cos t, sin s sin t, sin s), (cos s, sin s, t) (s, t) ∈ [0, π] × [0, 2π]

9. Czy polecenie

subplot

dziaªa równie» w przypadku wykresów trójwymiarowych? Aby si¦ o tym

przekona¢, prosz¦ spróbowa¢ narysowa¢ na jednym rysunku cztery wykresy wybranej funkcji utworzone odpowiednio przy pomocy polece«

mesh, pcolor , contour3 i contour . mesh),

10. Gdy rysuje si¦ kolejno dwa wykresy (np. poleceniem

otworzone jest tylko jedno okno graczne.

Fakt ten powoduje, »e polecenie narysowania drugiego wykresu ko«czy si¦ nieuchronnym zmazaniem wykresu pierwszego, co nie zawsze jest dopuszczalne. Jak w takim razie do rysowania drugiego wykresu otworzy¢ nast¦pne okno graczne? 11. W jaki sposób wydrukowa¢ otrzymany wykres na drukarce lub zapami¦ta¢ go w pliku? Czy fakt, »e u»ywa si¦ przy tym PostScriptu, stanowi zalet¦ czy wad¦? Dlaczego równie» w innych programach tego typu (Mathematica, Maple V) graka opiera si¦ na tym standardzie?

3

 
statystyka