Ć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')
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.
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.