Ćw 8. Matlab (2) Wykresy 2D M

Transkrypt

Ćw 8. Matlab (2) Wykresy 2D M
Mechatronika PWSW
Ć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
−
x
1. Wykonać wykres funkcji e 3 sin 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 różnych parametrach.
M-pliki
W Matlab-ie można zapisać tekst ciągu instrukcji w pliku tekstowym ASCII o rozszerzeniu m. (tzw. m-pliki), a nastę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ć tekst
(można też wykorzystać Notatnik Windows):
a = 1.2;
b = 1.5;
c = 2.5;
d = a+b+c;
d = d -1
Uwaga: średniki na końcu instrukcji powodują brak wyświetlenia echa instrukcji na ekranie.
Zapisać plik we własnym folderze nadając mu nazwę, np. test1.m (koniecznie z rozszerzeniem m). Wybrać folder z plikiem jako Current directory (w okienku obok menu).1
Wykonać m-plik w Matlabie wpisując w linii poleceń:
1
W starszych wersjach Matlab'a należy uzupełnić ścieżkę do naszego foldera poleceniem:
>>path(path,'C:\ścieżka_do_foldera')
>> test1
Przeanalizować rezultat wykonania skryptu.
Instrukcja warunkowa
if warunek1
instrukcje (wykonywane gdy jest spełniony warunek1)
elseif warunek2
instrukcje (wykonywane gdy jest spełniony warunek2)
else
instrukcje (wykonywane gdy niespełnione oba warunki)
end
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')
else
disp('delta=');
disp(delta);
end;
Zadania
1. 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ń, 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.