Matematyka finansowa w pakiecie Matlab

Podobne dokumenty
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

1 Programowanie w matlabie - skrypty i funkcje

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Podstawy MATLABA, cd.

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Wstęp do Programowania Lista 1

Elementy metod numerycznych - zajęcia 9

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Obliczenia w programie MATLAB

MATLAB Podstawowe polecenia

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Matematyka finansowa w pakiecie MATLAB

Matlab Składnia + podstawy programowania

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

MATLAB - laboratorium nr 1 wektory i macierze

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Wprowadzenie do środowiska

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

1 Podstawy c++ w pigułce.

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Cw.12 JAVAScript w dokumentach HTML

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Matlab MATrix LABoratory Mathworks Inc.

Metody numeryczne Laboratorium 2

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

Wykorzystanie programów komputerowych do obliczeń matematycznych

Podstawy Programowania C++

Podstawy obsługi pakietu GNU octave.

Zakłócenia w układach elektroenergetycznych LABORATORIUM

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Zanim zaczniemy GNU Octave

Instalacja

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

TWORZENIE WYKRESÓW (1)

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

1 Podstawy c++ w pigułce.

Wprowadzenie do Scilab: macierze

Metody i analiza danych

Ćwiczenie 3: Wprowadzenie do programu Matlab

Pętle iteracyjne i decyzyjne

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Co to jest arkusz kalkulacyjny?

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

, h(x) = sin(2x) w przedziale [ 2π, 2π].

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Matlab Składnia + podstawy programowania

MATLAB tworzenie własnych funkcji

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

BIBLIOTEKA LOKALNE CENTRUM WIEDZY PRAKTYCZNEJ PRZEWODNIK PO NARZĘDZIACH WARSZTAT NR 1: ARKUSZE KALKULACYJNE - MINI SKRYPT

Technologie informacyjne: Arkusz kalkulacyjny

Wprowadzenie do systemu Scilab

Wprowadzenie do programu Mathcad 15 cz. 1

Elementy okna MatLab-a

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Układy VLSI Bramki 1.0

Programowanie w języku Python. Grażyna Koba

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Dlaczego stosujemy edytory tekstu?

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Edytor tekstu OpenOffice Writer Podstawy

ARKUSZ KALKULACYJNY komórka

Edytor tekstu OpenOffice Writer Podstawy

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Pokaz slajdów na stronie internetowej

Metody i analiza danych

zajęcia 2 Definiowanie wektorów:

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

SCILAB. Wprowadzenie do Scilaba:

Podręcznik użytkownika programu. Ceremonia 3.1

4.Arkusz kalkulacyjny Calc

JAVAScript w dokumentach HTML (1)

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Trochę o plikach wsadowych (Windows)

Przetwarzanie sygnałów

Ćwiczenie 1. Wprowadzenie do programu Octave

Praktyczne wykorzystanie arkusza kalkulacyjnego w pracy nauczyciela część 1

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Techniki wstawiania tabel

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Tworzenie prezentacji w MS PowerPoint

Transkrypt:

Matematyka finansowa w pakiecie Matlab Wykład 1. Wprowadzenie do Matlaba Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK Kurs letni dla studentów studiów zamawianych na kierunku Matematyka w ekonomii i finansach Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 1/71

Rys historyczny lata 70. XX wieku powstają LINPACK i EISPACK profesjonalne biblioteki pozwalające wykonywać obliczenia numeryczne z zakresu algebry liniowej, koniec lat 70. XX wieku Cleve Moler pracownik naukowy uniwersytetu stanu Nowy Meksyk, pisze program aby ułatwić swoim studentom korzystanie z tych bibliotek, nadaje mu nazwę MATLAB (od słów MATrix LABoratory), 1983 r. Cleve Moler i inżynier Jack Little zakładają firmę MathWorks, która ma się zająć dalszym rozwojem programu MATLAB, w kolejnych latach MATLAB zyskuje coraz większą popularność wśród naukowców i inżynierów z różnych dziedzin, zaczyna też być wykorzystywany jako narzędzie edukacyjne, szczególnie do nauki algebry liniowej i analizy numerycznej, obecnie nowe wersje MATLAB-a pojawiają się dwa razy do roku, aktualna wersja to R2010a, Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 2/71

Dostęp do Matlaba Jest to oprogramowanie komercyjne i to niestety dosyć drogie. Studenci mogą kupić specjalną wersję edukacyjną MATLAB & Simulink Student Version. Aktualne ceny można znaleźć na stronie firmy MathWorks www.mathworks.com i stronie firmy ONT polskiego dystrybutora Matlaba, www.ont.com.pl Na Wydziale Matematyki i Informatyki UMK Matlab jest zainstalowany (wersja R2009a): w każdym laboratorium (licencja typu ClassRoom, tylko do celów dydaktycznych), w pokojach niektórych pracowników, na maszynie anna, Darmowe odpowiedniki Matlaba: GNU Octave do pobrania ze strony www.gnu.org/software/octave/ SciLab do pobrania ze strony www.scilab.org Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 3/71

Czym jest Matlab? Profesjonalne środowisko do wykonywania wydajnych obliczeń naukowych i inżynierskich. Duże możliwości wizualizacji wyników obliczeń wykresy dwui trójwymiarowe, animacje. Bogata biblioteka funkcji matematycznych. Język programowania wysokiego poziomu pozwalający na pisanie własnych funkcji i wzbogacanie możliwości programu. Około 50-ciu dodatkowych bibliotek (tzw. toolboxów) zawierających specjalistyczne funkcje z różnych dziedzin, w szczególności Financial Toolbox i Financial Derivatives Toolbox Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 4/71

Interfejs Matlaba W głównym oknie programu znajdują się główne menu programu, pasek narzędzi oraz pulpit na którym umieszczone są okna zawierające narzędzia służące do zarządzania plikami, zmiennymi i aplikacjami związanymi z Matlabem. W standardowym (domyślnym) widoku, który możemy zmienić i dostosować do własnych potrzeb, na pulpicie znajdują się 4 okna: okno poleceń (ang. Command Window), okno historii poleceń (ang. Command History), okno przestrzeni roboczej (ang. Workspace), okno aktualnego katalogu (ang. Current Directory). Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 5/71

Interfejs Matlaba Rysunek: Główne okno Matlaba Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 6/71

Okno poleceń Zajmuje centralną część pulpitu. Wyświetla znak zachęty > > oznaczający, że Matlab czeka na wprowadzenie polecenia. Polecenia wprowadzamy najczęściej pojedynczo z klawiatury i zatwierdzamy klawiszem Enter. Matlab wykona obliczenia i wyświetli wynik lub komunikat o błędzie. Wszystkie wprowadzane polecenia są zapamiętywane. Możemy je ponownie wybrać za pomocą klawiszy kursora (strzałka w górę i strzałka w dół). Okno poleceń możemy wyczyścić wybierając z menu Edit opcję Clear Command Window. W menu File znajduje się polecenie Preferences, umożliwiające ustawienie niektórych parametrów okna poleceń. Możemy tu na przykład zmienić wielkość i kolor używanego fontu. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 7/71

Okno historii poleceń Możemy tu przeglądać nie tylko polecenia z aktualnej sesji, ale również te, które wprowadziliśmy wiele tygodni wcześniej. Polecenia te są ułożone w kolejności w jakiej je wprowadzaliśmy. Poszczególne sesje są oddzielone od siebie wierszem komentarza, w którym znajduje się data i godzina rozpoczęcia sesji. Po dwukrotnym kliknięciu polecenia zostanie ono skopiowane do okna poleceń i uruchomione. Historię poleceń możemy wyczyścić, wybierając z menu Edit opcję Clear Command History. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 8/71

Okno przestrzeni roboczej Są tu przechowywane wszystkie zmienne, jakie zdefiniujemy w czasie aktualnej sesji. W oknie tym możemy znaleźć podstawowe informacje o każdej zmiennej (nazwę, typ, aktualną wartość, itp.). Korzystając z tego okna, możemy również definiować nowe zmienne, kasować istniejące, bądź modyfikować ich wartości. Przestrzeń roboczą możemy wyczyścić za pomocą polecenia Clear Workspace z menu Edit. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 9/71

Okno aktualnego katalogu Wyświetlana jest w nim zawartość tzw. aktualnego katalogu Matlaba Jeżeli wprowadzimy w oknie poleceń nazwę funkcji, to właśnie w tym katalogu Matlab będzie najpierw próbował ją znaleźć. Jeżeli podczas pracy z Matlabem zamierzamy definiować własne funkcje, powinniśmy zapisywać je w aktualnym katalogu Matlaba. Możemy zapisywać je również w innym katalogu, który znajduje się na tzw. ścieżce przeszukiwania. Ścieżkę tę możemy przeglądać i modyfikować za pomocą polecenia Set Path znajdującego się w menu File. Aktualny katalog możemy wybrać sami, na pasku narzędzi znajduje się pole tekstowe, w którym wprowadzamy odpowiednią ścieżkę dostępu. Zawartość aktualnego katalogu wyświetli nam się w oknie aktualnego katalogu. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 10/71

Inne okna okno pomocy (ang. Help) otwierane za pomocą klawisza F1, pozwala przeglądać bardzo rozbudowane pliki pomocy, okna grafiki (ang. Figure), w których prezentowane są różnego rodzaju wykresy i inne wyniki poleceń Matlaba mające postać graficzną, okno edytora plików (ang. Editor) zawierające prosty edytor tekstów, w którym możemy tworzyć własne skrypty i funkcje, okno profilera pozwalające testować własne funkcje i poprawiać ich wydajność. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 11/71

Dziennik Zanim zaczniemy pracę w Matlabie warto włączyć tzw. dziennik. Dzięki temu wszystkie wprowadzone przez nas polecenia Matlaba oraz większość wyników (bez wykresów) będą zapisywane w pliku tekstowym. Aby włączyć dziennik wprowadzamy w oknie poleceń komendę > > diary( nazwa_pliku ) W aktualnym katalogu Matlaba zostanie utworzony plik tekstowy o tej nazwie. Jeżeli taki plik już istnieje, nowe polecenia będą do niego dodawane. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 12/71

Proste obliczenia Matlab może być traktowany jak bardzo rozbudowany kalkulator. Aby wykonać działanie, wprowadzamy je w naturalny sposób do okna poleceń i naciskamy klawisz Enter. Matlab potrafi wykonywać działania we właściwej kolejności, możemy używać nawiasów i wielu standardowych funkcji matematycznych. > > 2 + 3 ans = 5 > > 2 + 3 * 5 ans = 17 > > (2 + 3) * 5 ans = 25 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 13/71

Funkcje standardowe i pomoc Matlab zawiera bogatą bibliotekę funkcji matematycznych > > sin(pi/2) ans = 1 > > exp(1) ans = 2.7183 Listę dostępnych standardowych funkcji matematycznych możemy wyświetlić poleceniem > > help elfun Bardziej szczegółowe informacje o konkretnej funkcji uzyskamy za pomocą polecenia > > help nazwa_funkcji Na przykład polecenie > > help cos wyświetli informacje o funkcji cosinus. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 14/71

Zmienne Zmienne służą do zapamiętywania wyników obliczeń. Nie musimy deklarować zmiennej ani określać jej typu. Nazwa zmiennej to ciąg znaków zaczynający się od litery. Zmiennej przypisujemy wartość za pomocą operatora =. > > a = 3 + 1 a = 4 > > b = -5 b = -5 > > c = a + b c = -1 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 15/71

Zmienne Jeżeli nie podstawimy wyniku obliczeń pod żadną zmienną, zostanie on zapamiętany w domyślnej zmiennej ans. Zmienna ans przechowuje tylko wynik ostatniego obliczenia, każda nowa operacja powoduje zmianę jej wartości. > > 3 + 1 ans = 4 > > ans + 2 ans = 6 Aby sprawdzić aktualną wartość zmiennej wpisujemy jej nazwę w oknie poleceń. W oknie przestrzeni roboczej znajduje się lista aktualnie zdefiniowanych zmiennych. Po dwukrotnym kliknięciu na wybraną nazwę otwiera się okno edytora zmiennych, w którym można sprawdzić oraz zmienić wartość zmiennej. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 16/71

Blokowanie wyświetlania wyników Domyślnie wyniki obliczeń wyświetlają się na ekranie. Jeżeli chcemy tylko wykonać polecenie i nie wyświetlać jego wyniku, należy je zakończyć znakiem ; (średnik). Najczęściej wykorzystuje się to przy tworzeniu macierzy o dużych rozmiarach oraz w skryptach i funkcjach aby zapobiec wyświetlaniu na ekran wszystkich pośrednich wyników obliczeń. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 17/71

Liczby zespolone Matlab pozwala w prosty sposób wykonywać obliczenia na liczbach zespolonych. Jednostkę urojoną oznaczamy literą i lub j. > > u = 2 + 3i u = 2.0000 + 3.0000i > > v = i v = 0 + 1.0000i > > u + v ans = 2.0000 + 4.0000i > > vˆ2 ans = -1 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 18/71

Definiowanie prostych funkcji W oknie poleceń możemy definiować proste funkcje. Składnia tworzenia funkcji jest bardzo prosta f = inline( wzor funkcji ). > > f = inline( x + 5 ) f = Inline function f(x) = x + 5 > > g = inline( 2 * x + y ) g = Inline function g(x,y) = 2*x + y > > f(3) ans = 8 > > g(1,5) ans = 7 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 19/71

Formatowanie wyników Za pomocą polecenia format możemy zmienić sposób wyświetlania wyników. Domyślnie stosowany jest format short, wyniki wyświetlane są z dokładnością do 4 miejsc po przecinku. > > sqrt(2) ans = 1.4142 > > format long > > sqrt(2) ans = 1.414213562373095 > > format short > > sqrt(2) ans = 1.4142 Polecenie format zmienia tylko sposób wyświetlania wyniku, nie wpływa natomiast w żaden sposób na dokładność obliczeń. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 20/71

Obliczenia numeryczne Matlab jest pakietem obliczeń numerycznych, co oznacza, że wszystkie obliczenia wykonywane są na liczbach, a nie na symbolach. W przeciwieństwie do pakietów algebry komputerowej, takich jak Maple, Matlab nie potrafi stwierdzić, że pochodną funkcji sinus jest cosinus ani że rozwiązaniem równania ax + b = 0 jest x = b/a. Możemy natomiast wyznaczyć przybliżoną wartość pochodnej w danym punkcie oraz przybliżone rozwiązanie równania o danych współczynnikach. Podstawowy typ liczbowy używany w Matlabie to znany z wielu języków programowania typ double. Pozwala on wykonywać obliczenia na liczbach rzeczywistych z zakresu od 10 308 do 10 308 z dokładnością do 16 miejsc po przecinku. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 21/71

Obliczenia numeryczne Algorytmy numeryczne używane przez Matlaba zazwyczaj nie wyznaczają dokładnego wyniku, ale generują ciąg jego przybliżeń, który powinien być do niego zbieżny. Algorytmy te zatrzymują się po osiągnięciu określonej dokładności. Dlatego nie powinniśmy przejmować się tym, że zamiast oczekiwanej jedynki dostajemy 0.99999999, a zamiast zera np. 8.881784197001252e-016 Ten ostatni wynik jest zapisany w tzw. postaci wykładniczej, liczba znajdująca się po literze e oznacza o ile miejsc, i w którą stronę musimy przesunąć przecinek w liczbie znajdującej się po lewej stronie liczby e. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 22/71

Macierze w Matlabie Macierz (tablica dwuwymiarowa) to podstawowa struktura danych używana w Matlabie. Jej szczególnymi przypadkami są skalary, czyli macierze wymiaru 1 1 oraz wektory czyli macierze wymiaru 1 n lub n 1). Najprostszą metodą utworzenia macierzy jest podanie jej wszystkich elementów. Musimy przy tym pamiętać o kilku prostych zasadach: elementy poszczególnych wierszy oddzielamy od siebie spacjami lub przecinkami, w każdym wierszu musimy umieścić taką samą liczbę elementów, wiersz kończymy średnikiem, całą listę elementów otaczamy nawiasami kwadratowymi. > > A = [1 7 8 ; 4 3 6 ; 10 23 4] A = 1 7 8 4 3 6 10 23 4 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 23/71

Macierze w Matlabie Macierz możemy też wygenerować za pomocą wbudowanej funkcji Matlaba. zeros generuje macierz złożona z samych zer, ones generuje macierz złożoną z samych jedynek, eye generuje macierz identycznościową, rand generuje macierz, której elementy są losowane zgodnie z rozkładem jednostajnym na odcinku [0, 1], randn generuje macierz, której elementy są losowane zgodnie ze standardowym rozkładem normalnym. Każda z tych funkcji przyjmuje dwa argumenty wejściowe, są to wymiary macierzy. Jeżeli chcemy utworzyć macierz kwadratową, wystarczy podać jeden argument > > B = zeros(3,2) B = 0 0 0 0 0 0 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 24/71

Macierze w Matlabie > > C = eye(2,2) C = 1 0 0 1 > > D = eye(2,3) D = 1 0 0 0 1 0 > > E = rand(1,3) E = 0.8147 0.9058 0.1270 > > F = ones(3) F = 1 1 1 1 1 1 1 1 1 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 25/71

Operacje na macierzach Matlab pozwala wykonywać na macierzach operacje dodawania, odejmowania, mnożenia przez skalar i przez siebie. Używamy do tego naturalnych operatorów +,,. > > A = [1 2 5 ; 0 8 1] A = 1 2 5 0 8 1 > > B = [2 3 4 ; 7 2 5] B = 2 3 4 7 2 5 > > C = [1 2 ; 5 3 ; 4 1] C = 1 2 5 3 4 1 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 26/71

Operacje na macierzach > > A + B ans = 3 5 9 7 10 6 > > B - A ans = 1 1 1 7 6 4 > > 2 * C ans = 2 4 10 6 8 2 > > B * C ans = 33 17 37 25 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 27/71

Wymiary macierzy Matlab udostępnia dwie funkcje pozwalające sprawdzać wymiary macierzy, są to size i length. Funkcja size jako argument przyjmuje dowolną macierz A, i zwraca dwuelementową tablicę postaci [liczba_wierszy(a) liczba_kolumn(a)]. Jeżeli wywołamy ją z dodatkowym parametrem 1, to uzyskamy tylko liczbę wierszy, a jeżeli z parametrem 2, to tylko liczbę kolumn. Funkcja length działa tylko dla wektorów (macierzy 1 n lub n 1). Zwraca liczbę elementów wektora. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 28/71

Wymiary macierzy > > A = [1 2 5 ; 0 8 1] A = 1 2 5 0 8 1 > > B = [3 6 7 9] B = 3 6 7 9 > > size(a) ans = 2 3 > > size(a,1) ans = 2 > > length(b) ans = 4 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 29/71

Operacje na macierzach Kolejne często wykonywane operacje to transponowanie i odwracanie macierzy. Pierwszą z nich wykonujemy za pomocą operatora (apostrof), drugą za pomocą funkcji inv. Możemy również obliczyć rząd macierzy funkcja rank, wyznacznik det, ślad trace, współczynniki wielomianu charakterystycznego poly oraz wartości i wektory własne eig. Inną przydatna funkcją jest sum. Jeżeli jej argumentem jest wektor, to zwraca ona liczbę będącą sumą jego elementów. Jeżeli argumentem jest macierz, to funkcja zwraca wektor, którego elementy są sumami kolejnych kolumn macierzy. Listę wszystkich dostępnych funkcji tego typu możemy uzyskać za pomocą poleceń. > > help matfun > > help elmat Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 30/71

Operacje element po elemencie Dla dwóch macierzy o tych samych rozmiarach wynikiem mnożenia element po elemencie jest macierz tego samego rozmiaru, której elementami są iloczyny odpowiednich elementów macierzy wejściowych. Aby wykonać takie działanie, używamy operatora.* (znaku mnożenia poprzedzonego kropką). Inne często używane operatory tego typu to./ (kropka znak dzielenia) oraz.ˆ (kropka znak potęgi). A = 1 2 5 0 8 1 B = 2 3 1 2 3 4 > > C = A.*B C = 2 6 5 0 24 4 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 31/71

Operacje element po elemencie Większość wbudowanych funkcji Matlaba może mieć argument będący macierzą. Jeżeli na przykład wywołamy funkcję sqrt na macierzy A, to w wyniku otrzymamy macierz, której elementami będą pierwiastki elementów macierzy A. > > A = [1 2 ; 4 9] A = 1 2 4 9 > > sqrt(a) ans = 1.0000 1.4142 2.0000 3.0000 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 32/71

Dostęp do elementów macierzy Do elementu leżącego w k-tym wierszu i l-tej kolumnie macierzy A odwołujemy się poprzez A(k,l). > > A = [1 2 5 ; 0 8 1] A = 1 2 5 0 8 1 > > A(1,3) ans = 5 Możemy też zmieniać poszczególne elementy macierzy > > A(2,1) = 10 A = 1 2 5 10 8 1 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 33/71

Operator zakresu Aby uzyskać dostęp do większej części macierzy, wykorzystujemy operator zakresu : (dwukropek). Jego ogólna postać to wartość_początkowa : krok : wartość_końcowa. Parametr krok możemy pominąć, Matlab przyjmie wówczas jego domyślną wartość 1. I tak np. 1 : 2 : 5 odnosi się do elementów 1., 3. i 5., 2 : 6 odnosi się do elementów 2., 3., 4., 5., 6., 10 : -1 : 7 odnosi się do elementów 10., 9., 8. i 7. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 34/71

Operator zakresu Niech A = 3 4 7 9 2 5 0 1 10 8 5 2 > > A(1:2,2:4). ans = 4 7 9 5 0 1 Wszystkie elementy 3. wiersza > > A(3,:) ans = 10 8 5 2 Tylko parzyste kolumny macierzy > > A(:,2:2:4) ans = 4 9 5 1 8 2 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 35/71

Łączenie macierzy Do łączenia macierzy wykorzystujemy operator [] (parę nawiasów kwadratowych). Jeżeli np. A = 1 2 5 0 8 1 B = 7 3 to > > C = [A B] C = 1 2 5 7 0 8 1 3 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 36/71

Łączenie macierzy Dzięki operatorom konkatenacji i zakresu możemy w prosty sposób tworzyć złożone tablice. Utworzymy tablicę zawierającą w kolejnych kolumnach parzyste liczby od 2 do 100, ich kwadraty oraz pierwiastki. > > x = [2 : 2 : 100] ; > > y = [x x.ˆ2 sqrt(x)] ; ans = 2 4 1.4142 4 16 2... 100 10000 10 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 37/71

Usuwanie kolumn i wierszy Aby usunąć fragment macierzy za pomocą operatora zakresu odwołujemy się do niegi i używamy operatora []. > > A = [1 2 5 ; 0 8 1] A = 1 2 5 0 8 1 Usuniemy drugą kolumnę macierzy. > > A(:,2) = [] > > A A = 1 5 0 1 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 38/71

Wykresy dwuwymiarowe Do rysowania wykresów dwuwymiarowych służy funkcja plot. Jej najczęściej używana forma to plot(x,y), gdzie x i y są wektorami tej samej długości n. Na wykresie punkty (x(k),y(k)), gdzie k = 1,..., n, zostaną połączone linią łamaną. Po wywołaniu poleceń > > x = [1 2 3 4] > > y = [5 3 6 2] > > plot(x,y) otrzymamy wykres przedstawiony na rysunku (następny slajd). Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 39/71

Wykresy dwuwymiarowe Rysunek: Wykres liniowy Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 40/71

Wykresy dwuwymiarowe Możemy również rysować wykresy funkcji y = f (x). Aby wykres był gładki, musimy podawać współrzędne wektora x leżące blisko siebie. > > x = 0 : pi/100 : 2*pi; > > y = sin(x); > > plot(x,y) Do wykresu możemy dodać tytuł i etykiety osi > > title( Wykres funkcji sinus ) > > xlabel( x=[0,2\pi] ) > > ylabel( sin(x) ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 41/71

Wykresy dwuwymiarowe Rysunek: Wykres funkcji y = sin(x) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 42/71

Wykresy dwuwymiarowe Na jednym rysunku możemy narysować wykresy kilku funkcji. Każdemu wykresowi musi odpowiadać para argumentów x i y funkcji plot. Matlab automatycznie wybierze dla wykresów różne kolory. > > x = 0 : pi/100 : 2*pi > > y = sin(x) > > z = cos(x) > > plot(x,y,x,z) W celu łatwiejszej identyfikacji wykresów możemy dodać legendę: > > legend( sin(x), cos(x) ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 43/71

Wykresy dwuwymiarowe Rysunek: Wykresy funkcji y = sin(x) i y = cos(x) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 44/71

Wykresy dwuwymiarowe Do zmiany koloru linii służą parametry: c cyjan (jasnoniebieski), m magenta (purpurowy), y żółty, r czerwony, g zielony, b niebieski, w biały, k czarny. Do zmiany stylu linii służą parametry: - linia ciągła, -- linia przerywana, : linia kropkowana, -. linia przerywano-kropkowana, none brak linii. Wykres nie musi mieć formy liniowej. Możemy tylko zaznaczyć punkty określone przez wektory x i y. Punkty te możemy zaznaczać znacznikami: o, *, x, s (kwadrat), d (romb), ˆ (trójkąt), v (trójkąt), > (trójkąt), < (trójkąt), p (gwiazdka pięcioramienna), h (słoneczko). Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 45/71

Wykresy dwuwymiarowe Rysunek: plot(x,y, r,x,z, k ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 46/71

Wykresy dwuwymiarowe Rysunek: plot(x,y, :,x,z, ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 47/71

Wykresy dwuwymiarowe Rysunek: plot(x,y, + ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 48/71

Wykresy dwuwymiarowe Rysunek: plot(x,y, r-s ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 49/71

Wykresy dwuwymiarowe Matlab pozwala na umieszczanie nowych wykresów na już istniejących rysunkach. Po wydanie polecenia > > hold on wszystkie kolejne wykresy będą umieszczane na jednym rysunku. Po wywołaniu polecenia > > hold off Matlab wróci do domyślnego zachowania, tzn. każdy kolejny wykres będzie powodował utratę poprzedniego. Domyślnie wszystkie wykresy są rysowane w oknie zatytułowanym Figure 1. Możemy tworzyć nowe okna za pomocą polecenia figure. Ostatnie utworzone okno staje się oknem domyślnym i to w nim Matlab będzie umieszczał wykresy. Aby przełączać się między istniejącymi oknami wywołujemy polecenie figure(n), gdzie n jest numerem okna. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 50/71

Wykresy trójwymiarowe Załóżmy, że chcemy narysować wykres funkcji f (x, y) = sin( x 2 + y 2 ) x 2 + y 2 + 1 określonej na prostokącie [ 7, 7] [ 8, 8]. Wywołanie polecenia > > [X,Y] = meshgrid(-7:0.2:7, -8:0.2:8) spowoduje utworzenie dwóch macierzy X i Y. Punkty (X (i, j), Y (i, j)) są rozmieszczone równomiernie na prostokącie [ 7, 7] [ 8, 8]. Wartość 0.2 występującą w argumencie polecenia możemy oczywiście zmienić, jeżeli siatka punktów będzie zbyt rzadka, co wpłynie negatywnie na jakość wykresu. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 51/71

Wykresy trójwymiarowe Obliczamy wartości funkcji f w wyznaczonych w poprzednim kroku punktach > > Z = sin(sqrt(x.ˆ2 + Y.ˆ2))./ (sqrt(x.ˆ2 + Y.ˆ2)+1) Rysujemy wykres za pomocą polecenia > > mesh(x,y,z) lub > > surf(x,y,z) Pierwsze z nich utworzy wykres siatkowy składający się z linii łączących wyznaczone punkty, drugie wykres powierzchniowy. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 52/71

Wykresy trójwymiarowe Rysunek: Wykres siatkowy Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 53/71

Wykresy trójwymiarowe Rysunek: Wykres powierzchniowy Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 54/71

Wykresy Wybierając z menu Tools polecenie Edit Plot, a następnie klikając dwa razy w obszarze wykresu, włączamy edytor właściwości, za pomocą którego możemy w wygodny sposób dostosować wykres do naszych potrzeb zmienić używane kolory, fonty, grubość linii, jednostki na osiach itp. Każdy wykres możemy zapisać w domyślnym formacie Matlaba.fig lub w jednym z popularnych formatów graficznych:.bmp,.jpg,.png,.pdf,.tif,.eps. W tym celu w oknie z wykresem wybieramy z menu File polecenie Save, a następnie w oknie dialogowym podajemy nazwę pliku i wybieramy jego format. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 55/71

Wykresy Wybierając z menu Tools polecenie Edit Plot, a następnie klikając dwa razy w obszarze wykresu, włączamy edytor właściwości, za pomocą którego możemy w wygodny sposób dostosować wykres do naszych potrzeb zmienić używane kolory, fonty, grubość linii, jednostki na osiach itp. Każdy wykres możemy zapisać w domyślnym formacie Matlaba.fig lub w jednym z popularnych formatów graficznych:.bmp,.jpg,.png,.pdf,.tif,.eps. W tym celu w oknie z wykresem wybieramy z menu File polecenie Save, a następnie w oknie dialogowym podajemy nazwę pliku i wybieramy jego format. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 56/71

Skrypty Skrypt to zwykły plik tekstowy zawierający ciąg poleceń Matlaba. Pliki te mają rozszerzenie.m dlatego nazywamy je zazwyczaj m-plikami. Po utworzeniu skryptu i zapisaniu go na dysku, wpisanie w oknie poleceń nazwy skryptu spowoduje wywołanie kolejno wszystkich poleceń umieszczonych w skrypcie. Polecenia te mają dostęp do wszystkich zmiennych zdefiniowanych w głównym oknie Matlaba, wyniki działania tych poleceń są również wyświetlane w głównym oknie (bądź w oknach typu Figure, jeżeli są to polecenia rysujące wykresy). Aby utworzyć skrypt wybieramy z menu File polecenie New, Blank M-File. Pojawi się okno Edytora plików z otwartym pustym dokumentem. Jest to dosyć proste narzędzie zawierające jedynie podstawowe funkcje do edycji tekstu. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 57/71

Skrypty Utworzymy skrypt rysujący wykres funkcji sinus na przedziale [0, 2π]. W oknie edytora wpisujemy trzy polecenia x = 0 : pi/100 : 2*pi; y = sin(x); plot(x,y) Aby zapisać skrypt, wybieramy z menu File edytora polecenie Save. Musimy podać nazwę pliku (np. wykressinusa) i katalog, w którym chcemy go zapisać. Po zapisaniu skryptu przechodzimy do głównego okna programu i w oknie poleceń wpisujemy > > wykressinusa Spowoduje to utworzenie nowego wykresu funkcji sinus. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 58/71

Funkcje Funkcje to również pliki tekstowe (z rozszerzeniem.m) zawierające ciągi poleceń Matlaba. Od skryptów różni je to, że mogą przyjmować argumenty wejściowe i zwracać argumenty wyjściowe. Operują na zmiennych lokalnych, nie mają bezpośredniego dostępu do zmiennych zdefiniowanych w oknie poleceń Matlaba. Aby utworzyć funkcję, wybieramy z menu File polecenie New, Function M-File. Pojawi się okno Edytora plików z nowym plikiem zawierającym szkielet nagłówka funkcji. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 59/71

Funkcje function [ output_args ] = Untitled1( input_args ) %UNTITLED1 Summary of this function goes here % Detailed explanation goes here end Słowo function oznacza, że w pliku tym znajduje się funkcja, a nie zwykły skrypt. Untitled1 to tymczasowa nazwa funkcji, należy ją zastąpić własną nazwą. Za nazwą funkcji w nawiasie okrągłym należy podać argumenty wejściowe funkcji (oddzielamy je od siebie przecinkiem). Po lewej stronie znaku równości w nawiasie kwadratowym umieszczamy argumenty zwracane przez funkcję. Jeżeli funkcja zwraca tylko jeden argument, możemy opuścić nawiasy kwadratowe. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 60/71

Funkcje Funkcja może również nie zwracać żadnych argumentów (np. rysować tylko wykres) wtedy nawias kwadratowy i znak równości możemy pominąć. Następne dwie linijki zaczynają się od znaku %. Jest to komentarz, możemy umieścić tu opis naszej funkcji. Dalej umieszczamy ciało funkcji, czyli kolejne polecenia, które będą wykonywane po jej wywołaniu. Funkcję kończy słowo end. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 61/71

Funkcje przykład Utworzymy funkcję rysującą wykres funkcji y = sin(ax) na przedziale [0, 2π]. function sinus(a) x = 0 : pi/100 : 2*pi; y = sin(a*x); plot(x,y); end Zapisujemy funkcję poleceniem Save z menu File. Uwaga: nazwa pliku musi być taka sama jak nazwa funkcji, tzn funkcja sinus musi być zapisana w pliku o nazwie sinus.m. Przechodzimy do głównego okna Matlaba. Wywołanie polecenia sinus(3) spowoduje narysowanie wykresu funkcji y = sin(3x), polecenie sinus(0.125) narysowanie wykresu funkcji y = sin(0.125x) itd. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 62/71

Funkcje przykład Napiszemy funkcję zwracająca największą i najmniejszą liczbę z danego wektora. Skorzystamy z wbudowanych funkcji min i max. function [M,m] = maxmin(x) M = max(x); m = min(x); end Zapisujemy ją w pliku maxmin.m. W oknie poleceń Matlaba tworzymy dowolny wektor i wywołujemy na nim naszą funkcję > > w = [3 1 5 9 0 8 4] > > [a,b] = maxmin(w) Na ekranie powinien pojawić się wynik a = 9 b = 0 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 63/71

Instrukcja warunkowa Najprostsza postać instrukcji warunkowej to: if wyrażenie_logiczne instrukcja_1 instrukcja_2 end. instrukcja_n Jeżeli wartość wyrażenia_logicznego jest różna od 0, to wykonywane są wszystkie instrukcje znajdujące się pomiędzy słowami if i end. Jeżeli wartość wyrażenia_logicznego wynosi 0 (wyrażenie fałszywe), instrukcje te są pomijane i wykonywana jest pierwsza instrukcja znajdująca się po słowie end. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 64/71

Instrukcja warunkowa postać ogólna if wyrażenie_logiczne_1 blok_instrukcji_1 elseif wyrażenie_logiczne_2 blok_instrukcji_2. elseif wyrażenie_logiczne_n blok_instrukcji_n else blok_instrukcji end Matlab sprawdza po kolei wartości wyrażeń logicznych. Jeżeli znajdzie wyrażenie prawdziwe, to wykonuje odpowiedni blok instrukcji i przechodzi do wykonywania instrukcji znajdujących się po słowie end. Jeżeli wszystkie wyrażenia logiczne są fałszywe, to wykonywane są instrukcje z bloku else. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 65/71

Instrukcja warunkowa przykłady if a >= 0 w = sqrt(a); end if a == b M = a; elseif a > b M = b; else M = a + b; end Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 66/71

Operatory relacyjne i logiczne Najczęściej wyrażenia logiczne tworzymy za pomocą operatorów relacyjnych < mniejszy niż, <= mniejszy lub równy, > większy niż, < większy lub równy, == równy, = różny, Operatory logiczne pozwalają na łączenie wyrażeń logicznych && logiczne AND (koniunkcja), logiczne OR (alternatywa), logiczne NOT (negacja), xor wykluczające OR (alternatywa wykluczająca), Przykłady: (x >= 0) && (y < x) (x + 2 = y) (y == z) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 67/71

Pętla for Pętla for służy do wykonywania grupy instrukcji ustaloną liczbę razy. Jej ogólna postać to: for licznik = start : krok : koniec instrukcja 1 instrukcja 2... instrukcja n end Obliczmy kwadraty liczb od 1 do 100 i umieśćmy je w tablicy A for k = 1 : 100 A(k) = k^2; end Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 68/71

Pętla while Pętla while również służy do wielokrotnego wykonywania tej samej grupy instrukcji. W odróżnieniu od pętli for nie musimy tu określać z góry liczby powtórzeń. Instrukcje są wykonywane dopóki prawdziwe jest pewne wyrażenie logiczne. while wyrażenie_logiczne instrukcja 1 instrukcja 2... instrukcja n end e = 1; while e > 0.000001 e = e/2; end Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 69/71

Publikowanie raportów Skrypty Matlaba możemy przekształcić w atrakcyjnie wyglądające dokumenty formatów HTML, MS Word, MS PowerPoint czy L A TEX. Załóżmy, że napisaliśmy skrypt rysujący wykres funkcji sinus. x = 0:0.1:2*pi; y = sin(x); plot(x,y) Z menu File edytora plików wybieramy polecenie Publish skrypt.m. Utworzony zostanie plik skrypt.html oraz plik graficzny zawierający wykres funkcji sinus. Utworzona strona zawiera wszystkie polecenia Matlaba z naszego skryptu oraz ich wyniki. Aby uatrakcyjnić wygląd dokumentu i zwiększyć jego czytelność, możemy podzielić go na części zwane komórkami. Nową komórkę rozpoczynamy znakiem podwójnego procenta %%. Tekst w wierszu zaczynającym się tym znakiem pełni rolę tytułu komórki. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 70/71

Publikowanie raportów przykład %% Rysowanie wykresu funkcji sinus %% Tworzymy wektor punktów % Wykorzystujemy do tego operator zakresu : x = 0 : 0.1 : 2 * pi %% Obliczamy wartości funkcji sinus w tych punktach y = sin(x) %% Rysujemy wykres funkcji plot(x,y) %% % Zmieniamy kolor wykresu na czerwony plot(x,y, r ) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 71/71