wyk ad 2 dr aneta polewko klim n.
Skip this Video
Loading SlideShow in 5 Seconds..
Wykład 2 Dr Aneta Polewko-Klim PowerPoint Presentation
Download Presentation
Wykład 2 Dr Aneta Polewko-Klim

play fullscreen
1 / 25
Download Presentation

Wykład 2 Dr Aneta Polewko-Klim - PowerPoint PPT Presentation

haroun
197 Views
Download Presentation

Wykład 2 Dr Aneta Polewko-Klim

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Wykład 2 Dr Aneta Polewko-Klim https://play.google.com

  2. 26. Skrypty Skrypt • Skrypt to plik tekstowy o rozszerzeniu .m zawiera instrukcje w języku Matlab. • Skrypty nie pobierają żadnych argumentów ani żadnych nie zwracają, operują tylko na zmiennych dostępnych w przestrzeni roboczej Matlaba. Tam też są zapisywane wszystkie zmienne utworzone w skryptach. • Skrypt można utworzyć za pomocą dowolnego edytora tekstowego lub bezpośrednio w pakiecie Matlab. • Można w nim umieszczać komentarze poprzedzone znakiem %. W ten • sposób można tworzyć objaśnienia (tzw. helpy) do tworzonego • skryptu. • Help umieszcza się w pierwszych wersach skryptu. Objaśnienia te • zostaną wyświetlone po wpisaniu: >> helpnazwa_skryptu • Skrypt uruchamiamy podając jego nazwę w wierszu poleceń. Podczas • wykonywania skryptu można wpisywać dane z klawiatury oraz • wyświetlać wyniki w oknie poleceń.

  3. Twórca kodu programu jest jak dyrygent: Naukę buduje się z faktów tak jak dom buduje się z cegieł, ale samo nagromadzenie faktów nie jest jeszcze nauką, podobnie jak stos cegieł nie jest domem. Bolesław Rafał Kuc

  4. Wyświetlanie macierzy i ich rozmiarów.

  5. Przykład Przykład: >> K=[1 2 3; 4 5 6; 7 8 9; 10 11 12] >> size(K) >> 4 3 Wyświetlanie zawartości macierzy A w oknie poleceń: >> disp(K) 1 2 3 4 5 6 7 8 9 10 11 12 Pytanie: Co wyświetli się na ekranie gdy wpiszemy: size(K,1)? size(K,2)? length(K)?

  6. 20. Arytmetyka macierzowa i tablicowa. A=[1 -1; -2 3]; B=[1 1; 0 -2]; Dodawanie i odejmowanie macierzowe i tablicowe jest identyczne, tj. odbywa się element po elemencie: A + B = [2 0; -2 1] A – B = [0 –2; -2 5] Mnożenie macierzowe oznaczamy *, natomiast mnożenie tablicowe .*Podczas mnożenia macierzowego należy pamiętać, aby liczba wierszy pierwszej macierzy była równa liczbie kolumn macierzy drugiej. Ponadto w mnożeniu jak i w dzieleniu macierzowym nie jest spełnione prawo przemienności, A*B to nie to samo co B*A. A * B = [1 3; -2 –8]B * A = [-1 2; 4 –6]A .* B = B .* A = [1 –1; 0 –6]

  7. Dzielenie macierzowe nie jest przemienne, ponadto występuje tu dzielenie lewostronne i prawostronne. Operator lewostronny – macierz stojąca po prawej stronie jest dzielona przez macierz stojącą po lewej stronie. Ogólnie służy on do rozwiązywania równań liniowych postaci: A * x = b wtedy: x = A\b w tym wypadku wektor b jest dzielony przez macierz A. Operator prawostronny – macierz stojąca po lewej stronie operatora jest dzielona przez macierz stojącą po jego prawej stronie: A/B Dzielenie tablicowe: mamy także dwa operatory, a ponieważ przemienność w tym wypadku obowiązuje, gdyż operacje wykonujemy na poszczególnych elementach tablicy, mamy tylko dwa różne wyniki dzielenia: A.\B = B./A A./B = B.\A

  8. Przykład Rozwiąż układ równań >>A=[2 -3; -2 3]; >>B=[-3 2]; >>wektor_wynikowy=A\B >>wektor_wynikowy >> 0.24 0.26

  9. Potęgowanie: A^3 = A*A*A A^(.3) 4^B Transpozycja macierzy jest to zamiana wierszy macierzy z kolumnami. Jeżeli mamy macierz o składnikach rzeczywistych to transpozycja macierzowa i tablicowa daje taki sam wynik, natomiast różni się gdy składnikami macierzy są liczby zespolone. W tym przypadku transpozycja tablicowa zamienia tylko wiersze z kolumnami, natomiast transpozycja macierzowa zwraca macierz o elementach sprzężonych. 1 2 3 4 5 6 7 8 9 10 11 12 1 4 7 10 2 5 8 11 3 6 9 12

  10. 21. Formaty i wyświetlanie liczb. Obliczenia w Matlabie są wykonywane z podwójną precyzją, ale format wyświetlania liczb można zmienić za pomocą:format parametr_formatowania

  11. short – reprezentacja stałoprzecinkowa pięciocyfrowa • short e – reprezentacja zmiennoprzecinkowa pięciocyfrowa • long – reprezentacja stałoprzecinkowa piętnastocyfrowa • long e – reprezentacja zmiennoprzecinkowa piętnastocyfrowa • hex – szesnastkowe wyświetlanie zawartości komórek zawierających daną liczbę • + – znak + jest wyświetlany dla liczb dodatnich • bank – format walutowy, pełna część całkowita, do dwóch miejsc po przecinku • compact – wyłącza dodawanie dodatkowych pustych wierszy • loose – włącza dodawanie dodatkowych pustych wierszy • rat – przedstawia ułamki dziesiętne za pomocą ilorazu małych liczb całkowitych

  12. 22. Funkcje matematyczne. Matlab udostępnia wiele standardowych funkcji matematycznych. Argumentem każdej z nich może być macierz to wówczas operacja wykonywana jest osobno na każdym jej elemencie

  13. 23. Operatory porównania i logiczne

  14. 24. Instrukcje sterujące Instrukcja warunkowa if Wykonywana jeśli wyrażenie jest prawdziwe. w W oknie poleceń tą instrukcję należy wprowadzać linijka po linijce. ifwyrażenie instrukcje elseif wyrażenie instrukcje else instrukcje end ifwyrażenie instrukcje end

  15. Przykład Oblicz wartość funkcji f(x): >> if x>3 >> f=x.*x-6; >>elseif x>=-1 & x<=3 >> f=x; >>else >> f=x.*x-2; >>end

  16. Instrukcja warunkowa switch Wyrażenie może być liczbą lub łańcuchem znakowym. Wartość wyrażenia jest porównywana z wartościami kontrolnymi kolejnych przypadków case i wykonywane są instrukcje przy tej wartości case, która jest równa wyrażeniu. Jeżeli żadna z wartości kontrolnych nie odpowiada wyrażeniu wykonywane są instrukcje po opcjonalnym słowie otherwise. switch wyrażenie case wartość1 instrukcje case wartość2 instrukcje ... otherwise instrukcje end

  17. Przykład liczba=round(10*rand(1)); switch liczba case 1 wynik=sin(liczba) case 2 wynik=cos(liczba) otherwise wynik=tan(liczba) end wynik = -0.4161

  18. Instrukcja for Podczas wykonywania instrukcji for kolumny macierzy_wartości przyporządkowywane są kolejno iterowanej zmiennej. W praktyce macierz_wartości ma postać min : max min : krok : max krok może być dodatni, ujemny, jak i ułamkowy. for zmienna=macierz_wartości instrukcje end

  19. Przykład Utwórz macierz A o rozmiarze 5x4, o wyrazach: >> for i=1:5, >> for j=1:4, >> A(i,j)=(i+j)/(i+j+1); >> end >>end

  20. Instrukcja while Instrukcje są powtarzane dopóki część rzeczywista wyrażenia ma wszystkie elementy różne od zera. Postać wyrażenia jest taka jak w instrukcji if czyli jest to wyrażenie logiczne. >> u1=1; u2=1; i=2; n=100; >>while i<n >>u3=u1+u2; >>u1=u2; >>u2=u3; >>i=i+1; >>end >>u3 wynik 3.5422e+020

  21. Przykład Oblicz wartość setnego elementu ciągu Fibonacciego danego wzorem: >> u1=1; u2=1; i=2; n=100; >>while i<n >>u3=u1+u2; >>u1=u2; >>u2=u3; >>i=i+1; >>end >>u3 wynik 3.5422e+020

  22. Instrukcja break i return Polecenie break kończy wykonywanie pętli wcześniej niż wynikałoby to z warunków stopu dla pętli while lub przed skończeniem pętli for, wychodząc o jeden poziom zagłębienia na zewnątrz. Instrukcja return powoduje natomiast bezwarunkowe przerwanie skryptu lub funkcji i powrót do miejsca wywołania. whilewyrażenie_logiczne i=i+1; if i>=imax break end instrukcje end

  23. Przykłady instrukcji sterujących http://www.youtube.com/watch?v=-aULVtlzbN8

  24. 25. Łańcuchy Łańcuchy znakowe są wektorami składającymi się ze znaków. Łańcuch taki definiuje się za pomocą apostrofów np. >>s=’Matlab’ ; konwersji łańcucha na wektor kodów ASCII można dokonać poleceniem: >>a=double(s); konwersja odwrotna: >>char(a) Łańcuch jest wektorem, dlatego można na nim wykonywać operacje jak na zwykłych wektorach np. transpozycja łańcucha powodująca, że jego litery będą wypisywane jedna pod drugą. >>s’ Istnieje możliwość tworzenia macierzy, której wierszami są łańcuchy, w tym celu należy posłużyć się funkcją str2mat : >> S=str2mat('Matlab','procedury') S = Matlab procedury

  25. Łańcuchy Łańcuchy znakowe są wektorami składającymi się ze znaków. Łańcuch taki definiuje się za pomocą apostrofów np. >>s=’Matlab’ ; konwersji łańcucha na wektor kodów ASCII można dokonać poleceniem: >>a=double(s); konwersja odwrotna: >>char(a) Łańcuch jest wektorem, dlatego można na nim wykonywać operacje jak na zwykłych wektorach np. transpozycja łańcucha powodująca, że jego litery będą wypisywane jedna pod drugą. >>s’ Istnieje możliwość tworzenia macierzy, której wierszami są łańcuchy, w tym celu należy posłużyć się funkcją str2mat : >> S=str2mat('Matlab','procedury') S = Matlab procedury