zajęcia 2 - L5.pk.edu.pl
Transkrypt
zajęcia 2 - L5.pk.edu.pl
zajęcia 2 Plan zajęć: – definiowanie wektorów – instrukcja warunkowa if – wykresy Definiowanie wektorów: Co do definicji wektora: „Koń jaki jest, każdy widzi” Definiowanie wektora w „Octave” v1=[3,2,4] lub: v1=[3 2 4] co da wektor 'poziomy' lub v4 = [1;2;3] co da wektor 'pionowy'. Wyświetlenie wektora disp(v1); Odwoływanie się do konkretnego elementu wektora: Wyświetlenie drugiego elementu wektora disp(v1(2)); Zmiana wartości drugiego elementu w wektorze v1(2)=10; Wyświetlenie zmienionego wektora disp(v1); Definiowanie drugiego wektora: v2=[3,2,5,7]; Gdy spróbujemy teraz dodać v1+v2 otrzymamy błąd: dodawane wektory musza mieć ten sam rozmiar! zdefiniujmy zatem trzeci wektor o rozmiarze takim samym, jak v1: v3=[3,4,5]; dodajmy do siebie wektory: v1 i v3 v1+v3 Widzimy, ze po prostu odpowiednie elementy wektorów zostały dodane do siebie. Transpozycja wektora (zmiana z 'pionowego' na 'poziomy' lub na odwrót): v3' Mnożenie wektorów v1*v3' czyli inaczej wykonanie działania: v1(1)*v3(1)+v1(2)*v3(2)+v1(3)*v3(3) mnożenie wektorów element po elemencie v1.*v3 a rozpisane: v2(1)*v3(1),v1(2)*v3(2),v1(3)*v3(3) Mnożenie wektora przez liczbę: v1*10 Potęgowanie element po elemencie v1.^3 Pierwiastkowanie (element po elemencie): sqrt (v1) instrukcja warunkowa if: Ustawmy testowe wartości zmiennych, które później będą stosowane w instrukcjach warunkowych: a=10 b=3 c=-1 Instrukcja warunkowa if pozwala na wykonanie bloku kodu jeżeli spełniony zostanie zadany warunek. if (a>8) disp("a>8"); endif Jeżeli warunek będzie spełniony – zostaną wykonane instrukcje w bloku: „if-else”, jeżeli warunek spełniony nie będzie – wykonane zostaną instrukcje w bloku: „else-endif”: if (b>8) disp("b>8"); else disp("b<8"); endif Sprawdzenie kilku różnych warunków: konstrukcja (if, elseif, else, endif) if (b<8) disp("b<8"); elseif (c<0) disp("b>8 oraz c<0"); else disp("b>8 oraz c>0"); endif Jeżeli chcemy sprawdzić czy dwie wartości są różne to stosujemy operator: „!=”. Przykład: if (a!=10) disp("a jest rozne od 10"); else disp("a=10"); endif Uwaga: w przypadku porównania dwóch wartości stosujemy podwójny znak „==”. Pojedyncze „=” jest instrukcja przypisania! if (a==10) disp("a=10"); else disp("a jest rozne od 10"); endif Wyrażnenia logiczne: && - logiczne 'i' (iloczyn logiczny) || - logiczne 'lub' (suma logiczna) Przykład instrukcji warunkowej if z wyrażeniem logicznym if (a>2 && (b>2 || c>0)) disp ("a>2 i (b jest wieksze od 2 lub c jest wieksze od 0)"); else disp ("warunek: a>2 i (b jest wieksze od 2 lub c jest wieksze od 0) nie jest spelniony"); endif Instrukcje warunkowe można zagnieżdżać: if (a>2) if (b>2) disp("a>2 i b>2") else disp("a>2 i b<=2") endif else if (b>2) disp("a<=2 i b>2") else disp("a<=2 i b<=2") endif endif Ćwiczenie: napisanie programu obliczającego pierwiastki trójmianu kwadratowego (przykładowy program znajduje się w pliku ozz2_2_if.m) Wykresy: prosty wykres: operator zakresu: stworzy wektor od 1 do 10 co 1 x=1:10; funkcja plot() rysuje wykres: plot(x) narysowany wykres można zapisać do pliku (np do późniejszego wstawienia do dokumentu): print ("ozz2_3_pw.eps", "-deps", "-color") gdzie parametry: 1. ozz2_3_pw.eps – nazwa pliku 2. -deps – format obrazka (eps - wektorowy) 3. -color – zapisuje z kolorami Ambitniejszy wykres: operator zakresu: stworzy wektor od -2*pi do 2*pi co 0.1 x1=-2*pi:0.1:2*pi; operator zakresu: stworzy drugi wektor od -pi do pi co 0.1 x2=-pi:0.1:pi; Definiujemy funkcje, które będą pokazane na wykresie: y1=sin(x1); y2=cos(x2); y3=tan(x2); rysujemy trzy wykresy na jednej planszy: plot(x1,y1,"-2;sin(x);",x2,y2,"-+3;cos(x);",x2,y3,"-x4;tan(x);") x1: współrzędne x-owe punktów wykresu, y1: współrzędne y-kowe punktów wykresu, "-2;sin(x);" - definicja 'serii' wykresu: „-” oznacza linię ciągłą, „2” oznacza kolor „;sin(x);” to legenda wykresu – uwaga, pamiętać o znakach: „;” Dostępne kolory i ich oznaczenia: oznaczenie literowe k r g b m c w Dostepne style to: oznaczenie numeryczne 0 1 2 3 4 5 6 nazwa koloru black red (domyślny) green blue magenta cyan brown + * o x - . @ -@ Ustawiamy zakres osi (m.in. żeby przy tan nie wystrzelił 'w kosmos'): axis( [-2*pi 2*pi -1.1 1.1] ) Włączamy siatkę: grid on Opis osi: xlabel ("os x"); ylabel ("os y"); Tytuł całego wykresu title ("WYKRES FUNKCJI TRYGONOMETRYCZNYCH") Ćwiczenie dla studentów: do programu „trójmian” dorób wykres: – brak pierwiastków: wykres 1 kolor w zakresie (p-10, p+10) gdzie p- to x-owa współrzędna wierzchołka – 1 pierwiastek: wykres: dwa kolory: (x0-10,x0)(x0,x0+10) gdzie x0 – miejsce zerowe, zaznacz linią oś x, zaznacz miejsce zerowe, – 2 pierwiastki: wykres: trzy kolory: (x0-2*(x1-x0),x0)(x0,x1)(x1,x1+2*(x1-x0)) gdzie x0,x1 – miejsca zerowe, zaznacz linią oś x, zaznacz miejsca zerowe, gotowy program znajduje się w pliku: ozz2_5_trojmian_kwadratowy.m Przykładowe wykresy: 2 miejsca zerowe: 1 miejsce zerowe: