P
OLITECHNIKA
´
S
L ˛
ASKA
W
YDZIAŁ
I
N ˙
ZYNIERII
B
IOMEDYCZNEJ
Sprawozdanie
Wykresy symboliczne i wektorowe.
Autor: ANNA ZIELI ´
NSKA
Prowadz ˛
acy ´cwiczenie: MONIKA BUGDOL
Gliwice, 20 marca 2012
Spis treści
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Spis rysunków
Okno wykresu o rozmiarach 640x480 px zamieszczone w lewym dol-
nym rogu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . .
4
Wykres funkcji sin(x)/x w przedziale [0; 5]
. . . . . . . . . . . . . . .
5
. . . . . .
6
. . . . . . . . . . . . . . .
7
) nałożonej na wykres poprzedni.
. . . . . . . .
8
. . . . . . . . . . . . . . . .
9
. . . . . . . . . . . . . . . . . . . . . 10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.10 Trójwymiarowy wykres funkcji x
. . . . . . . . . . . . . . . 12
2.11 Interaktywny wykres funkcji Spirala Fermata
. . . . . . . . . . . . . . 13
1. Opis zawartości
W sprawozdaniu zawarte są kody utworzone w środowisku MATLAB do kolej-
nych zadań podanych w instrukcji. Wykresy i funkcje umieściłam bezpośrednio w
paragrafie opisującym dane zadanie, zamieściłam również wykaz wykresów zawar-
tych w sprawozdaniu.
2. Zadania
2.1
Zadanie 1
Utworzyć okno graficzne przechowywane w uchwycie o1 o nazwie zgodnej z wła-
snym imieniem i nazwiskiem i rozmiarze 640 na 480 umieszczone w lewym dolnym
rogu ekranu (należy wybrać i zmodyfikować odpowiednie właściwości okna).
W środowisku MATLAB funkcja get() wyświetla wszystkie właściwości danego
okna, a dzięki funkcji set() można te właściwości zmienić. W funkcji set() w polu
’Position’ [0 0 640 480], pierwsze dwie cyfry wskazują na położenie okna, przy czym
[0 0...] to lewy, dolny róg, natomiast [... 640 480] wskazują na rozmiar tego okna.
o1=
f i g u r e
;
get
( o1 )
s e t
( o1 , ’Name ’ , ’ A n n a Z i e l i n s k a ’ , ’ P o s i t i o n ’ , [ 0 0 640 4 8 0 ] )
Rys. 2.1:
Okno wykresu o rozmiarach 640x480 px zamieszczone w lewym dolnym rogu
2.2
Zadanie 2
W nowym oknie graficznym o nazwie „Zadanie 2” należy wykreślić (używając
operacji na zmiennych symbolicznych) wykres następującej funkcji: f =
sinx
x
Tutaj należało stworzyć symboliczny wykres funkcji sinx/x. Funkcja syms(’x’)
4
2. Zadania
deklaruje zmienną symboliczną, a funkcja ezplot(), służy do narysowania funkcji
symbolicznej.
o2=
f i g u r e
;
get
( o2 )
s e t
( o2 , ’Name ’ , ’ Z a d a n i e 2 ’ )
syms ( ’ x ’ ) ;
f=
s i n
( x ) / x
e z p l o t ( f )
Rys. 2.2:
Wykres funkcji sin(x)/x
2.3
Zadanie 3
W oknie przechowywanym w uchwycie o1 należy wykreślić funkcje rysowaną w
poprzednim poleceniu, zawężoną do przedziału od < 0; 5 >.
Funkcja ezplot(f,[a b]) dodatkowo ustanawia przedziały w jakich dana funkcja
ma być wyświetlona, w tym przypadku to [0; 5].
f=
s i n
( x ) / x
f i g u r e
( o1 )
s e t
( o1 , ’Name ’ , ’ A n n a Z i e l i n s k a ’ , ’ P o s i t i o n ’ , [ 0 0 640 4 8 0 ] )
e z p l o t ( f , [ 0
5 ] )
2.4. Zadanie 4
5
Rys. 2.3:
Wykres funkcji sin(x)/x w przedziale [0; 5]
2.4
Zadanie 4
Zamknąć wszystkie otwarte do tej pory okna graficzne.
Funkcja close all spowoduje zamknięcie wszystkich okien graficznych.
c l o s e a l l
;
2.5
Zadanie 5
Dla funkcji f (x) = x
2
− 2x + 4 należy (operując na zmiennych symbolicznych)
obliczyć równanie funkcji g(x), której wykresem jest prosta styczna do f(x) w punkcie
x
0
= 1.
Wykresy obydwu funkcji należy narysować w jednym oknie o nazwie „Pochod-
na”przechowywanym w uchwycie o3.
Równanie na styczną to: y − f (x
0
) = f
0
(x
0
) ∗ (x − x
0
) Funkcja diff() pozwala
obliczyć pochodną funkcji, natomiast funkcja subs() podstawia konkretne wartości
pod zmienną symboliczną.
o3=
f i g u r e
s e t
( o3 , ’Name ’ , ’ Pochodna ’ )
syms ( ’ x ’ ) ;
f =(x ˆ2) −(2∗ x ) + 4 ;
x0 =1;
6
2. Zadania
e z p l o t ( f )
hold
on
g=s u b s (
d i f f
( f ) , x , x0 ) ∗ ( x−x0)+ s u b s ( f , x , x0 )
e z p l o t ( g )
grid
on
Rys. 2.4:
Wykres stycznej do równania x
2
− 2x + 4 w punkcie x
0
= 1
2.6
Zadanie 6
Utworzyć wektor danych x
d
, zmieniających sie w przedziale < −
Π
2
;
Π
2
> ze sko-
kiem co
Π
10
. Wygenerować wektory y
1
, y
2
, y
3
zawierające odpowiednio wartości funkcji
sin(x
d
), cos(x
d
), tg(
x
d
2
), dla każdego z argumentów przechowywanych w wektorze
x
d
. W oknie o nazwie „Trygonometryczne”, przechowywanym w uchwycie o4, wy-
rysować następujące zależności: y1 = sin(x
d
), y2 = cos(x
d
), y3 = tg(
x
d
2
) (używając
poprzednio obliczonych wektorów). W trakcie rysowania proszę zróżnicować krzywe
kolorami.
Dzięki funkcji hold on można na poprzednie wykresy nałożyć następne.
o4=
f i g u r e
;
s e t
( o4 , ’Name ’ , ’ Trygonometryczne ’ )
xd= (−
pi
/ 2 ) : (
pi
/ 1 0 ) : (
pi
/ 2 )
y1=
s i n
( xd )
f i g u r e
( o4 )
plot
( y1 , ’ b ’ ) ;
hold
on
y2=
cos
( xd )
2.7. Zadanie 7
7
plot
( y2 , ’ g ’ ) ;
hold
on
y3=
tan
( xd / 2 ) ;
plot
( y3 , ’m ’ ) ;
Rys. 2.5:
Wykres funkcji sin(x
d
), cos(x
d
), tan(x
d
/2)
2.7
Zadanie 7
Na bazie utworzonego w poprzednim punkcie wektora x
d
należy wygenerować
wektor y4, zawierający wartości funkcji tg(x
d
) dla każdego z argumentów przecho-
wywanych w wektorze x
d
. W oknie użytym w poprzednim podpunkcie należy do-
rysować zależność y4 = tan(x
d
). Proszę odpowiedzieć na następujące pytania: Co
stało sie z wykresem i dlaczego? Czy wykres nadal jest poprawny?
Ten wykres nie jest poprawny, ponieważ wartość funkcji tangens dla wartości −
Π
2
i
Π
2
nie istnieje. Natomiast reszta wykresów będzie poprawna, na tym wykresie jest
ona jednak niewidoczna, ponieważ MATLAB przeskalował oś tak, że skala wynosi
10
16
.
y4=
tan
( xd ) ;
f i g u r e
( o4 ) ;
plot
( xd , y4 , ’ y ’ ) ;
8
2. Zadania
Rys. 2.6:
Wykres funkcji tan(x
d
) nałożonej na wykres poprzedni.
2.8
Zadanie 8
Używając równania parametrycznego okręgu (współrzędne biegunowe), proszę
narysować okręg o środku w punkcie (0;0) i promieniu 4. Należy zastosować polecenie
plot. Wykres powinien znaleźć się w oknie o nazwie „Okręgi” przechowywanym w
uchwycie o5.
Równanie parametryczne okręgu ma postać: x = r ∗ cosθ y = r ∗ sinθ
o5=
f i g u r e
;
s e t
( o5 , ’Name ’ , ’ O k r ę g i ’ ) ;
r =4;
t =0:
pi
/ 1 0 0 : 2 ∗
pi
x=r ∗
cos
( t )
y=r ∗
s i n
( t )
plot
( x , y ) ;
grid
on
2.9. Zadanie 9
9
Rys. 2.7:
Wykres okręgu o równaniu x
2
+ y
2
= 16
2.9
Zadanie 9
W oknie wykresu utworzonego w poprzednim podpunkcie dorysować kolorem
czerwonym wykres okręgu o środku w punkcie (0;2) i promieniu 2. Należy zastosować
równanie parametryczne okręgu (współrzędne biegunowe).
r 2 =2;
t =0:
pi
/ 1 0 0 : 2 ∗
pi
x=r 2 ∗
cos
( t ) ;
y=r 2 ∗
s i n
( t ) + 2 ; % o k r ą g o S =(0 ,2)
f i g u r e
( o5 )
hold
on
plot
( x , y , ’ r ’ ) ;
10
2. Zadania
Rys. 2.8:
Wykres okręgu o równaniu x
2
+ (y − 2)
2
= 4 nałożony na wykres okręgu o
równaniu x
2
+ y
2
= 16
2.10
Zadanie 10
W nowym oknie przechowywanym w uchwycie o6 o nazwie „Krzywe parame-
tryczne” należy narysować wykres krzywej zdefiniowanej następującym równaniem
parametrycznym:
r
2
= a
2
α
(2.1)
Gdzie: a = 4, α < 0; 6Π >
Funkcje typu Spirala Fermata można wykreślić dzięki funkcji polar().
o6=
f i g u r e
;
s e t
( o6 , ’Name ’ , ’ Krzywe p a r a m e t r y c z n e ’ ) ;
a =4;
a l f a =0:
pi
/ 1 0 0 : 6 ∗
pi
;
%r ˆ2=a ˆ2∗ a l f a
r p o s=a ∗
sqrt
( a l f a ) ;
r n e g=−a ∗
sqrt
( a l f a ) ;
polar
( a l f a , r p o s , ’m− ’ ) ;
hold
on
polar
( a l f a , r n e g , ’ g− ’ ) ;
2.11. Zadanie 11
11
Rys. 2.9:
Spirala Fermata
2.11
Zadanie 11
W nowym oknie przechowywanym w uchwycie o7 o nazwie „3D” narysować wy-
kres powierzchni stopnia drugiego - paraboloidy hiperbolicznej okreslonej wzorem:
z =
x
2
2
+
y
2
2
(2.2)
Gdzie: a = 4, b = 6, x < −6; 6 >, y < −6; 6 >
o7=
f i g u r e
;
s e t
( o7 , ’Name ’ , ’ 3D ’ ) ;
a =4;
x = − 6 : 1 / 5 : 6 ;
y = − 6 : 1 / 5 : 6 ;
[ x , y]=
meshgrid
( x , y )
z = ( ( ( x . ∗ x ) / a ) −(( y . ∗ y ) / a ) ) ;
f i g u r e
( o7 ) ;
hold
on ;
mesh
( x , y , z ) ;
12
2. Zadania
Rys. 2.10:
Trójwymiarowy wykres funkcji x
2
/a + y
2
/a
2.12
Zadanie 12
Nalezy zmodyfikowac okno z wykresem spirali fermata. Dodać suwak który zmie-
nia maksymalne K (czyli regulujemy liczbę zwojów spirali). Konieczne do tego są
dwa dodatkowe pliki: suwak.m - reakcja na przesunięcie suwaka, wykres.m - przery-
sowanie wykresu.
plik główny.m:
f i g u r e
( o6 ) ;
global
k %d e k l a r a c j a z m i e n n e j g l o b a l n e j k
k=6∗
pi
wykres ;
v s l i d e r=
u i c o n t r o l
( ’ S t y l e ’ , ’ s l i d e r ’ , ’ u n i t s ’ , ’ n o r m a l i z e d ’ , ’ p o s i t i o n ’ ,
[ . 9 4 , . 0 8 5 , . 0 3 5 , 0 . 8 5 ] , ’ Min ’ , 0 , ’Max ’ , 1 0 0 , ’ Value ’ , k , ’ C a l l b a c k ’ , ’ suwak ’ ) ;
v e d i t=
u i c o n t r o l
( ’ S t y l e ’ , ’ e d i t ’ , ’ u n i t s ’ , ’ n o r m a l i z e d ’ , ’ p o s i t i o n ’ ,
[ . 4 5 , . 0 1 , . 1 5 , . 0 5 ] , ’ S t r i n g ’ , [ ’ k= ’
num2str
( k ) ] ) ;
plik wykres.m:
global
a a l f a r k ;
a =4;
a l f a = [ 0 :
pi
/ 1 0 0 : k ] ;
r p o s=a ∗
sqrt
( a l f a ) ;
r n e g=−a ∗
sqrt
( a l f a ) ;
polar
( a l f a , r p o s , ’m− ’ ) ;
2.12. Zadanie 12
13
hold
on
polar
( a l f a , r n e g , ’ g− ’ ) ;
hold
o f f
plik suwak.m:
%r e a k c j a na p r z e s u n i ę c i e suwaka
global
k ;
k =
get
( v s l i d e r , ’ Value ’ ) ; %o d c z y t w a r t o s c i z suwaka
s e t
( v e d i t , ’ S t r i n g ’ , [ ’ k= ’
num2str
( k ) ] ) ;
wykres ;
Rys. 2.11:
Interaktywny wykres funkcji Spirala Fermata