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
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.
Matlab_cw_01__08.doc
HM
str. 7
M A T L A B
10
A
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:
o
oddzieli je rednikami – je li nie chcemy ogl da wyników,
o
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).
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=?
y
x
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.
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 D (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).
????
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:
clear, clear zmienna1, clear 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
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
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.
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
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
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
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.
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
B
Uwzgl dniaj c, e
A
-1
A=I
przedstawia macierz jednostkow (jedynki na głównej
przek tnej) otrzymujemy ko cowy zapis.
Ix=A
-1
B
x=A
-1
B
wykonuje si przedstawione wy ej działanie otrzymuj c poszukiwane
rozwi zanie x.
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=?
y
x
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
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.
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.