Pomimo rozwoju programów klikologicznych w ekonometrii, istnieje wiele osób, które wciąż cenią sobie programy typu Matlab, czy Gauss. W programach klikologicznych typu EViews użytkownik ma małą kontrolę nad tym co program robi. Można co najwyżej mieć zaufanie do programistów poszczególnych firm i wierzyć, że to co jest ukryte pod maską programu zostało naprawdę dobrze zaprogramowane. W Gaussie i Matlabie mamy większość rzeczy pod naszą kontrolą. Moglibyśmy korzystać również z programów czysto programistycznych jak np. C++, ale Matlab ma kilka zalet Po pierwsze Matlab rozumie macierze. Wszelkie operacje macierzowe są niezwykle proste np. odwrócenie macierzy otrzymujemy przez A. Po drugie wiele rzeczy zostało już oprogramowane przez ekonometryków na świecie. Matlab jest obecnie najczęściej używanym programem do obliczeń nowych i skomplikowanych rzeczy w ekonometrii. (Czasem nie jest to Matlab, ale Gauss lub Octave jednak nie jest to wielkim problemem). Wystarczy ściągnąć kod z sieci, ewentualnie go trochę zmodyfikować i używać do własnych potrzeb. Tak naprawdę większość rzeczy, które będziemy robić można znaleźć na różnych uniwersyteckich serwerach. Do Matlaba dołączanych jest kilkadziesiąt różnych Toolboxów, w których oprogramowane są rzeczy najczęściej używane (niestety każdy toolbox to parę tys. dolarów) Przy Matlabie istnieje duże społeczność wymieniająca się plikami, programami i poradami http://www.mathworks.com/matlabcentral/
Workspace zmienne, progamy, etc. Okno komend Historia komend Zaczniemy od najprostszych komend 2+3 2+3; Średnik powoduje niewyświetlenie wyniku. Ostatnio uzyskany wynik jest w zmiennej ans ans Możemy w ten sam sposób przypisywać zmienne. x=2+7
W Matlabie możemy oczywiście obliczać zdecydowanie trudniejsze wyrażenia y=123*atan(3)^2 Gdzie atan oznacza arctan. Wstawianie dużych liczb np. 25e5 Wyświetlenie wartości zmiennej możemy uzyskać przez podanie jej nazwy. y Elementarne funkcje matematyczne Nazwa abs acoh, acosh acot, acoth angle asin, asinh ceil conj cos, cosh cot, coth exp fix floor log log10 pi real, imag Opis Wartość bezwzględna arcus cosinus i arcus cosinus hiperboliczny arcus cotangens i arcus cotangens hiperboliczny kąt dla liczby zespolonej w radianach [-pi,pi] arcus sinus i arcus sinus hiperboliczny sufit. Zaokrąglenie liczby w kierunku plus nieskończoności Liczba sprzężona Cosinus i cosinus hiperboliczny Cotangens i cotangens hiperboiliczny Funkcja wykładnicza Zaokrąglenie w kierunku zera Zaokrąglenie w kierunku minus nieskończoności Logarytm naturalny Logarytm przy podstawie 10 Liczba pi część rzeczywista i urojona liczby
rem round sign sqrt tan, tanh reszta z dzielenia zaokrąglenie do najbliższej liczby całkowitej znak liczby pierwiastek kwadratowy tangens i tangens hiperboliczny Kilka przykładów floor(y) round(y) ceil(y) fix(y) fix(-y) floor(-y) ceil(-y) round(-y) Kilka przykładów dla liczb zespolonych f=5+3i angle(f) angle(y) angle(-y) conj(f) real(f) imag(f) Mnożenie liczby zespolonej przez sprzężoną do niej f*conj(f) clear %czyszczenie workspacu Definiowanie macierzy w Matlabie A=[1 2 3 4] size(a) %rozmiar macierzy (liczba wierszy, liczba kolumn)
isvector(a) %czy macierz jest wektorem A = [5.73 2-4i 9/7 25e3.046 sqrt(32) 8j] A=[1 2; 2 3; 3 4] %średnik kończy wiersz isvector(a) %czy macierz jest wektorem B=[2;3;4] isvector(b) Matlab ma kilka zdefiniowanych macierzy C=zeros(3,5) % zdefinowanie macierzy o elementach zerowych D=ones(3,5) E=eye(5) % macierz identycznościowa o wymiarach 5 na 5 F=rand(5,5) %macierz o losowych wyrazach (rozkład jednostajny) % można kilka rzeczy na raz V=[1 23 ones(1,3)] Podstawowe operacje na macierzach C+D C+E % błędne wyrażenie D*F %mnożenie macierzy F*D %błędne wyrażenie F-E %odejmowanie macierzy F-4*E %odejmowanie macierzy przemnożonej przez skalar F' %transponowanie macierzy D*D %wyrażenie błędne D *D % wyrażenie poprawne inv(f) %odwracanie macierzy %sprawdźmy, czy macierz jest dobrze odwrócona F*inv(F)
%popatrzmy jeszcze raz na samą macierz %najpierw zmienimy format danych na 15 miejsc po przecinku format long inv(f) %teraz 15 miejsc po przecinku format zmiennoprzecinkowy format long e inv(f) F*inv(F) %Widać, że niektóre liczby są różne od zera (błędy zaokrągleń) %powrót do zwykłego wyświetlania formatu format short Odwoływanie się do elementów macierzy. Każdy element macierzy jest jednoznacznie zdefiniowany poprzez numer wiersza i kolumny F(1,3) oznacza wyraz w pierwszym wierszu i trzeciej kolumnie. a=f(1,3)+f(2,4) Istnieją również inne typowe operacje macierzowe diag(f) % wyrazy na diagonali tril(f) % macierz dolnotrójkątna z danej z1=diag(eye(3)+3*ones(3,3)) z2=tril(eye(3)+3*ones(3,3)) Pozostałe operacje macierzowe i tablicowe W Matlabie można wykonywać tzw. operacje z kropką. Np. X.*Y oznacza stworzenie macierzy C, której element c(i,j)=x(i,j)*y(i,j) z2.*eye(3) z2*eye(3) x1=[1 2 3] x2=[4 5 6] x1*x2 % działanie niewykonalne
x1.*x2 % działanie wykonalne x1*x2' % iloczyn skalarny wektorów x1^x2 %operacja niewykonalna x1.^x2 %każdy element wektora x1 do odpowiedniej potęgi (elementu x2) Dzielenie macierzy. W Matlabie mamy oprogramowane całe dzielenie macierzy Operacja \ np. A\B to taka macierz X, że A*X=B x1\x2 x1*ans % powinno dać x2 Operacja / dzielenie macierzy. Dokładnie oznacza to B/A = (A'\B')' x1/x2 Można też element po elemencie x1./x2 x1.\x2 Sumowanie elementów macierzy M=magic(4) %kwadrat magiczny sum(m) % suma kolumn sum(m') %suma wierszy Spróbujmy rozwiązać następujące równanie Mx=b M2=magic(3) b=[3;4;5] M2\b %sprawdzenie M2*ans
%inny przykład b2=[3;5;9;7] M\b2 %komunikat błędu. Układ nie ma rozwiązań %sprawdźmy M*ans % Można metodą najmniejszych kwadratów pinv(m)*b2 %pinv (pseudo inverse) %sprawdzenie M*ans Zadania 1. Wprowadzić do Matalba następujące macierze 1 3 5 A1= 0 0 0 1 1 1 1 0 0 0 0 1 0 0 A2 = 0 0 1 0 0 0 0 1 7 A3= 3*10 10 23 11 1 A4= 5 π 2. Obliczyć część rzeczywistą, część ułamkową, znaleźć kąt i liczbę sprzężoną dla 0 0 a1 = 3+ 4 i; a2 = cos 30 + i sin 30 ; a3 = exp(4) + iln(5) Pamiętaj, że standardowo w Matlabie kąty są w radianach, np. 45 0 oznacza pi/4
3. Wprowadź do Matlaba następujące macierze a) X kwadrat magiczny o wymiarach 5 na 5. b) Y macierz jednostkową o wymiarach 5 na 5. c) Z macierz 2 na 3 o wyrazach losowych d) V macierz 3 na 12 złożoną z zer e) a=[2 20 11 4 5] f) tabliczkę mnożenia 20 na 20. 4. Sprawdź czy w macierzy X wszystkie kolumny sumują się do tej samej liczby. A wiersze? 5. Znajdź macierz odwrotną do macierzy X i sprawdź, czy jest to rzeczywiście macierz odwrotna 6. Znajdź liczbę k będącą sumą elementów na diagonali macierzy X 7. Znajdź liczbę l będącą sumą elementu leżącego w trzecim wierszu i czwartej kolumnie, oraz liczby będącej w 5 wierszu i 1 kolumnie macierzy X 8. Przemnóż macierz X i Y. Przemnóż macierz X i Y wyraz po wyrazie. 9. Znajdź wektor u będący rozwiązaniem równania X*u=a. 10. Którą operację da się wykonać? A4*V,A4 *V, V*A4, V*A4, V.*A4, V.*A4'. 11. Zbudować wektor złożony z wektorów i kolumn macierzy X.