background image

Ćw 8. Matlab (2) 

Wykresy 2D 

Funkcja plot 

Definiujemy wektory serii:

 x 

i

 y 

>>

x= [0   1  2  3  4  5  6  7  8  9  10]    % wektor wartości  x 

albo: 

>>

x=0:10 

 

 

%generowanie wektora co 1, wart_pocz:wart_konc 

>>

y=sqrt(x)      

 

% wektor wartości  y 

>>

title('Wykres') 

 

%opcjonalnie tytuł wykresu 

>>

plot(x,y)       

 

% narysowanie wykresu (w osobnym oknie) 

Dwie krzywe w jednym układzie współrzędnych: 

>>

x=0:pi/50:6*pi  

 

% definicja wektora x  

>>

y=cos(2*x)./sqrt(x+1) 

% definicja wektora y(x) 

>>

z=sin(x) 

 

 

% definicja wektora z(x) 

>>

plot(x,y,'b',x,z,'r') 

 

(b=blue, r=red) 

Uwaga: Stosujemy operator  ./     dzielenie elementowe wektorów 

Funkcja fplot 

Dla funkcji fplot niepotrzebne są wektory zmiennych – jedynie wyrażenie tekstowe opisujące funkcję: 

fplot ( 

' wyrażenie arytmetyczne (x) ' , [ x_pocz , x_konc ] ) 

Przykład: 

>>

fplot('sin(x*x)/x',[0  4*pi]) % punkt dzielenia przez 0 nie jest rysowany 

Można również narysować więcej krzywych na wykresie: 

>>

fplot('[sin(x*x)/x, cos(x)]',[0   2*pi])   

Zadania 

1.

 

Wykonać wykres funkcji 

x

sin

e

3

x

 w przedziale [–10,10] stosując  funkcję plot i fplot

2.

 

Wykonać  w  jednym  układzie  współrzędnych  wykresy  dwóch  paraboli  podanych  równaniami 

kwadratowymi o zróżnicowanych współczynnikach.  

M-pliki 

W 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 w całości (jedna po drugiej). 

Przykład: 

Utworzyć własny folder. Utworzyć nowy m-plik (menu File/New/M-file) i w oknie edytora Matlaba napisać przy-

kładowo poniższy ciąg poleceń Matlaba (można też wykorzystać Notatnik Windows): 

a = 1.2; 
b = 1.5; 
c = 2.5; 
d = a+b+c; 
d = d -1; 
disp('Obliczone d wynosi:'); 
disp(d) 

Uwaga: średniki na końcu instrukcji powodują brak wyświetlenia echa instrukcji na ekranie. 

Zapisać plik we własnym folderze nadając plikowi nazwę, np. 

test1.m 

(koniecznie z rozszerzeniem 

m

)

. Wybrać 

folder  z  plikiem  jako  Current  directory,  zmieniając  lokalizację  w okienku  obok  menu  (klikamy  przycisk  […])  lub 

znajdując nasz folder w oknie Current directory).

1

 

                                                            

1

 

W starszych wersjach Matlab'a (np. Matlab 4.0) należy uzupełnić ścieżkę do naszego foldera poleceniem: 

>>path(path,'litera_dysku:\ścieżka_do_foldera') 

background image

 

Wykonać m-plik w Matlabie wpisując w linii poleceń: 

>>

 test1 

Przeanalizować rezultat wykonania skryptu. 

Instrukcja warunkowa 

Postać ogólna instrukcji: 

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) 

else 

  instrukcje (wykonywane gdy niespełnione oba warunki) 

end 

Bloki elseif można dowolnie "rozmnażać", chociaż może ich nie być. Bloku else może także nie być. 

Uwaga: po else nie podajemy warunku! (pozostałe przypadki). 

Przykłady warunków: 

a == 0 (!! równe UWAGA: 2 znaki =) 
b<c 
2*a >= 5 
x ~= 5  

(różne od) 

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

Przykład 1a: 

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

Przykład 1b

 (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') 
elseif delta==0 
    disp('delta=0'); 
else 
    disp('delta='); 
    disp(delta); 
end; 

Zadania 

1.

 

Uzupełnić przykład 1b o: 

a.

 

 obliczanie niewiadomych x oraz x1 i x2 w odpowiednich miejscach. 

b.

 

sprawdzenie  rozwiązań,  czyli  podstawienie  pierwiastków  do  równania  i  test  czy  da  to 

wynik 0. 

2.

 

Napisać  m-plik,  w  którym  rysowany  jest  wykres  funkcji  a  sin(bx+c),  gdzie  a,  b,  c  oraz  granice 

przedziału zmiennej x podawane są interakcyjnie przez użytkownika. 

background image

3.

 

Napisać  m-plik  rozwiązujący  równanie  3-go  stopnia  z  wykorzystaniem  funkcji  roots,  gdzie 

współczynniki a, b, c, d podaje użytkownik.