200 likes | 355 Views
Po co komu spekulanci? Wprowadzenie do MATLAB ®. Tomasz Michalak Joanna Tyrowicz 12.10.2009. Jak działa rynek i po co nam spekulanci?. Co mówi ekonomia? Teoria arbitrażu – ale dlaczego ktoś miałby go uprawiać? Teoria arbitrażu – ale na czym robić arbitraż?
E N D
Po co komu spekulanci?Wprowadzenie do MATLAB® Tomasz Michalak Joanna Tyrowicz 12.10.2009
Jak działa rynek i po co nam spekulanci? • Co mówi ekonomia? • Teoria arbitrażu – ale dlaczego ktoś miałby go uprawiać? • Teoria arbitrażu – ale na czym robić arbitraż? • Wniosek: musi być jakaś normalna wymiana i jacyś normalni agenci (produktywni) • Wniosek 2: żeby musieli się wymieniać, muszą być różni • Pytanie: po co wtedy arbitraż? • Do czego jeszcze jesteśmy przyzwyczajeni w ekonomii? • Oczekiwania? Jakie? • Doświadczenie przeszłości? Po co?
Model podstawowy • Dwa typy dóbr: złoto i jedzenie • Oba konsumowanie po jednej jednostce w każdym okresie • Każdy agent ma „talent” do robienia obu dóbr: [sg, sf] • Ten talent to po prostu mnożnik jednostki pracy (sg oznacza, że z jednego dnia pracy produkuje sg jednostek złota) • To co się wyprodukuje każdy agent może przechowywać bez kosztów • Skąd się biorą talenty? • w normalnej ekonomii założylibyśmy, że jest ich dwa typy i będą się specjalizować (rozwiązanie dyskretne) • w MAS zakładamy, że każdy agent ma oba talenty ze zmiennej losowej (rozkład jednostajny)
Model podstawowy • Każdego dnia każdy agent decyduje, na produkcję którego dobra poświęca swój dzień • Decyzję podejmuje na podstawie obserwacji ceny obu dóbr z poprzedniego dnia • Skoro są racjonalni (maksymalizują bogactwo), będą produkować dane dobro tylko jeśli korzyści (talent * jednostka pracy) są większe niż koszty alternatywne (cena z wczoraj * talent tego drugiego * jednostka pracy) • Żeby „nie padli”, każdy agent ma przypisany minimalny poziom żywności (każdy swój indywidualny, znów losowany z rozkładu jednostajnego z jakimiś ograniczeniami) • Kupują/sprzedają na jakiejś aukcji • By kupowali/sprzedawali, muszą mieć jakieś kryterium decyzyjne – nazwijmy je użytecznością
Funkcja użyteczności agenta… • W każdym okresie albo składa ofertę kupna albo sprzedaży (nie można się wstrzymać – jakie konsekwencje takiego założenia?) • Cena składanej oferty to osobista użyteczność z posiadanej jednostki * cena z poprzedniego okresu – jakie konsekwencje takiego założenia? • Wartość indywidualnej użyteczności zależy od indywidualnych zasobów żywności i złota • jakie konsekwencje takiego założenia z perspektywy bogactwa? • jakie konsekwencje takiego założenia z perspektywy kształtu funkcji? • F=f(i)/r(i) oraz G=g(i)/P*r(i) => • B(F,G) ma dość specyficzną postać – co to oznacza? • B(0,0)=b00, B(0,1)=b01, B(0,∞)=b0 ∞, • B(0,0)=b00, B(0,1)=b01, B(0,∞)=b0 ∞, • B(0,G) = b0 ∞ - (b0 ∞- b00)e-γG gdzie γ=ln(b0 ∞- b00)/(b0 ∞- b01)
Aukcja • Uwzględniono dwa mechanizmy • sealed-bid • centralny planista zbiera ceny, ustala cenę równowagi maksymalizującą obrót • double auction • dopasowuje się oferty sell/buy, • rynek waha się pomiędzy najwyższym buy i najniższym sell • można podnieść najwyższy buy albo obniżyć najniższy sell albo zaakceptować któryś z tych dwóch • Jakie założenia? • nie sprzedaję poniżej swojego sell • nie kupuję powyżej swojego buy • aukcjoner działa tak, żeby obrót był maksymalny (dlaczego?)
Co robią spekulanci? • Spekulanci: • nic nie produkują • nie konsumują żywności • symulacje rozpoczynają z ustaloną ilością złota • gdy sprzedają/kupują, to całość • mają dwa rodzaje oczekiwań • szukają punktu przegięcia (gdy pochodna przestaje rosnąć) oczekiwanej ceny gdy kąt nachylenia rośnie, kupują (bo cena wzrośnie dalej), gdy kąt nachylenia się obniża, sprzedają (bo cena zmaleje dalej) • wygładzają cenę poprzez adaptacyjne ustalanie wartości oczekiwanej ceny jeśli cena z poprzedniego okresu jest wystarczająco niska (wobec oczekiwanej średniej), to kupują, bo raczej wzrośnie
… a na następnych zajęciach… … zrobimy ten model sami
MatLab na dziś • Czym jest MATLAB? • Podstawowe funkcjonalności • Operacje na macierzach i wektorach • Rysowanie
Some History • MATLAB = "matrix laboratory” • Wynaleziony w latach 1970tych przez Cleve Molera (dziekana wydziału informatyki na University of New Mexico) • Cel podstawowy: łatwo realizować przeliczenia z algebry liniowej bez konieczności znajomości FORTRANu (język do większości pakietów obsługujących algebraiczne przekształcenia) • Cleve Moler + Jack Little (inżynier) + Steve Bangert decydują, by produkt skomercjalizować i 1983 zakładają MathWorks, a oprogramowanie i tak już przeszło w tym czasie na język C. Źródło: Wikipedia
Jak wygląda MatLab Dwa podstawowe okienka: 1. Główne MATLAB okienko: * Command Window * Current Directory Window * Command History Window 2. Okienko na m-files (m-files to takie do-files tylko w MatLabie)
Jak wprowadzać zmienne? • Wektor: w [ ] wpisać cyferki a wcześniej go nazwać • a = [7,3] • b = [0:pi/10:10] • c = [1:1:100] • Macież: w [ ] wpisać cyferki oznaczając ; co wiersz a co kolumna • M=[1 2; 3 4] niestety z ; nie można zrezygnować, bo wyjdzie wektor • zeros=zeros(3,3) • ones=ones(4,4) • można jeszcze zeros=(3,2) albo zeros=(3,1) albo zeros=(1,3)…
Jeszcze tricki? • Jeśli się zostawi ; na końcu wiersza, MatLab nie wyświetli tej komendy (ale wprowadzi ją do pamięci podręcznej) • Jeśli zmienna już jest MatLab po prostu ją nadpisze (uwaga!) • Jak wyczyścić pamięć: • clear /wszystko/ • cls /tylko ten ekran/ • clear tocos /tylko to coś/ • Jak wybrać coś z pamięci, żeby to obejrzeć? • po prostu wpisz to coś i naciśnij enter • a
Jak rysować? • Każdą rzecz, jaką mamy, MatLab może narysować i jest w tym naprawdę dobry • Wiele rodzajów wykresów jest z góry oprogramowanych • np. cylinder, koło, wszystkie „surface” i w ogóle wielowymiarowe • Wiele spraw w wykresach można zmieniać (np. kolory, opisy osi, kompilację do LaTeX/TeX albo .ppt albo .doc) • Można tworzyć schematy własnych wykresów • Można je zapisywać w wielu poręcznych („lekkich”) formatach, a mimo to móc potem modyfikować.
Ćwiczenia • Wektory: • v = [1 : -1 : -6] • v = [1 : 0.1 : 1.5] • v = [1 : 0.1 : 1.55] • v = [1 : -0.1 : 1.5] • Rysunki • v = [1 2 2 3 3 4 4 3 3 4] plot(v) • x = [0:.2:20]; y = sin(x)./sqrt(x+1); y(2,:) = sin(x/2)./sqrt(x+1); y(3,:) = sin(x/3)./sqrt(x+1); plot(x,y)
Ćwiczenia • Rysunki • [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshc(X,Y,Z); axis([-3 3 -3 3 -10 5]) • t = 0:pi/20:2*pi; [X,Y,Z] = cylinder(2+cos(t)); surf(X,Y,Z) axis square • Etc…