Łukasz Bocian - matrix.umcs.lublin.pl

Download Report

Transcript Łukasz Bocian - matrix.umcs.lublin.pl

Krzywe poziomu
i powierzchnie poziomu
Krzywe poziomu na płaszczyźnie
1.

Komenda ContourPlot
Powierzchnie poziomu w przestrzeni
2.

Komenda ContourPlot3D
Więcej przykładów
3.



Porównywanie Plot3D z ContourPlot
Krzywe 2-wymiarowe, zdefiniowane równaniem
Forma kwadratowa (kwadryka) powierzchni
w przestrzeni
Krzywe poziomu na płaszczyźnie
Komenda ContourPlot
W Mathematice krzywe poziomu (kontury) funkcji
f(x, y) są rysowane komendą ContourPlot.
Żeby zobaczyć krzywe poziomu wewnątrz prostokąta
x0 ≤ x ≤ x1, y0 ≤ y ≤ y1, używamy polecenia ze składnią:
ContourPlot[funkcja,{x,x0,x1},{y,y0,y1}]
2 2
Np. są to niektóre krzywe poziomu dla f(x,y)=xye-x -y
blisko początku układu współrzędnych:
ContourPlot[x*y*Exp[-x^2-y^2],
{x,-2,2},{y,-2,2}]
Krzywe poziomu na płaszczyźnie
Mathematica cieniuje przestrzenie pomiędzy krzywymi
poziomu. Jaśniejsze odcienie reprezentują wyższe
poziomy, podczas gdy ciemniejsze odcienie
reprezentują poziomy niższe.
Opcje dla ContourPlot:
ContourShading->False
- wyświetla krzywe poziomu bez cieniowania
pomiędzy nimi.
Contours->n
- rysuje n krzywych poziomu
Krzywe poziomu na płaszczyźnie
Contours->{poziomy}
- wyświetla kontury tylko przy wymienionych
poziomach. Poziomy oddzielamy przecinkami.
PlotPoints->n
- powiększenie rezolucji obrazu.
Przyjemniejszy niż poprzednio obraz:
ContourPlot[x*y*Exp[-x^2-y^2],
{x,-2,2},{y,-2,2},PlotPoints->100,
Contours->20]
Krzywe poziomu na płaszczyźnie
UWAGA:
Brak wartości dla PlotPoints oznacza 25. Bądźmy
ostrożni – większe wartości mogą uderzyć znacząco
w czas wykonania.
Przykład
2 2
Zobaczmy kontury dla f(x,y) = xye-x -y na poziomach
0, 0.1 i 0.15 bez żadnego cieniowania:
ContourPlot[x*y*Exp[-x^2-y^2],{x,-2,2},
{y,-2,2}, Contours->{0,0.1,0.15},
PlotPoints->100,
ContourShading->False]
Powierzchnie poziomu w przestrzeni
Komenda ContourPlot3D
Jeśli f(x,y,z) jest funkcją trzech zmiennych,
zdefiniowaną na obszarze x0 ≤ x ≤ x1, y0 ≤ y ≤ y1
i z0 ≤ z ≤ z1, wówczas powierzchnie poziomu f na
poziomie c można wyświetlić poleceniem
ContourPlot3D.
Jest ono zdefiniowane w pakiecie Graphics:
Needs[”Graphics`”]
ContourPlot3D[funkcja,{x,x0,x1},
{y,y0,y1},{z,z0,z1},Contours->{c}]
Powierzchnie poziomu w przestrzeni
Można określić więcej niż jedną powierzchnię poziomu,
która zostanie pokazana w tej samej grafice, przez
napisanie Contours->{poziomy}, gdzie poziomy
oddzielamy przecinkami.
Przykład
Możemy zobaczyć powierzchnię poziomu dla
f(x,y,z) = x3 - y2 + z2 na poziomie 1 i następnie 10.
Zauważmy, że te powierzchnie mają wówczas
równania: x3–y2+z2 = 1 i x3-y2+z2 = 10, indywidualnie.
Needs[”Graphics`”]
ContourPlot3D[x^3-y^2+z^2,{x,-2,5},
{y,-2,2},{z,-2,3},Contours->{1,10}]
Więcej przykładów
Porównywanie Plot3D z ContourPlot
Przykład
Rozpatrzmy f(x,y) = x2 - y2. Następujące komendy
pokażą kontury na poziomach 0, 1 i -1:
ContourPlot[x^2-y^2,{x,-2,2},
{y,-2,2}, Contours->{0,1,-1}]

Przypomnijmy, że kontur f przy poziomie c dostajemy
przez przyrównanie f(x,y)=c. Stąd:
Kontur przy poziomie 0 ma równanie x2 - y2 = 0,
na które składają się dwie proste: y=x i y=-x.
Więcej przykładów


Kontur przy poziomie 1 ma równanie x2 - y2 = 1
i jest to hiperbola otwarta z lewej na prawo.
Kontur przy poziomie -1 ma równanie x2 - y2 = -1
i jest to także hiperbola otwarta z góry na dół.
Możemy zobaczyć jak te trzy kontury powstają przez przecięcie
wykresu f(x,y) = x2 - y2 z płaszczyznami z=0, z=1 i z=-1.
pict1=Plot3D[x^2-y^2,{x,-2,2},{y,-2,2}]
pict2=Plot3D[0,{x,-2,2},{y,-2,2},PlotPoints->2]
pict3=Plot3D[1,{x,-2,2},{y,-2,2},PlotPoints->2]
pict4=Plot3D[-1,{x,-2,2},{y,-2,2},PlotPoints->2]
Show[pict1, pict2, pict3, pict4,
BoxRatios->{1,1,1}, ViewPoint->{1,3,0.7}]
Więcej przykładów
Krzywe 2-wymiarowe, zdefiniowane równaniem
Przykład
Równanie 2x2 -3xy +5y2 -6x +7y = 8 określa obróconą
elipsę na płaszczyźnie. Moglibyśmy oczywiście użyć
komendy 2-D ImplicitPlot do narysowania tego.
Lecz ta krzywa jest także krzywą poziomu funkcji
f(x,y) = 2x2 -3xy +5y2 -6x +7y przy poziomie 8.
Możemy zobaczyć to następująco:
ContourPlot[2x^2-3x*y+5y^2-6x+7y,
{x,-2,5},{y,-3,2}, Contours->{8},
ContourShading->False,PlotPoints->50]
Więcej przykładów
Forma kwadratowa powierzchni w przestrzeni
Formy kwadratowe powierzchni są tymi
powierzchniami w przestrzeni, które mogą być dane
za pomocą równania postaci:
Ax2+By2+Cz2+Dxy+Eyz+Fxz+Gx+Hy+Iz+J=0,
gdzie A, B, …, J są stałymi.
Za pomocą komendy ContourPlot3D możemy
swobodnie zobaczyć obrazy różnych form
kwadratowych powierzchni.
Więcej przykładów
Przykład 1
Równanie 3x2 + 4y2 + 5z2 = 9 określa elipsoidę.
To jest właśnie powierzchnia poziomu funkcji
f(x,y,z) = 3x2 + 4y2 + 5z2 przy poziomie 9.
Needs[”Graphics`”]
ContourPlot3D[3x^2+4y^2+5z^2,
{x,-2,2},{y,-2,2},{z,-2,2},
Contours->{9},ViewPoint->{2,1,1}]
Więcej przykładów
Przykład 2
Równanie x2/22 + y2/32 – z2/42 = 1 określa hiperboloidę
jednego arkusza:
Needs[”Graphics`”]
ContourPlot3D[x^2/2^2+y^2/3^2-z^2/4^2,
{x,-10,10},{y,-10,10},{z,-10,10},
Contours->{1}, ViewPoint->{2,1,1}]