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

8. Dane s¡ tablice



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