27 czerwca 2009

Równania rekurencyjne w Matlabie

function x = recurrence(x0, a, b, n) % x = recurrence(a, x0, n) % x0 wektor wartosci poczatkowych [kx1] lub [1xk] % a wektor parametrow [kx1] lub [1xk] % b wyraz wolny [1x1] % n dlugosc ciagu x [1x1] % % np. % y(n) = 7 - y(n-1) + 3*y(n-2) % y(0) = 0 % y(1) = 1 % % a = [3, -1] % x0 = [0, 1] % b = 7 k = numel(x0); % stopien rownania rekurencji [x0, a] = deal(x0(:), a(:)); assert(n>=k); assert(k == numel(a)); x = NaN(n, 1); % prealokacja pamieci dla ciagu wynikowego x(1:k) = x0; % przypisanie wart. pocz. do c. wynikowego for i = (k+1):n x(i) = sum(x0.*a) + b; x0 = x((i-k+1):i); end

Słowa kluczowe: matlab, równanie różnicowe


14 kwietnia 2009

Słownik w Matlabie po raz ostatni ... chyba

O słowniku w Matlabie pisałem tutaj, tutaj i tutaj. A w najnowszej wersji Matlaba (R2009a) dostępny jest wbudowany słownik --- containers.Map

Dokładny opis na stronach Mathworks.

Słowa kluczowe: matlab, słownik


02 grudnia 2008

Jeszcze raz słownik w Matlabie

Nie widzę sensu pisać o tym, dlaczego lubię słowniki i w jaki sposób to upodobanie się przejawia. Po prostu po raz kolejny zaimplementowałem słownik w Matlabie. Tym razem tworząc klasę w oparciu o nowy sposób oferowany przez Matlaba od wersji R2008a

Stworzony przeze mnie słownik ma następujące metody:

  • Dictionary - konstruktor obiektu
  • remove - usuwa element oznaczony zadanym kluczem
  • values - zwraca listę wszystkich elementów
  • keys - zwaraca listę kluczy
  • isEmpty - odpowiada na pytanie, czy słownik nie zawiera żadnych elementów
  • hasKey - odpowiada na pytanie, czy w słowniku znajduje się element oznaczony zadanym kluczem
  • getItem - zwraca element oznaczony zadanym kluczem
  • add - dodaje element do słownika i przypisuje mu zadany klucz
  • count - zwraca liczbę elementów znajdujących się w słowniku

Klasę można pobrać korzystając z łącza zamieszczonego poniżej.

Przykłady użycia słownika można znaleźć w howto.

Słowa kluczowe: słownik, matlab


01 grudnia 2008

Jeszcze raz szereg czasowy w Matlabie

Matlab od wersji R2008a oficjalnie wspiera definiowanie klas przy pomocy classdef. Wykorzystując tę nowość języka Matlab przepisałem stworzoną dawniej klasę tseries.

Nowa klasa nosi dumnie nazwę TimeSeries, posiada następujące atrybuty:

  • name - do zapisu nazwy szeregu czasowego
  • labels - lista nazw serii ("podszeregów") w szeregu
  • dates - zakres dat obejmowanych przez szereg
  • values - wartości w szeregu

oraz metody:

  • TimeSeries - konstruktor obiektu
  • addSample - dodaje wartości do serii w szeregu
  • addSeries - dodaje serię danych do szeregu
  • deleteSample - ususwa wartości wartości z serii w szeregu
  • deleteSeries - usuwa serię z szeregu
  • getSeries - zwraca serię szeregu
  • getSample - zwraca wartości serii szeregu dla zadanych dat

Klasę można pobrać korzystając z łącza zamieszczonego poniżej.

Słowa kluczowe: szeregi czasowe, matlab


07 października 2008

Więcej współczynników greckich

Ponad rok temu zamieściłem na stronie krótkie opracowanie dotyczące współczynników greckich. Niedługo potem dowiedziałem się o istnieniu tzw. współczynników greckich wyższego rzędu (higher order greeks). Pierwsze podejście do stworzenia tego dokumentu miałem kilka miesięcy temu, ale zabrakło mi motywacji, aby go dokończyć. Dzisiaj się to udało.

Dokumentowi towarzyszy zestaw funkcji do Matlaba:

Pliki do pobrania:

Słowa kluczowe: współczynniki greckie, greki, instrumenty pochodne, opcje, Black Scholes, matlab, greeks