background image

Matlab_cw_01__08.doc

 

HM  

str. 5

  

 

 

M A T L A B  

 

WST P 

 

wiadomo ,  e  komputer  jest  „urz dzeniem”  do  prowadzenia 

oblicze ,  nie  jest  w ród  jego  u ytkowników  powszechna.  Zadziwiaj cy  jest 

fakt,  e  wiele  osób  maj cych  na  co  dzie   dost p  do  komputera,  nie  potrafi 

przy jego pomocy przeprowadzi   adnych, nawet najprostszych oblicze .  

 

Celem  nadrz dnym  niniejszego  opracowania  jest  wypełnienie  luki 

w tej „zbiorowej nie wiadomo ci”. Poniewa  zawarto  zeszytu przeznaczona 

jest  dla  studentów,  nie  przedstawiam  mo liwo ci  obliczeniowych,  jakie  tkwi  

w samym  systemie  operacyjnym,  czy  w  pakietach  wspomagaj cych  prac  

biura.  Na  wyra nie  zgłoszone  zapotrzebowanie  kolegów,  którzy  prowadz  

zaj cia  na  starszych  latach  studiów,  przedstawiam  w  skrócie  i  poprzez 

wybrane zagadnienia, podstawowe mo liwo ci pakietu MATLAB.  

 

Poniewa   pracujemy  i  studiujemy  na  Wydziale  Mechanicznym 

Politechniki Szczeci skiej, wi kszo  zada  oparta jest o problemy zrozumiałe 

(mam nadziej ) dla tzw. mechaników. Przyj to zało enie,  e zaj cia w oparciu 

o niniejsze opracowanie, prowadzone s  na niskich semestrach studiów. Opis 

zagadnie , przykłady i zadania do samodzielnego rozwi zania oscyluj  wokół 

wiedzy, któr  student powinien posi

 na 1 lub 2-gim semestrze.  

 

MATLAB  jest  przyjaznym 

rodowiskiem  integruj cym  metody 

numeryczne, prezentacj  graficzn  i j zyk programowania. Celem niniejszego 

opracowania  nie  jest  zaprezentowanie  wszystkich  elementów  tego  pakietu, 

a raczej  przedstawienie  podstawowych  wiadomo ci  wystarczaj cych  do  jego 

efektywnego  wykorzystywania.  O mieleni  łatwo ci     podstawowych  działa , 

powinni my  nie  obawia   si   si gni cia  w razie  potrzeby,  do  bardziej 

zaawansowanych mo liwo ci MATLABA. Mo liwo ci te s  ogromne i je li kto  

zach cony  wiczeniami z tego zeszytu, skorzysta z nich w przyszło ci, to cel 

niniejszego opracowania zostanie osi gni ty.   

 

Opracowuj c  prezentacj   zawarto ci  merytorycznej  poszczególnych 

wicze ,  przyj to  zało enie,  e  pod aj   one  w  lad  za  poprzedzaj cym  je 

wykładem. St d krótka, cz sto „sucha” cz

 wprowadzaj ca do zada . 

 

 

 

Autor 

 

 

 

 

 

 

 

 

 

 

 

 

 

background image

str. 6

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

WICZENIE 1

 - 

Podstawy interfejsu Matlaba

 

 

Wykonaj nast puj ce polecenia

1.  Uruchom  Matlaba.  Jeste   teraz  w  rodowisku  Matlaba.  Masz  przed 

sob   tzw.  interfejs  Matlaba,  którego  mo liwo ci  b dziesz 

wykorzystywał  do  prowadzenia  oblicze   w  trybie  bezpo rednim,  a 

pó niej do tworzenia własnych programów w j zyku Matlaba. 

2.  Rozci gnij okno Matlaba tak, by zajmowało cały ekran monitora.  

3.  Przestrze   robocza  Matlaba  podzielona  jest  na  kilka  okienek.  Zmie  

wymiary tych okienek tak, by: 

• 

okienko  Command  Window  (okno  polece )  zajmowało  75% 

szeroko ci ekranu, 

• 

okienko  Command  History  (historia  polece )  zajmowało  30% 

wysoko ci ekranu.  

4.  Wykorzystuj c przycisk strzałki w gór   

 na pasku tytułowym 

okienka  Command  History  spowoduj,  eby  okienko  przestało  by  

„przestrzennie” zwi zane z pozostałymi okienkami i przesu  je w prawy 

dolny róg okna Matlaba. 

5.  Sprawd  na dole ekranu zawarto  paska zada  systemu Windows

6.  Wstaw  „do  szeregu”  okienko  Command  History    u ywaj c  przycisku 

ekranowego strzałki w dół z paska menu tego okienka. 

7.  Zamknij okienko Command History  w tradycyjny sposób. 

8.  Spowoduj, by  w  obszarze  roboczym  Matlaba  widoczne  były  tylko  dwa 

okienka:  Command  Window  oraz  Workspace  (przestrze   robocza). 

Wykorzystaj  do  tego  znane  ju   operacje  na  okienkach  i  zakładk  

Workspace. 

9.  Wykorzystuj c opcje menu Desktop / Desktop Layout / Default ustaw 

przestrze  robocz  Matlaba tak, by ekran przyj ł ustawienia domy lne 

(w  starszych  wersjach  Matlaba  w  menu,  zamiast  opcji  Desktop  jest 

opcja View). 

 

WICZENIE 2

 –  

Praca w trybie bezpo rednim

 

 

W  oknie  polece   Command  Window  wydaje  si   komendy.  O  gotowo ci 

Matlaba  do  przyj cia  komendy  (polecenia)  wiadczy  widoczny  w  wierszu 

polece   znak  zach ty    >>  .   Wykonanie  komendy  nast puje  po  naci ni ciu 

klawisza    [Enter].  Je li  podamy  polecenie,  bez  okre lenia  w  jakiej  zmiennej 

przechowany ma by  jego wynik, to Matlab umie ci go w zmiennej o nazwie  

ans 

 

Wykonaj  nast puj ce  zadanie  bez  u ywania  własnych  zmiennych,  tj.  troch  

podobnie jak w tradycyjnym kalkulatorze. Nie wolno tak e zapisywa  wyników 

po rednich w notatniku. 

 

Zadanie 1 

Oblicz  pole  powierzchni  figury  (rysunek)  jaka  pozostanie  z  koła 

o promieniu  10,  po  wyci ciu  trójk ta  równoramiennego  wpisanego  w  to 

koło.  Trójk t  ma  jeden  bok  oparty  na  rednicy  koła.  Znajd   te   pole 

powierzchni odcinka koła oznaczonego symbolem 

A

 

Uwaga: odwołuj si  do wyniku z poprzedniego działania pami taj c,  e 

jest on zawarty w zmiennej  ans

background image

Matlab_cw_01__08.doc

 

HM  

str. 7

  

 

 

M A T L A B  

 

 

10 

 

wyniki: 

 

214,16;  pole odcinka A=28,54 

 

 

Przekonałe   si ,  e  „kalkulatorowy” 

sposób  działania  przy  obliczeniach 

cho   troch   zło onych,  jest  bardzo 

niewygodny.  Od  tej  pory,  prowadz c 

obliczenia 

b dziesz 

najcz ciej 

stosował zmienne pomocnicze.  

 

 

 

 

 

 

 

Nazwa  zmiennej  musi  zaczyna   si   od  litery  i  mo e  składa   si  z  dowolnej 

liczby liter, cyfr i znaków podkre lenia, przy czym Matlab uwzgl dnia tylko 31 

pierwszych  znaków  nazwy.  Rozró niane  s   du e  i  małe  litery.  Nie  jest 

wymagane deklarowanie zmiennych, ani okre lanie ich typu (rozmiaru).  

 

Zwró  uwag ,  e: 

• 

je li  obliczenia  maj   by   wykonane,  ale  nie  interesuje  nas  wynik 

polecenia, to nale y na ko cu polecenia umie ci  znak  rednika  [ ; ] . 

• 

je li  polecenie  nie  mie ci  si   w  jednym  wierszu,  to  ko czymy  wiersz 

trzema  kropkami  i  kontynuujemy  zapis  polecenia  w  wierszu 

nast pnym.  

• 

je li w jednym wierszu chcemy napisa  kilka polece , to mo emy: 

oddzieli  je  rednikami – je li nie chcemy ogl da  wyników, 

oddzieli  je przecinkami – je li chcemy widzie  wyniki. 

• 

znakiem oddzielaj cym cz

 ułamkow  liczby od cz ci całkowitej jest 

kropka. 

 

Wykonaj  zadanie  stosuj c  zapisywanie  wyników  po rednich  do  własnych 

(tj. wymy lonych przez siebie) zmiennych.  

 

Zadanie 2 

a)  Wykonaj  obliczenia  wg  tre ci  zadania  1  (z  pomini ciem  uwagi). 

Zastosuj nast puj ce (lub podobne) nazwy zmiennych: 

• 

promien 

• 

pole_kola 

• 

srednica 

• 

podstawa 

• 

wysokosc 

• 

pole_trojkata 

• 

pole_wynikowe 

• 

polowa_kola 

• 

pole_odcinka_A 

b)  Wykonaj  te  same  obliczenia  w  taki  sposób,  by  na  ekranie  uzyska  

tylko 

podgl d 

wyników 

ko cowych 

(pole_wynikowe, 

pole_odcinka_A). 

background image

str. 8

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

Sprawdzenie  wyników  po rednich  (np.  gdy  wyniku  ko cowego  nie  darzymy 

zaufaniem)  mo na  wykona   po  obliczeniach,  wpisuj c  nazw   zmiennej 

przechowuj cej wynik i naciskaj c klawisz [Enter]. Przydatne w tym działaniu  

s   okienka  Command  History  (gdzie  mo emy  prze ledzi   ci g  wydanych  

polece )  oraz  Workspace  (pokazuj ce  zagospodarowanie  pami ci  w 

przestrzeni roboczej). 

 

Zadanie 3 

Oblicz warto ci sił reakcji (R1 i R2) w podporach belki przedstawionej na 

rysunku (mechanika, równania statyki).  

Uwaga, powiniene  u y  funkcji: 

sin(),  cos()  (k t w radianach),  pierwiastek kwadratowy:  sqrt(), 

operatora pot gowania:  ^  (np.  z^2 ). 

 

 

a=0,7 

b=1,5 

c=0,18e1 

P1=532 

P3=320 

P2=270 

=60

o

 

R1=? 

R2=? 

 

Wyniki: 

R1

x

= -266,00;  

R1

y

= 258,60; 

R1= 370,98   

   

 

 

R2

y

= 252,13 

 

 

WICZENIE 3

 –  

Macierze – tworzenie - cz

 1

  

 

Podstawowym typem zmiennej w Matlabie jest macierz. Mówi c o wymiarze 

macierzy zawsze najpierw okre lamy liczb  wierszy, a potem liczb  kolumn

„Z punktu widzenia Matlaba” szczególnymi odmianami macierzy s : 

• 

skalar – macierz o wymiarze   

1 x 1

• 

wektor wierszowy – macierz o wymiarze  

1 x n  (jeden wiersz), 

• 

wektor kolumnowy - macierz o wymiarze  

n x 1  (jedna kolumna). 

 

Przy definiowaniu macierzy trzeba przestrzega  nast puj cych reguł: 

• 

lista warto ci elementów musi by  uj ta w nawiasy kwadratowe  [  ]

• 

warto ci  elementów  macierzy  wpisuje  si   wierszami,  oddzielaj c  je 

spacj  lub przecinkiem, 

• 

wiersze ko czymy znakiem  rednika   lub  naciskaj c klawisz  [Enter]. 

 

Liczby  całkowite  i  rzeczywiste  zapisuje  si   w  Matlabie  w  jednej  z  dwóch 

postaci: 

• 

stałopozycyjnej

123000,    -4234.34,  

+0.0453 ; 

• 

zmiennopozycyjnej

123e3,   

-0.423434E4, 

+453e-4 .  

 

Liczby zespolone zapisuje si  z u yciem znaku  „

i”  lub  „j” :  

 

123 + 34i 

 

321 – 43j 

 

Sprawne tworzenie macierzy jest podstawow  umiej tno ci  jak  trzeba 

posi

, by efektywnie działa  w Matlabie. 

 

background image

Matlab_cw_01__08.doc

 

HM  

str. 9

  

 

 

M A T L A B  

 

 

Zadanie 4 

a) Utwórz macierze A i B. Pomnó  je, wynik podaj c w macierzy C

 

=

6

3

3

7

4

2

5

3

1

A

   

=

32

31

22

21

12

11

B

 

 

wynik:  C =  -81   

 -82 

  

  

-111    -112 

  

 

-156 

 -162 

b) Zmie  kolejno  macierzy w mno eniu i sprawd  rezultat. 

 

Macierze  mo na  składa   z  podmacierzy,  przestrzegaj c  dokładnie  takich 

samych zasad, jak przy przybudowaniu macierzy z liczb (patrz wy ej). Trzeba 

przy tym kontrolowa  wymiary macierzy. Nie mo e w wyniku takiego składania 

doj  do „braków” elementów w wierszach lub kolumnach. 

 

Zadanie 5 

Utwórz macierze składowe: 

A – wektor wierszowy o 3 elementach, 

B – macierz o wymiarze 4x3, 

C – wektor kolumnowy o 3 elementach. 

a)  zbuduj z nich kilka macierzy (D1, D2, itd.)

b)  zbuduj z nich kilka macierzy E, w taki sposób,  eby ka da z macierzy 

składowych  wprowadziła  elementy  10  razy  wi ksze  lub  10  razy 

mniejsze od warto ci elementów własnych. 

c)  zbuduj  z  nich,  wpisuj c  w  razie  potrzeby  dodatkowe  liczby  oraz 

wykorzystuj c  mo liwo   zagnie d ania  nawiasów  kwadratowych, 

kilka macierzy F o wymiarze: F1 - 5

x

4,  F2 - 5

x

5,  F3 - 6

x

5,  F4 - 6

x

6. 

 

Budowanie macierzy z u yciem dwukropka polega na składaniu w macierz 

wygenerowanych  wektorów  wierszowych,  przez  okre lenie  dla  ka dego  z 

nich: 

• 

minimum i maksimum, według schematu – 

min : max – gdy kolejne 

elementy  stanowi   arytmetyczny  ci g  liczb  całkowitych  z  ró nic  

równ  1, 

• 

minimum, przyrostu i maksimum, wg schematu – 

min : krok : max – 

gdy ci g arytmetyczny ma dowoln  ró nic  (niecałkowit  lub ujemn ). 

Przykładow   macierz  o  nazwie 

dwukropek,  wygenerowan   z  u yciem 

dwukropka pokazuje rysunek (zrzut fragmentu okienka  Command Window). 

 

  ???? 

background image

str. 10

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

Zwró  uwag  na to, jak powstał ostatni wiersz tej macierzy i jaki jest efekt jego 

tworzenia. 

Zapami taj

clearclear zmienna1clear all – usuwa z pami ci (przestrzeni 

roboczej)  wszystkie  zmienne,  wybran   zmienn ,  czy ci  cał  

przestrze  robocz ; 

 

clc – czy ci okno polece  

 

Zadanie 6 

Wyczy  przestrze  robocz  i okno polece .  

Utwórz macierz A przedstawion  ni ej, z u yciem dwukropka: 

 

 

 

WICZENIE 4

 –  

Macierze – tworzenie - cz

 2

  

 

Macierze mo na budowa  za pomoc  specjalnych funkcji. Czyni si  to wtedy, 

gdy  i  same  macierze  maj   specjaln   (specyficzn )  posta .  Najcz ciej 

stosowane funkcje dzielimy na: 

• 

funkcje generuj ce macierze, 

• 

funkcje przekształcaj ce macierze. 

Funkcje generuj ce macierze podaje tabela. 

eye(n) 

tworzy  macierz  jednostkow   o  wymiarze    n  x  n  (1  na  głównej 

przek tnej) 

zeros(n) 

tworzy  macierz  kwadratow   o  wymiarze    n  x  n    wypełnion  

samymi zerami 

ones(n) 

tworzy  macierz  kwadratow   o  wymiarze    n  x  n    wypełnion  

samymi jedynkami 

rand(n) 

tworzy  macierz  kwadratow   o  wymiarze    n  x  n    wypełnion  

liczbami  pseudolosowymi  z  przedziału    <0,  1>    o  rozkładzie 

jednostajnym 

randn(n) 

tworzy  macierz  kwadratow   o  wymiarze    n  x  n    wypełnion  

liczbami pseudolosowymi o rozkładzie normalnym ze  redni   0 

i wariancj  równ  1 

Je li  argumentami  tych  funkcji  b d   dwie  liczby  naturalne,  to  zostan  

wygenerowane macierze prostok tne.  

 

Funkcje przekształcaj ce macierze podaje tabela. 

A=diag(x) 

wstawia  składniki  wektora  x  na  głównej  przek tnej 

macierzy zerowej A

x=diag(A) 

tworzy wektor x z głównej przek tnej macierzy A 

inv(A) 

tworzy macierz odwrotn  do macierzy A 

tril(A) 

tworzy  z  macierzy  A  macierz  trójk tn   doln  

(zerowanie elementów nad główn  przek tn ) 

triu(A) 

tworzy z macierzy A macierz trójk tn  górn  

rot90(A) 

obraca macierzy A o 90

o

 w kierunku   

repmat(A,m,n) 

powiela macierz A m razy w pionie i n razy w poziomie 

reshape(A,m,n) 

tworzy  macierz  o  m  wierszach  i  n  kolumnach  z 

elementów macierzy A branych kolejno kolumnami 

 

background image

Matlab_cw_01__08.doc

 

HM  

str. 11

  

 

 

M A T L A B  

 

W  kolejnych  zadaniach  zastosuj  przedstawione  wy ej  funkcje  oraz  poznane 

wcze niej  metody  budowania  macierzy  (nie  zapomnij  te ,  e  jednym  z 

najprostszych działa  jest dodawanie macierzy). 

 

 

Zadanie 7 

Zbuduj macierze uwzgl dniaj c okoliczno ,  e do tworzenia kolejnych, 

mo esz wykorzysta  macierze ju  istniej ce.  

 A = 

     7     0     0     0 

     0     7     0     0 

     0     0     7     0 

     0     0     0     7 

 

 

 

B = 

     2     2     2     2 

     2     2     2     2 

     2     2     2     2 

     2     2     2     2 

 

C = 

     9     2     2     2 

     2     9     2     2 

     2     2     9     2 

     2     2     2     9 

 

D = 

     0     0     0     0 

     0     0     0     0 

 

E = 

     9     2     2     2 

     2     9     2     2 

     2     2     9     2 

     2     2     2     9 

     0     0     0     0 

     0     0     0     0 

 

F = 

     2     5     8    11 

 

H = 

     0     0     0     0 

     0     0     0     0 

     2     0     0     0 

     0     5     0     0 

     0     0     8     0 

     0     0     0    11 

 

K = 

     9     2     2     2 

     2     9     2     2 

     4     2     9     2 

     2     7     2     9 

     0     0     8     0 

     0     0     0    11 

 

L = 

     2     2     2     9     0    11 

     2     2     9     2     8     0 

     2     9     2     7     0     0 

     9     2     4     2     0     0 

 

M = 

    48    89    44   214 

    62    54   157    44 

    58   138    54    89 

   105    58    62    48 

 

ME = 

    48    48    48    48 

    54    54    54    54 

    54    54    54    54 

    48    48    48    48 

 

N = 

    2     2     2     9     0    11 

    0     2     9     2     8     0 

    0     0     2     7     0     0 

     0     0     0     2     0     0 

 

background image

str. 12

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

 

P = 

 

     2     9 

     0     2 

     0     7 

     0     2 

     2     0 

     2     8 

     0     0 

     0     0 

     2    11 

     9     0 

     2     0 

     0     0 

 

R = 

 

     2     9     2     9     2     9 

     0     2     0     2     0     2 

     0     7     0     7     0     7 

     0     2     0     2     0     2 

     2     0     2     0     2     0 

     2     8     2     8     2     8 

     0     0     0     0     0     0 

     0     0     0     0     0     0 

     2    11    2    11    2    11 

     9     0     9     0     9     0 

     2     0     2     0     2     0 

     0     0     0     0     0     0 

 

 

WICZENIE 5

 –  

Zapis i odczyt danych

 

 

Istnieje wiele programów, które w rezultacie swych działa  tworz  tabele. S  

to np. arkusze kalkulacyjne, bazy danych, edytory tekstów, itp. Matlab mo e te 

tabele  wczyta   do  przestrzeni  roboczej  i  przekształci   w  macierze,  pod 

warunkiem,  e  wspomniane  programy  s   w  stanie  zapisa   swoje  tabele  w 

formacie  pliku  tekstowego.  Taka  importowana  macierz  ma  nazw  

wczytanego pliku (bez rozszerzenia). Funkcja realizuj ca wczytanie pliku, to: 

 

load nazwa_pliku.rozsz 

 

 

Zadanie 8 

1)  Otwórz arkusz kalkulacyjny Excel.  

2)  Utwórz,  poczynaj c  od  komórki  A1,  tablic   liczbow   o  10  wierszach 

i 10 kolumnach. Nie dodawaj  adnych opisów kolumn i tytułów tablicy. 

3)  Zapisz plik Excela w folderze roboczym Matlaba ustalaj c: 

typ zapisywanego pliku z rozszerzeniem   .txt  , 

nazw  pliku bez spacji, polskich liter  i innych „dziwnych znaków”. 

Nie przejmuj si  du  liczb  pojawiaj cych si  okienek dialogowych, 

które  utrudniaj   przeprowadzenie  zapisu.  Konsekwentnie  wybieraj 

opcje prowadz ce do zapisu. 

4)  Zamknij program Excel. 

5)  Przejd  do Matlaba i obejrzyj zawarto  okienka Current Directory

Znajd  tam plik przed chwil  zapisany. 

6)  Wczytaj plik do przestrzeni roboczej Matlaba. 

7)  Przeł cz si  na podgl d okienka Workspace

8)  Z wczytanej macierzy utwórz macierz o nazwie AA

9)  Wykorzystuj c  odpowiedni   funkcj   utwórz  wektor  xx  z  elementów 

rozmieszczonych na głównej przek tnej macierzy AA

 

Znacznie  łatwiej  prowadzi   zapis  do  pliku  i  odczyt  danych  z  pliku,  kiedy 

operujemy  tylko  na  tablicach  (macierzach)  z  przestrzeni  roboczej  Matlaba. 

Funkcje,  które  obsługuj   te  operacje  przedstawione  s   w  tabeli.  Trzeba 

pami ta ,  e pliki  zapisywane przez Matlaba, to tzw. pliki  zapisane binarnie, 

a wi c nie daj ce si  przeczyta  w edytorze tekstowym. 

background image

Matlab_cw_01__08.doc

 

HM  

str. 13

  

 

 

M A T L A B  

 

save 

zapisanie  wszystkich  zmiennych  w  pliku  

matlab.mat 

save plik 

zapisanie  wszystkich  zmiennych  w  pliku  o 

nazwie plik.mat 

save plik zm1 zm2  

zapisanie wymienionych zmiennych (zm1, zm2) 

w pliku o nazwie plik.mat 

load 

wczytanie  zmiennych  zapisanych  w  pliku 

matlab.mat 

load plik 

wczytanie  zmiennych  zapisanych  w  pliku 

plik.mat 

 

Do  zapisu  i  odczytu  zmiennych  mo esz  tak e  wykorzysta   opcje  menu 

i przyciski narz dziowe.  

 

Zadanie 9 

Pami taj c,  e  masz  w  przestrzeni  roboczej  macierze  utworzone  w 

zadaniu 8: 

1)  zbuduj macierz BB o wymiarze 10x11, składaj c macierz  AA i xx

2)  zapisz macierze  AA, xx, BB  w pliku  AAxxBB.mat  w folderze 

roboczym, 

3)  wyczy  zawarto  przestrzeni roboczej Matlaba, 

4)  wczytaj zawarto  pliku AAxxBB.mat  do przestrzeni roboczej. 

 

 

 

WICZENIE 6

 –  

Odwołania do elementów i fragmentów macierzy

 

 

Odwołanie do elementu macierzy dwuwymiarowej mo e by   wykonane na 

dwa sposoby: 

przez wskazanie numeru wiersza i kolumny

przez podanie tylko jednego indeksu

 

W tym drugim przypadku odliczenie wg indeksu nast pi w taki sposób, jakby 

wszystkie kolumny macierzy ustawione były jedna pod drug  i tworzyły jedn  

dług  kolumn . Przykłady odwołania do elementów macierzy podane s  ni ej. 

 

Z = 

    11    12    13    14    15 

    21    22    23    24    25 

    31    32    33    34    35   

 

znalezienie  warto ci  elementu  macierzy  przez  podanie 

numeru wiersza i kolumny 

 

>> elementZ=Z(2,4) 

elementZ = 

    24 

 

znalezienie  warto ci  elementu  macierzy  przez  podanie 

tylko jednego indeksu 

 

>> elementZ=Z(11) 

elementZ = 

    24 

background image

str. 14

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

wstawienie  warto ci  do  macierzy  przez  podanie  numeru 

wiersza i kolumny elementu 

 

>> Z(2,4)=99 

Z = 

    11    12    13    14    15 

    21    22    23    99    25 

    31    32    33    34    35 

wstawienie  warto ci  do  macierzy  przez  podanie  tylko 

jednego indeksu elementów macierzy 

 

 >>  Z(7)=88;        Z(4)=elementZ   (warto  uzyskana w 

poprzednich przykładach) 

Z = 

    11    24    88    14    15 

    21    22    23    99    25 

    31    32    33    34    35 

 

Odwołanie  do  fragmentu  macierzy  wykonywane  jest  przy  pomocy 

dwukropka. 

Usuwanie wierszy lub kolumn polega na wstawieniu w ich miejsce macierzy 

pustej reprezentowanej przez zapis  [ ] . Dla przykładu, usuni cie 2 kolumny 

macierzy Z przeprowadzimy nast puj co 

 

>> Z(: , 2)=[ ] 

Z = 

    11    88    14    15 

    21    23    99    25 

    31    33    34    35 

 

W  tej  operacji  dwukropek  oznacza  wszystkie  wiersze.  Takie  znaczenie 

dwukropka (który nie rozdziela warto ci skrajnych od : do) b dzie wielokrotnie 

wykorzystywane.  

U ycie  „samotnego”  dwukropka  oznacza  zawsze,  e  działanie  odbywa 

si  na wszystkich wierszach lub/i na wszystkich kolumnach macierzy. 

 

W  ni ej  podanym  przykładzie  macierze  YA,  YB  i  YC  utworzone  s   z 

fragmentów macierzy Y

 

>> Y=[11:15;  21:25;  31:35;  41:45] 

Y = 

    11    12    13    14    15 

    21    22    23    24    25 

    31    32    33    34    35 

    41    42    43    44    45 

 

>> YA=Y(: , 3),   YB=Y(1:3, :),   YC=Y(2:3, 2:4) 

YA = 

    13 

    23 

    33 

    43 

 

background image

Matlab_cw_01__08.doc

 

HM  

str. 15

  

 

 

M A T L A B  

 

YB = 

    11    12    13    14    15 

    21    22    23    24    25 

    31    32    33    34    35 

YC = 

    22    23    24 

    32    33    34 

Je li  wybierane  fragmenty  macierzy  nie  stanowi   „obszaru  spójnego”,  to 

nale y  wyszczególni   numery  wierszy  lub  kolumn  w  specjalnych  wektorach. 

Przeanalizuj przykłady. 

>> YD=Y( [1 3] , : ), YE=Y(2:4 , [1 3 5] ) 

YD = 

    11    12    13    14    15 

    31    32    33    34    35 

YE = 

    21    23    25 

    31    33    35 

    41    43    45 

 

Zadanie 10 

Pami taj c,  e  masz  w  przestrzeni  roboczej  macierze  utworzone  w 

zadaniu  7,  zbuduj  macierze  przedstawione  ni ej,  wykorzystuj c 

umiej tnie  zapisy  z  dwukropkiem.  Pierwsza  litera  w  nazwie  macierzy 

wskazuje na macierz, któr  powiniene  wykorzysta . 

EA = 

     9     2     2     2 

     2     9     2     2 

     2     2     9     2 

EB = 

     9     2     2 

     2     9     2 

     2     2     9 

     2     2     2 

     0     0     0 

     0     0     0 

LA = 

     2     7     0     0 

     4     2     0     0 

LB = 

     9     8 

     4     0 

LC = 

    18    16 

     8     0 

LD = 

   18.9     16.8 

     8.4        0 

RA = 

     2     0     2     0     2     0 

     2     8     2     8     2     8 

     0     0     0     0     0     0 

     0     0     0     0     0     0 

     2    11    2    11    2    11 

     9     0     9     0     9     0 

     2     0     2     0     2     0 

     0     0     0     0     0     0 

RB = 

     2     0     2     0     2     0 

     2     8     2     8     2     8 

     0     0     0     0     0     0 

     0     0     0     0     0     0 

     2    11    2    11    2    11 

     9     0     9     0     9     0 

MA = 

       0      0    0     0 

       0      0    0     0 

    58   138  54   89 

  105     58  62   48 

MB = 

       48000       89000       44000      214000 

             62             54           157              44 

       58000      138000       54000       89000 

           105              58             62             48 

MC = 

     48   999     44   999 

     62   999   157   999 

     58   999     54   999 

   105   999     62   999 

 

background image

str. 16

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

WICZENIE 7

 –  

Operacje na macierzach

 

W Matlabie istniej  dwa rodzaje operacji na macierzach: 

• 

zgodne z zasadami algebry macierzy (operatory macierzowe), 

• 

operacje tablicowe traktuj ce macierze jak zwykłe tablice liczbowe. 

Operatory  tablicowe  funkcjonuj   w  taki  sposób,  e  działaniom  operatorów 

podlegaj   odpowiadaj ce  sobie  pary  elementów  obu  macierzy  (macierze 

musz  mi  ten sam wymiar). Operatory tablicowe poprzedzone s  zawsze 

kropk . 

operator arytmetyczny 

operator macierzowy 

operator tablicowy 

dodawanie 

A+B 

A+B 

odejmowanie 

A-B 

A-B 

mno enie 

A*B 

B*A  

nie jest przemienne 

A*B B*A 

A.*B 

B.*A 

jest przemienne: 

A.*B=B.*A 

dzielenie prawostronne 

B/A=B*A

-1

 

B./A=A.\B 

dzielenie lewostronne 

A\B=A

-1

*B 

A.\B=B./A 

pot gowanie 

A^2=A*A 

A.^2 

transpozycja 

A’ 

A’ 

odwracanie 

A^-1=inv(A) 

A.^-1 

 

Je li  wyniki  działa   w  Matlabie  przekraczaj   zakres  tzw.  zakres  arytmetyki 

komputera,  to  Matlab  nie  przerywa  działania,  podaj c  jako  rezultaty 

charakterystyczne zmienne  

inf  lub  Inf 

(niesko czono ). 

Je li w wyniku działa  operacje s  matematycznie niezdefiniowane (np. 0/0), 

to jako rezultaty otrzymujemy zmienne 

NaN lub nan 

 

Zadanie 11 

Zdefiniuj dwie macierze (M1 i M2) o wymiarze 3x3 z u yciem dwukropka. 

Zmie   niektóre  elementy  tych  macierzy  „zakłócaj c”  rezultaty 

poprzedniego  działania.  Druga  macierz  nie  powinna  mie   elementów 

zerowych. Wykonaj nast puj ce polecenia: 

1.  Sprawd ,  czy  mno enie  macierzy  jest  przemienne  obliczaj c, 

ró nic  wyników obydwu wariantów mno enia. 

2.  Sprawd ,  czy  tablicowe  mno enie  macierzy  jest  przemienne 

obliczaj c, ró nic  wyników obydwu wariantów mno enia. 

3.  Sprawd ,  czy  mo esz  bez  problemów  podnie   macierz  M2  do 

pot gi –1.  Je li nie, to oce  dlaczego, zmie  warto  niektórych 

elementów i powtórz prób . 

4.  Sprawd , czy mo esz bez problemów wykona  tablicow  operacj  

podniesienia macierzy M2 do pot gi –1.  

  

 

Zadanie 12 

Zdefiniuj macierz o wymiarze 3x7 z u yciem dwukropka. Oblicz  redni  

warto   ka dego  wiersza  macierzy  wykonuj c  wył cznie  operacje 

macierzowe lub tablicowe. Odpowiednio do potrzeb zdefiniuj macierze 

pomocnicze. 

Udowodnij poprawno  wyników w inny (niemacierzowy) sposób. 

 

background image

Matlab_cw_01__08.doc

 

HM  

str. 17

  

 

 

M A T L A B  

 

Dowolny  tekst  mo esz  zapisa   w  Matlabie  zaczynaj c  wiersz  od  znaku 

%

Tekst  ten  nie  b dzie  interpretowany  jako  zapis  operacji  matematycznych. 

Takie  zapisy  stosuje  si ,  gdy  chcemy  wprowadzi   komentarz.  Mo na  tym 

sposobem „swobodnego pisania w Matlabie” posłu y  si  wtedy, gdy niejako 

„na  brudno”  zapisujemy  przekształcenia  wzorów,  albo  równania.  Potem,  po 

wzrokowym  sprawdzeniu,  mo na  całe  sekwencje  tych  zapisów  wykorzysta  

i przenie  do wła ciwych miejsc w Matlabie (klasyczna operacja kopiuj-wklej). 

 

Rozwi zywanie układu równa  liniowych to zagadnienie, który wyst puje w 

wielu  zadaniach  in ynierskich.  Rozpatrzymy  ten  problem  na  przykładzie 

nast puj cego układu równa . 

 

x

1

+x

2

+x

3

-3=0 

x

1

+2x

2

+3x

3

-1=0 

x

1

-x

2

+x

3

-2=0 

  

Wykorzystuj c  metody  algebry  liniowej  i  znane  nam  ju   operacje  na 

macierzach, rozwi zania poszukuje si  w sposób nast puj cy: 

przenosi  si   wyrazy  wolne  na  praw   stron   znaku  równo ci 

i porz dkuje wyrazy wzgl dem niewiadomych (x), 

 

x

1

+x

2

+x

3

=3 

x

1

+2x

2

+3x

3

=1 

x

1

-x

2

+x

3

=2  

 

tworzy  si   macierz  współczynników  przy  niewiadomych  A,  wektor 

niewiadomych  x  i wektor wyrazów wolnych  B

 

A

1

1

1

3

2

1

1

1

1

 ;            

x=

3

2

1

x

x

x

 ;          B=

2

1

3

 

 

Przy tak zdefiniowanych macierzach równania zapisuje si  

w postaci  

Ax=B 

 

i mo na dokona  przekształcenia (lewostronne  mno enie 

przez A

-1

).  

A

-1

Ax=A

-1

Uwzgl dniaj c,  e  

A

-1

A=I 

 

przedstawia macierz jednostkow  (jedynki na głównej 

przek tnej) otrzymujemy ko cowy zapis.  

 

Ix=A

-1

x=A

-1

 

wykonuje si  przedstawione wy ej działanie otrzymuj c poszukiwane 

rozwi zanie  x

 

 

 

 

background image

str. 18

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

 

 

 

Zadanie 13 

Znajd   warto ci  sił  reakcji  w  podporach  (R1

x

,  R1

y

,  R2

y

)  posługuj c  si  

rachunkiem macierzowym.  

 

a=0,7 

b=1,5 

c=0,18e1 

P1=532 

P3=320 

P2=270 

=60

o

 

R1=? 

R2=? 

 

 

UWAGA: 

1.  Równania statyki  

 

R1

x

 +P1

x

=0 

R1

y

+P1

y

+P2

y

+P3

y

+R2

y

=0 

P1

y

*a+P2

y

*(a+b)+P3

y

*(a+b+c)+R2

y

*(a+b+c)=0 

 

uporz dkuj wzgl dem niewiadomych. 

2.  Przenie   składniki  bez  niewiadomych  (tzw.  wyrazy  wolne)  na 

praw  stron  równania. 

Zauwa ,  e cały zestaw równa  mo esz zapisa  macierzowo 

 

A*R=W 

 

gdzie:  A – macierz współczynników przy niewiadomych  (R1

x

R1

y

, R2

y

), 

 

W – macierz wyrazów wolnych

 

R – macierz szukanych składowych sił reakcji o postaci 

=

y

R

y

R

x

R

R

2

1

1

 

 

3.  Okre l warto ci wszystkich elementów macierzy A i W

4.  Dokonuj c  prostego  przekształcenia  powy szego  wzoru,  oblicz 

warto ci elementów wektora R stosuj c działania na macierzach. 

 

Wyniki: 

R1

x

= -266,00;    

   

R1

y

=  258,60; 

 

 

 

R2

y

=  252,13

 

 

 

 

 

 

 

 

 

background image

Matlab_cw_01__08.doc

 

HM  

str. 19

  

 

 

M A T L A B  

 

WICZENIE 8

 –  

Funkcje standardowe

 

 

Matlab  ma  w  swej  bibliotece  wiele  funkcji.  Musisz  pami ta ,  e  wszystkie 

zmienne  Matlab  traktuje  jak  macierze,  wi c  oczywiste  jest,  e  argumentem 

ka dej  funkcji  mo e  by   macierz.  Odpowiednia  operacja  zostanie  wykonana 

na  ka dym  elemencie  macierzy.  Wynikiem  działania  funkcji  jest  wi c  tak e 

macierz. Niektóre z funkcji Matlaba podaje poni sza tabela. 

 

funkcje podstawowych operacji matematycznych 

sin(),cos(),tan(), 
cot() 

funkcje trygonometryczne – argumenty w 

radianach 

asin(), acos(), .. 

funkcje cyklometryczne – wynik w radianach 

sqrt() 

pierwiastek kwadratowy – przy ujemnym 

argumencie wynik jest liczb  zespolon  

log(), log2(), 

log10() 

logarytm naturalny, logarytm przy podstawie 2, 

logarytm przy podstawie 10 - przy ujemnym 

argumencie wynik jest liczb  zespolon  

abs() 

warto  absolutna, a dla liczby zespolonej jej 

moduł 

angle() 

argument liczby zespolonej 

real(), imag() 

cz

 rzeczywista i urojona liczby zespolonej 

round() 

zaokr glenie do najbli szej liczby całkowitej 

funkcje operuj ce na wektorach 

max() 

zwraca najwi kszy element wektora (ka dej kolumny macierzy) 

min() 

zwraca najmniejszy element wektora (ka dej kolumny macierzy) 

sum() 

zwraca sum  elementów wektora (ka dej kolumny macierzy) 

prod() 

zwraca iloczyn elementów wektora (ka dej kolumny macierzy) 

mean() 

zwraca  redni  arytmetyczn  elementów wektora (ka dej kolumny 

macierzy) 

funkcje okre laj ce wymiary macierzy 

size() 

rozmiar  macierzy  –  wynikiem  jest  macierz  dwuelementowa 

[liczba_wierszy   liczba_kolumn ] 

length() 

zwraca wi kszy z wymiarów macierzy 

funkcje  rodowiska Matlaba 

clear, clear z, clear all 

usuwa z pami ci zmienne  

clc, clf 

czy ci okno polece , okno rysunku 

 

Zadanie 14 

Sporz d   tabel ,  która  dla  warto ci  k ta  wyra onej  w  stopniach, 

zestawia  warto ci  wszystkich  czterech  podstawowych  funkcji 

trygonometrycznych. Stopniowanie k ta co 1, a zakres tabeli od –90 do 

+90 stopni. 

 

 

background image

str. 20

 

HM

 

Matlab_cw_01__08.doc 

 

M A T L A B  

Z a d a n i a   d o   s a m o d z i e l n e g o   w y k o n a n i a  

Praca w trybie bezpo rednim - działania na macierzach 

 

Zadanie 1.  

W  krajach  anglosaskich  u ywa  si   jeszcze  jednostki  długo ci 

1 cal  (1”).  Wiedz c,  e  1”=25.4  mm,    opracuj  tabel   słu c   do 

szybkiego odczytu długo ci w milimetrach, je li kto  podaje długo  w 

calach  (calach  i  jego  ułamkach).  Przykład:  z  tabeli  powinno  si  

szybko  odczyta ,  e  7  i  3/16  cala  to  182,5625  mm.  Stopniowanie 

długo ci wyra onej w calach nie powinno by  „g ciejsze” ni  1/16 

cala, a cały zakres tabeli powinien zawiera  wyniki w granicach od 0 

do 1 m. Zastosuj poznane operacje macierzowe. 

 

 

Zadanie 2.  

W  Stanach  Zjednoczonych  (i  niektórych  innych  krajach)  do 

okre lania  temperatury  stosuje  si   skal   Fahrenheita.  Wiedz c,  e 

skal  temperatur Celsjusza i Fahrenheita wi e nast puj cy wzór

 

 

t

o

C=(5/9)*(t

o

F-32) 

 

opracuj  tabel   słu c   do  szybkiego  odczytu  temperatury  w 

o

C,  gdy 

kto   podaje  informacj   o  temperaturze  w  skali  Fahreinheita.  Cały 

zakres tabeli powinien zawiera  si  pomi dzy  –40 

o

C a 50 

o

C. 

 

Zadanie 3.  

W  pewnym  eksperymencie  prowadziłe   pomiary  składowych 

siły F, czyli rejestrowałe  F

x

 oraz  F

y

. Zarejestrowałe  100 takich par 

(utwórz macierz składowych siły o wymiarze 100x2 z wykorzystaniem 

funkcji  generuj cej  liczby  pseudolosowe).  Przy  pomocy  operatorów 

macierzowych  i  tablicowych  utwórz  macierz  kolumnow   (wektor 

o wymiarze  100x1),  która  zawiera   b dzie  obliczone  warto ci 

wypadkowej siły F.