background image

Ćw 7. Matlab (1) 

Matlab

  to  pakiet  do  obliczeń  naukowych,  tworzenia  wykresów,  analiz  układów  dynamicznych  itp.  Podstawowa 

praca w środowisku odbywa się sposobem interakcyjnym, w oknie poleceń (Command Window) wpisujemy poje-

dyncze instrukcje obliczeniowe i na bieżąco otrzymujemy wyniki.  

Domyślne  środowisko  (Desktop  Layout)  składa  się  z  okna  Command  Window,  w  którym  wpisujemy  kolejne 

polecenia,  okna  Command  History  (historia  utworzonych  poleceń),  ewentualnie  okna  z  zakładkami  Workspace 

(obszar  roboczy  -  lista  zainicjowanych  przez  użytkownika  zmiennych  i  ich wartości)  i  Current Directory  (zawartość 

katalogu roboczego).  

Sposoby obsługi: 

 

dialog  - wpisywanie kolejnych poleceń w oknie Command Window

 

praca wsadowa – wykonywanie napisanych skryptów zawierających ciągi poleceń. 

 Wykonać i  zanalizować odpowiedzi na przykładowe instrukcje: 

a=1.2   

%przypisanie (nadanie wartości) zmiennej - uwaga: kropka dziesiętna! 

 

 

% po tym znaku komentarz  -  ignorowany przez MATLAB’a 

b=1.5E5 

%przypisanie wartości w formacie naukowym (wykładniczym) – 1.5E5 to 150000 

3*5 

 

% przypisanie zmiennej domyślnej ans (answer) 

c=a+b  

%przypisanie wartości prostego wyrażenia 

 

%prosty sposób wyświetlenia wartości zmiennej c 

disp(a) 

%wyświetlenie  wartości zmiennej a 

a=sin(pi/4)+b  %przypisanie dla zmiennej a wartości prostego wyrażenia 

Uwagi:

  

Operatory działań jak w Excelu: + – * / ^. Potęgowanie wykonywane przed zmianą znaku (-2^2= -4 ale 2^-1=0.5). 

Nazwy zmiennych, muszą się zaczynać od litery, a potem dowolny ciąg liter, cyfr i znaków _. W nazwach zmien-

nych istotne są duże i małe litery. 

Edycja ewentualnego błędu polecenia po przewinięciu pamięci poleceń - przy pomocy strzałek klawiatury 

↓↑

Wybrane funkcje arytmetyczne  

sqrt(w) – pierwiastek kwadratowy 

abs(w) – wartość bezwzględna 

exp(w) – funkcja wykładnicza (e

w

power(a, b) – potęga (a

b

log(w) – logarytm naturalny 

log10(w) – logarytm dziesiętny 

rem(x, y) – reszta z dzielenia x/y 

fix(w), ceil(w), floor(w), round(w) – funkcje zaokrągleń 

 

 

gdzie:  w, a, b, x, y – dowolne wyrażenia obliczeniowe. 

Przykład 

x=3.45 

y=(x^3-exp(-2*x))/(power(x,6)-2) 

 

 















 

Inne użyteczne polecenia: 

help 

 

%pomoc globalna 

help elfun  

% pomoc – spis funkcji elementarnych 

help rem  

% pomoc na temat wybranej funkcji (tu: rem

format long 

% większa dokładność wyświetlanych wyników 

format short 

% dokładność podstawowa 

demo   

% program demonstracyjny Matlab'a 

clc  

 

% czyszczenie ekranu 

clear    

% usunięcie zmiennych z obszaru roboczego 

Zadanie: 

background image

Wykonać przykładowe obliczenie wyrażenia dla wartości x=2.43: 





− 



 − √



− 



 

Operacje na tablicach 

m=[1 2 3 ] 

 

%przypisanie wartości elementom macierzy (wektor wierszowy) 

m0= [1; 2; 1; 1; 0] 

% przypisanie macierzy  (wektor kolumnowy) 

m1 = [1.1  2.1  3.55 ; -2 1 1; 1.44  0   0]   

%macierz kwadratowa 

m2=[1 1 1 1 1]  
m3=[1 2 3 4 5]  
m4 = m1 + m2  

% dodawanie macierzy (uwaga na wymiary i rozmiar) 

m5 = m4*m0   

% mnożenie macierzy (uwaga na wymiary i rozmiar) 

m5t = m5' 

 

% macierz transponowana 

m5o = m5^(-1) 

% macierz odwrotna 

m5*m5o 

 

% sprawdzenie - macierz jednostkowa 

det(m1) 

 

% funkcja obliczenia wyznacznika macierzy kwadratowej 

m3(3)  

 

% dostęp do elementu macierzy (indeks elementu) 

m1(2,3) 

 

% dostęp do elementu macierzy (indeksy wiersz-kolumna) 

Inny sposób definicji tablic: 

M1=0:10:90 
%Uwaga:  

wartość_początkowa:krok:wartość_końcowa 

Przykład: Zinterpretować rezultat wypełnienia tablicy: 

M2=[M1; sin(M1*pi/180)] 

Zadania: 

1.

 

Wypełnić dwie macierze dwuwymiarowe (wiersze, kolumny) rozmiarze MxN, a następnie: 

 

dodać je do siebie, 

 

pomnożyć je przez siebie. 

2.

 

Jaki  rozmiar  w  obu  wymiarach  powinny  mieć  macierze,  żeby  dozwolone  było  wykonanie  obu 

operacji? 

3.

 

Zastąpić operator mnożenia * operatorem dwuznakowym 

.* . 

Zinterpretować wynik. 

4.

 

Wykonać dzielenie elementowe macierzy przez macierz wykorzystując operator 

./

  (obie ten sam 

rozmiar w obydwu wymiarach.   Zinterpretować wynik. 

5.

 

Jaką macierz da się podnieść do kwadratu? Wypróbować operatory: 

^

  i  

.^

 

6.

 

Wypróbować i wyjaśnić działanie kolejnych poleceń: 

A=rand(5,5) 
B=max(A) 
C=max(max(A)) 
[i,k]=max(A) 

Rozwiązanie układu równań liniowych 

2x   +  3y – 4 z   = 5 
x     +   y   –   z   = 3,5 
-4 y + 2,5 x – z   = 2 

Rozwiązanie: 

A = [2  3  –4 ; 1  1  -1  ; 2.5  –4 –1]  

 

% Uwaga: zachować kolejność zmiennych 

B = [ 5 ; 3.5  ;  2] 
X= A^(-1)*B 

 

%wektor rozwiązań 

A*X 

 

 

%sprawdzenie – wynikiem powinien być wektor wyrazów wolnych B 

Pierwiastki wielomianu  

Funkcja 

roots

 

(argumentem funkcji jest tablica współczynników [a

n

 a

n-1

 ...  a

0

]) 

background image

Przykład: Dla równania: 5x

4

+x

2

 –2x –3 =0 

roots ( [5  0  1  –2  -3] ) 

Zadanie: 

Rozwiązać poniższy układ równań: 

–x   +  y – 4.3 z   + 2 v= 15 
3x     +   y   –   v   = 35 
4 x + 0,5 y + z   – 4.5 v = 2,2 
12,5 y – z   – 5 v = 12 

Zmienne zespolone 

 

Przykłady działań: 

z1 = 5.0 + 5.0i   

% zmienna zespolona 

z2 = sqrt(-1)   

i

 to jednostka urojona ( √−1  ) 

z3 = angle(z1)  

% kąt 

ϕ

 

z4 = 4*z3 

 

 

k1 = angle(0+1i)*180/pi 

 

k2 = angle(1+0i)*180/pi 

 

z1o=1/z1 
z4=z1*z2 

Sprawdzić i wyjaśnić wyniki operacji: 

v1= log(0) 
v2=log(-1) 
v3=exp(log(-1)) 

Zadanie 

1.

 

Zdefiniować dwie zmienne zespolone: 

4.5+4.7i  

 

–2.5 –5.6i 

2.

 

Wykonać dodawanie i mnożenie obu liczb zespolonych. 

3.

 

Przedstawić graficznie wynik dodawania dwóch liczb zespolonych w układzie kartezjańskim jako 

sumę dwóch wektorów.