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
- recurrence.m -- skrypt do pobrania
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.
- pobierz [5kB]
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.
- pobierz [12kB]
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:
- opracowanie [360kB]
- m-files [1kB]
Słowa kluczowe: współczynniki greckie, greki, instrumenty pochodne, opcje, Black Scholes, matlab, greeks


![[vim created]](./grafika/vim_created.png)