Instytut Robotyki i In»ynierii Oprogramowania Wy»sza Szkoªa In»ynierska w Zielonej Górze
Laboratorium Systemów Przetwarzania Numerycznego i Symbolicznego Podstawy obsªugi pakietu MATLAB
Przed przyst¡pieniem do ¢wiczenia nale»y zapozna¢ si¦ z rozdziaªem pt. MATLAB i oprogramowanie z nim zwi¡zane w pracy
M. Szymkat: Komputerowe wspomaganie w projektowaniu ukªadów regulacji , Wydawnictwa Naukowo-Techniczne, Warszawa, 1993
(gªównie chodzi o strony 4356, ale wskazane jest przeczytanie caªego rozdziaªu).
Program ¢wiczenia obejmuje nast¦puj¡ce zadania:
1. Zapozna¢ si¦ z niektórymi mo»liwo±ciami programu poprzez wprowadzenie polecenia demo.
2. Wyznaczy¢ warto±¢ sumy
1
1
1
1
1
1
1
1
1
1
1
1 −
+
−
+
−
+
−
+
−
+
−
2
3
4
5
6
7
8
9
10
11
12
Jak zapisa¢ w linii polece« tak dªug¡ formuª¦? Czym ró»ni¡ si¦ rezultaty operacji 1900/81 oraz 81\1900?
3. Omówi¢ ró»nice mi¦dzy poleceniami help oraz lookfor. Na tej podstawie okre±li¢ nazwy funkcji sªu»¡-
cych do obliczania pierwiastka ( ang. root), logarytmu (ang. logarithm) oraz funkcji arc sin (polskie
sinus to po angielsku sine). Co uzyskuje si¦ poprzez polecenie help cedit?
Bardzo po»ytecznym poleceniem przy przegl¡daniu pomocy wy±wietlanych przez polecenie help jest more. Prosz¦ zapozna¢ si¦ z jego skªadni¡ i przetestowa¢ dziaªanie.
4. Jak w MATLABie deniuje si¦ zmienne? W jaki sposób nadaje si¦ im warto±ci? Jak wypisa¢ na ekranie monitora aktualn¡ warto±¢ danej zmiennej? Po przypisaniu zmiennym x, y i z wybranych warto±ci wyznaczy¢ a i b, je»eli
(a) a = p|x − 1| − 3p|y|, b = x arc tg z + e−(x+3) ; (b)
(y − x)2
|y − x|3
a = 3 + ey−1 ,
b = 1 + |y − x| +
+
;
|y − tg z|
2
3
(c)
x + y/(x2 + 4)
1 + cos(y − 2)
a = (1 + y)
,
b =
;
e−x−2 + 1/(x2 + 4)
x4 + sin2 z
(d)
2 cos (x − π/6)
a =
,
b = 1 + tg2 z ;
1/2 + sin2 y
2
(e)
y
a = ln
(y − p|x|)
x −
,
b = cos2 arc tg 1
z .
z + x2/4
Czy MATLAB rozró»nia du»e i maªe litery?
1
5. (Kilka uzupeªnie«) Jak¡ rol¦ peªni w MATLABie ±rednik na ko«cu wprowadzanego polecenia? Prosz¦
sprawdzi¢ to na przykªadzie polece«
>> p = 3.5
oraz
>> p = 3.5;
Co naprawd¦ reprezentuje sob¡ napis ans wypisywany np. po wprowadzeniu polecenia
>> 4 + 3
Co powoduj¡ polecenia who oraz whos?
6. Zdeniowa¢ macierz
1
2
3
A =
4
5
6
7
8
9
oraz wektor wierszowy r = 10 11 12 . Co spowoduje polecenie A = [A; r]? Jak w takim razie doprowadzi¢ do tego, aby macierz A miaªa posta¢
1
2
3
13
4
5
6
14
A =
7
8
9
15
10
11
12
16
Na zako«czenie prosz¦ jeszcze zinterpretowa¢ rezultaty polece«
>> size(A)
oraz
>> length(r)
Czy istnieje mo»liwo±¢ deniowania tablic trójwymiarowych?
7. Dane s¡ macierze
1
0
2
−1
2
−4 1 3
4
1
3
0
4
0
4
5
A =
,
B =
0
5
0
0
3
−1 3
8
1
1
2
2
9
4
1
8
Obliczy¢
(a) A + B
(b) A − B
(c) 3A + 4B
(d) AB
(e) A3 + A2 − 2A
2
1
2
1
−1
0
3
1
5
A =
2
1
,
B =
2
1
0
,
C = 3
1
5 ,
D =
2
1
4
3
2
1
1
−1
1
2
4
Obliczy¢, o ile jest to mo»liwe, warto±ci nast¦puj¡cych wyra»e«: B + D,
3A,
−2C,
BA,
DB,
2A + B − C,
CD − DC,
2B − D,
D2,
B2 + D2
9. Dane s¡ tablice
−1 1
1
1
1
0
A =
6
4
,
B =
,
C =
2
2
0
1
2
3
Sprawdzi¢, »e zachodzi równo±¢ A(B + C) = AB + AC.
10. Iloma sposobami mo»na wprowadzi¢ tablic¦ B o elementach zespolonych:
1 + 5i
2 + 6i
B =
3 + 7i
4 + 8i
Zmiennej z przypisa¢ warto±¢ elementu znajduj¡cego si¦ w pierwszym wierszu i drugiej kolumnie rozwa»anej tablicy.
11. Znale¹¢ odwrotno±ci poni»szych macierzy (o ile istniej¡). Sprawdzi¢ otrzymane rezultaty.
1
1
3
0
0
1
1
2
3
1
1
2
3
2
2
1
3
2
1
0
0
0
1
3
2
3
2
1
,
,
,
,
−1 1
3
2
1
0
1
0
0
0
1
1
1
3
2
3
1
12. Wprowdzi¢ wektor x postaci
h
√
i
x =
−1.3
3
4 (1 + 2 + 3)
5
Co spowoduje polecenie x(5) = abs(x(1))?
13. Zapisa¢ warto±ci wszystkich u»ytych do tej pory zmiennych na dysku. Ponadto warto±¢ tablic A i x zapisa¢ w pliku temp.mat. Zako«czy¢ prac¦ z programem. Okre±li¢ format plików, w których zapisano przed chwil¡ warto±ci zmiennych (binarny czy tekstowy). Ponownie uruchomi¢ program, a nast¦pnie odtworzy¢ warto±ci zmiennych, które zapisano w plikach. Jak zmieni¢ format danych zapisywanych w omawiany sposób?
Czym ró»ni¡ si¦ polecenia what i dir? Czy polecenie type ma jaki± zwi¡zek z poleceniem DOSa o tej samej nazwie? Bez opuszczania MATLABa przej±¢ do katalogu gªównego, a nast¦pnie wy±wietli¢
na ekranie zawarto±¢ plików autoexec.bat i cong.sys (do zmiany aktualnego katalogu sªu»y polecenie cd). Powróci¢ do poprzedniego katalogu i skopiowa¢ plik matlab.mat do pliku matlab.old (tak»e bez opuszczania programu!). Sprawdzi¢, czy operacja zako«czyªa si¦ oczekiwanym rezultatem. Jak skasowa¢
plik matlab.old?
14. Do czego sªu»y polecenie diary? Wydaje si¦ ono do±¢ przydatne w pocz¡tkowym etapie nauki polece«
MATLABa.
15. Wprowadzi¢ wektor x za pomoc¡ polecenia
>> x = [4\3 1.2345e-6]
3
Sprawdzi¢, w jaki sposób wypisywana jest jego warto±¢ po wprowadzeniu ka»dego z poni»szych polece«: (a) format short
(b) format short e
(c) format long
(d) format long e
(e) format bank
(f) format hex
(g) format +
Prosz¦ zastanowi¢ si¦ nad u»yteczno±ci¡ ostatniego z tych polece«.
Jeszcze jednym poleceniem tego typu jest format compact. Porówna¢ sposób wy±wietlania informacji na ekranie przed i po jego wprowdzeniu.
16. (Operacja transpozycji) Prosz¦ wprowadzi¢ polecenia
>> A = [1 2 3; 4 5 6; 7 8 0]
>> B = A'
Wywnioskowa¢ st¡d jak¡ rol¦ peªni w MATLABie apostrof '. Jaki wi¦c b¦dzie rezultat polecenia
>> x = [-1 0 2]'
17. Rozwi¡za¢ poni»sze ukªady równa«. Sprawdzi¢ poprawno±¢ otrzymanych rezultatów. W jaki sposób mo»na stwierdzi¢ czy ukªad ma jednoznaczne rozwi¡zanie, nie posiada rozwi¡zania lub ma niesko«czenie wiele rozwi¡za«? (Wskazówka: przypomnie¢ sobie twierdzenie Kroneckera-Capelliego.)
x + 3y + 4z
=
0
(a)
4x + 2y − 2z
=
0
2x + y + z
=
8
x + 2y − 4z
=
1
(b)
x + 4y − 2z
=
2
x − y + z
=
1
2x − 4y + 3z − 4w = 2
(c)
−x + 3y − 2z + w = 4
2x − y + z + 2w = 3
x + 2y − z + w = 1
x + y + 3z2
=
1
(d)
x + y − z2
=
3
2x + 3y
=
1
x + y + z
=
6
(e)
2x + y + 6z
=
22
3x + 6y + z
=
18
x + y + z
=
1
(f)
x + 2y + z
=
4
x + y + z
=
2
x + y + z
=
1
(g)
2x + 7y − 3z
=
7
3x + 3y + 3z
=
3
18. W MATLABIE rozwi¡zanie ukªadu równa« liniowych Ax = b mo»na otrzyma¢ albo stosuj¡c metod¦
eliminacji Gaussa (x = A \ b), albo korzystaj¡c z zale»no±ci x = A−1b (x = inv(A) * b). Który z wymienionych sposobów wymaga mniejszego nakªadu oblicze«? Odpowied¹ sprawdzi¢ na ukªadach równa« z poprzedniego zadania poprzez wykorzystaniu funkcji flops.
4