background image

Ćwiczenie 1. Matlab – podstawy (1) 

Matlab

 firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycz-

nych i dynamicznych, symulacji procesów, przekształceń i obliczeń symbolicznych itp.  

  Środowisko Matlaba składa się z: 

- okna Command Window, w którym wpisujemy pojedyncze polecenia, 
- okna Command History - historia poleceń, 
- okna z zakładkami: 

Workspace - obszar roboczy - lista zainicjowanych przez użytkownika zmiennych i ich wartości, 
Current Directory - zawartość katalogu roboczego. 

Dodatkowo można otworzyć okno edytora plików tekstowych (Editor). 

Domyślne rozmieszczenie okien uzyskujemy z menu: Desktop/Desktop Layout/Default. 

 

Ćwiczenie 

1.

 

Uruchomić program Matlab

2.

 

Zapoznać się ze strukturą okien programu. 

Podstawowa praca w środowisku odbywa się sposobami: 

 

interakcyjnym, w oknie poleceń (Command Window) wpisujemy polecenia i na bieżąco otrzymuje-
my wyniki.  

 

wsadowo – wykonywanie napisanych skryptów (m-plików) zawierających ciągi poleceń. 

Najważniejesze polecenie: instrukcja przypisania 

zmienna =

 

wyra

ż

enie 

Działanie instrukcji polega na obliczeniu wyrażenia i jego wartość nadawana jest zmiennej o podanej nazwie. 

Zmienna

 jest inicjowana (można zauważyć jej pojawienie na liście w okienku Workspace) lub, jeśli już taka zmien-

na istnieje, zmieniana jest jej wartość.  

Wyrażenie

 arytmetyczne budujemy w znany sposób, łącząc stałe, zmienne (uprzednio zainicjowane) oraz funkcje 

za pomocą operatorów arytmetycznych. 

Nazwy zmiennych

 to dowolny ciąg liter, cyfr i znaków _, lecz muszą się zaczynać od litery. W nazwach zmiennych 

istotne są duże i małe litery

Operatory działań jak w Excelu:  

- jednoargumentowe: + powielenie znaku,  – zmiana znaku 
 - dwuargumentowe: +, –, *, /, ^(potęgowanie),. 

background image

Uwaga: Potęgowanie wykonywane przed zmianą znaku (-2^2= -4 ale 2^-1=0.5). 
 Stosujemy również nawiasy okrągłe ustalające kolejność operacji. 

Ćwiczenie 

1.

 

Wpisać w oknie Command Window kolejne polecenia (każde zakończone Enterem): 

x1=5.4 
x2=x1+1 
x1=x1-2 

2.

 

Zrozumieć  działanie  poleceń.  Obserwować  pojawienie  się  informacji  o  zmiennych  i  ich  wartościach  w 
oknie Workspace

M-pliki 

Matlab-ie można zapisać tekst ciągu instrukcji w pliku tekstowym ASCII o rozszerzeniu m. (tzw. m-pliki), a na-

stępnie wykonać te instrukcje kolejno jedna po drugiej. Matlab zawiera własny edytor ASCII. 

Ćwiczenie 

1.

 

Utworzyć własny folder. 

2.

 

Zmienić  katalog bieżący w Matlabie na utworzony katalog metodami jak na rysunku: 

 

3.

 

Utworzyć nowy m-plik (menu File/New/M-file lub z menu podręcznego okna Current Directory) w folderze 
roboczym, nadając mu nazwę z rozszerzeniem m, np. test1.m

4.

 

W oknie edytora Matlaba napisać kolejne instrukcje jako tekst w m-pliku:  

a = 1.2; 
b = 1.5; 
c = 2.5e-3; 

 %naukowy zapis liczby : 2.5*10

-3

 

d = a/(b+c); 
d = d^(1/3) 

%pierwiastek 3-go stopnia! 

Uwagi: 
- instrukcje piszemy w osobnych wierszach, jeśli w jednym wierszu to oddzielamy je przecinkami, 
- średniki na końcu instrukcji powodują brak wyświetlenia echa instrukcji na ekranie, 
- nazwy zmiennych muszą być różne od nazwy m-pliku! 

5.

 

Wykonać wsadowo m-plik w Matlabie następującymi sposobami: 

- przy pomocy narzędzia Run w oknie edytora m-pliku, 
- przeciągając plik z okna Current Directory do Command Window 
- wpisując nazwę pliku (bez rozszerzenia!) w linii poleceń Command Window

>>

 test1 

6.

 

Przeanalizować rezultat wykonania skryptu. 

Wybrane funkcje arytmetyczne  

sin(w), cos(w), tan(w)cot(w) – funkcje trygonometryczne (argument w mierze łukowej) 
sind(w)cosd(w), tand(w)cotd(w) – funkcje trygonometryczne (argument w stopniach) 
sqrt(w) – pierwiastek kwadratowy 
abs(w) – wartość bezwzględna 
exp(w) – funkcja wykładnicza (e

w

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

b

), alternatywnie do operatora ^ (Uwaga: tak liczymy również pierwiastki!) 

log(w) – logarytm naturalny!!! 

background image

log10(w) – logarytm dziesiętny 
rem(x, y) – reszta z dzielenia x/y 
round(w) – zaokrąglenie do najbliższej całkowitej, 
fix(w) – zaokrąglenie do całkowitej w kierunku 0, 
ceil(w) – zaokrąglenie do całkowitej w kierunku +∞ 
floor(w) – zaokrąglenie do całkowitej w kierunku -∞ 
pi  stała π 
 

 

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 

- zwiększona dokładność wyświetlanych wyników 

format short 

- dokładność podstawowa 

clc  

 

- czyszczenie ekranu 

clear zmienna   - usunięcie zmiennej z obszaru roboczego (Workspace
clear    

- usunięcie wszystkich zmiennych z obszaru roboczego 

pause 

Zadanie 

1.

 

Sprawdzić algorytm zaokrąglania z dowolną dokładnością: 

format long 
pi5=round(pi*1E5)/1E5 

%zaokrąglenie π do 5-ciu miejsc dziesiętnych 

2.

 

Wykonać przykładowe obliczenia wyrażeń dla wartości x=2.43: 

 

 

 

 

 

 

 

 

Zmienne zespolone 

Zmienna zespolona ma postać: 

 

a + b i 

gdzie: a – liczba będąca tzw. częścią rzeczywistą, 
 

b – liczba będąca tzw. częścią urojoną, 

 

i – jednostka urojona: i

2

=–1 

Reprezentacja liczby zespolonej: 

 

W Matlab-ie otrzymujemy wyniki w postaci zespolonej dla niektórych działań nieposiadających rozwiązań w dzie-

dzinie liczb rzeczywistych, np. 

√−2 , log(-2) itp. 

z1 = 5.0 + 5.0i   

% zmienna zespolona 

background image

z2 = sqrt(-1)   

% jednostka urojona (pierwiastek arytmetyczny  z   –1) 

z3 = angle(z1)  

% kąt, jak na rysunku 

z4 = z3*4 

 

 

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

 

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

 

z1o=1/z1 
z4=z1*z2 
log(0) 
log(-1) 
exp(1)^log(-1)  

%sprawdzenie 

Ćwiczenie 

1.

 

Napisać m-plik, w którym: 

2.

 

Zainicjujemy dwie zmienne zespolone o wartościach: 

4.5+4.7i  

 

–2.5 –5.6i 

3.

 

Wykonamy i wyświetlimy wynik dodawania i mnożenia obu liczb. 

Instrukcja warunkowa 

Instrukcja służy do sprawdzenia warunków i alternatywnego wykonywania różnych grup instrukcji gdy dany wa-

runek będzie prawdziwy (true). Postać ogólna  

if

 

warunek1

 

  

instrukcje  (wykonywane gdy jest spełniony warunek1) 

elseif 

warunek2

 

  

instrukcje

 

(wykonywane gdy jest spełniony warunek2) 

elseif

 warunek3 

  instrukcje (wykonywane gdy jest spełniony warunek3) 

…itd  

else 

  instrukcje (wykonywane gdy niespełnione oba warunki) 

end 

Bloki else i elseif mogą zostać pominięte – wówczas gdy warunek1 nie jest spełniony wykonywana jest kolejna in-

strukcja po instrukcji if. Gdy pierwszy lub kolejny warunek jest prawdziwy, pozostałe warunki nie są już sprawdzane.  

Warunek to połączenie dwóch wyrażeń arytmetycznych znakami:  

>= 

<= 

== (równe) 

!=  (nie równe)  

Dwa warunki można związać: 
 

 - koniunkcją warunków, łącząc je operatorem logicznym &&  

 

 - alternatywą warunków, łącząc je operatorem logicznym || 

Przykłady warunków: 

a == 0  

(czy jest równe, UWAGA: 2 znaki ==) 

b<c 
2*a >= 5 
x ~= 5  

(różne od) 

x>0 && x<100  

Ćwiczenie 

Przeanalizować poniższe przykłady, tworząc i wykonując odpowiednie m-pliki: 

Przykład 1 

a = 1 
b = 6 
c = 3 
delta =  b^2-4*a*c; 
if delta<0 
    disp ('delta jest ujemne')     % wyświetlenie tekstu 
else  
    disp(delta)   

 

% wyświetlenie wartości zmiennej 

background image

end; 

Przykład 2 . Interakcja z użytkownikiem 

a = input('Podaj a:'); 
b = input('Podaj b:'); 
c = input('Podaj c:'); 
delta =  b^2-4*a*c; 
if delta<0 
     disp ('delta jest ujemne') 
else  
    disp('delta='); 
    disp(delta); 
end; 

Zadanie 

Uzupełnić przykład 1 o: 

a.

 

 obliczanie niewiadomych x1 i x2. 

b.

 

obliczanie pierwiastków tylko dla delta dodatniego, 

c.

 

obliczanie tylko jednego pierwiastka gdy delta będzie równe 0, 

d.

 

sprawdzenie rozwiązań -  podstawić pierwiastki do równania i przekonać się czy da to wynik 0.