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: