Matlab (3) Wykresy, m
Transkrypt
Matlab (3) Wykresy, m
Matlab (3) Wykresy, m-pliki 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]',[0 2*pi]) Zadanie Wykonać wykresy funkcji: = sin , tak dobrać k i ω aby w przedziale (0, 8π) sinusoida była łagodnie wygaszana, -wykresy porównujące funkcje ln x oraz log x w jednym układzie współrzędnych. 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 1. Utworzyć własny folder. 2. Zmienić katalog bieżący w Matlabie na utworzony katalog metodami jak na rysunku: 1. Utworzyć nowy m-plik (menu File/New/M-file lub ikonka) 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. 2. Zapisać plik (File/Save as..) we własnym folderze nadając plikowi nazwę, np. test1.m (koniecznie z rozszerzeniem m). Nazwa musi się zaczynać od litery, w nazwie pliku zabronione są polskie litery i spacje, nazwa pliku nie może też być taka sama, jak nazwa zmiennej w kodzie pliku. 3. Wykonanie m-pliku przy pomocy narzędzia Run w oknie edytora m-pliku (lub F5). 4. Przeanalizować rezultat wykonania skryptu. Funkcja plot3 – krzywa 3D Napisać m-plik o treści: 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 Funkcja mesh – powierzchnia 3D Napisać m-plik o treści: clc [x y]=meshgrid(0:0.1:4*pi, 0:0.1:4*pi); z=sin(x).*cos(y) mesh(x,y,z) %przygotowanie osi x i y o odpowiednich zakresach % definicja tablicy z(x,y) % rysowanie wykresu Zadania 1. Wykonać na wykresie obrazek kwadratu funkcją plot (utworzyć wektory x i y dla współrzędnych punktów narożnych). a. aby kwadrat był widoczny zmienić zakres x i y wykorzystując odpowiednio funkcję axis. b. dorysować do obrazka nowy kwadrat następną funkcją plot – utworzyć nowe lub wykorzystać poprzednie wektory, skalując i przesuwając (mnożąc przez stałą, dodając stałą). Uwaga – aby poprzedni kwadrat nie zniknął stosujemy przed wykonaniem drugiej funkcji plot instrukcję: hold on c. zamiast funkcji plot wykorzystać funkcję fill o postaci: fill(x, y, 'stała koloru') - stałe: 'r', 'g', 'b', 'k', 'y' itd. Uwaga: Dla funkcji fill nie trzeba domykać figury. 2. Wykonać wykres funkcji = |sin | w przedziale [0, 6π] stosując funkcję 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. , = - w przedziałach dla x i y (-4, 4) 4. Wykonać wykres 3D funkcji: 5. Wykonać wykres 3D funkcji: , = +2 - w tych samych przedziałach jak uprzednio – wstawiać różne wartości wspólczynnika k. Dodatkowo: zamiast funkcji mesh zastosować funkcję surf – porównać rezultaty. 6. Wypróbować działanie instrukcji: sphere(4) sphere(30)