Ćw 8. Matlab (2)
Transkrypt
Ćw 8. Matlab (2)
Ćw 8. Matlab (2) Wykresy 2D Funkcja plot Definiujemy wektor serii x i wektor y(x): >>x= [0 1 2 3 4 5 6 7 8 9 10] % wektor serii wartości x albo: >>x=0:10 >>y=sqrt(x) >>plot(x,y) %generowanie wektora co 1, wart_pocz:wart_konc % wektor wartości y=f(x) % narysowanie wykresu (w osobnym oknie) Dwie krzywe w jednym układzie współrzędnych: >>x=0:pi/50:6*pi >>y=cos(2*x)./sqrt(x+1) >>z=sin(x) >>plot(x,y,'b',x,z,'r') % definicja wektora x % definicja wektora y(x) % definicja wektora z(x) % (b=blue, r=red) Uwaga: Stosujemy operator ./ dzielenie elementowe wektorów. Przydatne dodatkowe funkcje (wykonać po funkcji plot): grid axis([xmin xmax ymin ymax]) title('Tekst') xlabel('Opis osi x') ylabel('Opis osi y') Funkcja fplot Dla funkcji fplot niepotrzebne są wektory dla zmiennych – jedynie wyrażenie tekstowe (lub tablica wyrażeń) opisujące funkcję: fplot ( ' wyrażenie_arytmetyczne (x) ' , [ x_pocz x_konc ] ) fplot ( ' wyrażenie_arytmetyczne (x) ' , [ x_pocz x_konc y_pocz y_kon ] ) fplot ( ' [w1(x), w2(x)] ' , [ x_pocz , x_konc y_pocz , y_kon ] ) Przykład: >>fplot('sin(x*x)/x',[0 4*pi]) % punkt dzielenia przez 0 nie jest rysowany Dwie krzywe na wykresie: >>fplot('[sin(x*x)/x , cos(x)]',[0 2*pi]) Funkcja mesh – powierzchnia 3D >>y=0:pi/50:3*pi >>x=y' >>z=sin(x)*cos(y) >>mesh(x,y,z) % definicja wektora wierszowego y % definicja wektora kolumnowego x (y transponowane) % definicja wektora z(x,y) % wykres Funkcja plot3 – krzywa 3D >>x=0:pi/100:6*pi >>y=exp(-0.06*x).*sin(5*x) >>z= exp(-0.06*x).*cos(5*x) >>plot3(x,y,z) % definicja wektora x % definicja y(x) % definicja z(x) % wykres Zadania 1. Wykonać na wykresie obrazek kwardratu funkcją plot (utworzyć wektory x i y dla współrzędnych punktów narożnych). − x 2. Wykonać wykres funkcji e 3 sin x w przedziale [–10, 10] stosując funkcję plot i fplot. 3. Wykonać w jednym układzie współrzędnych wykresy dwóch paraboli podanych równaniami 2-go stopnia o zróżnicowanych współczynnikach. 4. Wykonać wykres 3D funkcji: , = . 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ć przykł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 Wykonać m-plik w Matlabie wpisując w linii poleceń: >> test1 Przeanalizować rezultat wykonania skryptu. Interakcyjne wprowadzanie danych Napisać w m-pliku następujący ciąg instrukcji: clc clear x=input('Podaj liczbę:); y=input('Podaj drugą liczbę'); suma=x+y; disp('Suma wynosi:); disp(suma); Wykonać m-plik i zrozumieć działanie poszczególnych instrukcji. Zadania 1. 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. 2. 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. 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')