Analiza Szeregów Czasowych/GNU Octave

Z Skrypty dla studentów Ekonofizyki UPGOW

(Różnice między wersjami)
(Matlab / GNU Octave)
Linia 5: Linia 5:
==Matlab / GNU Octave==
==Matlab / GNU Octave==
-
Wstęp:
+
'''Matlab''' oraz jego otwarty odpowiednik '''GNU Octave''' stanowią środowisko programistyczne oraz język interpretowany w jednym. Nazwa ''Matlab'' pochodzi od ''MATrix LABoratory'' i w rzeczywistości największa siła owego narzędzia tkwi w obliczeniach bazowanych na macierzach (wektoryzacji obliczeń).
-
# [[Programowanie|Bardzo podstawowe wiadomości dotyczące ogólnej znajomości Matlab / GNU Octave]]
+
Po więcej informacji ogólnych o obu system odsyłamy czytelnika do wikipedii. Poniżej prezentujemy tez kilka bardzo użytecznych linków mogących służyć do podstawowego i nieco bardziej zaawansowanego opanowania Matlab / GNU Octave.
-
# [[MKZR:Dodatek|Nieco ciekawych wiadomości z zakresu wektoryzacji obliczeń oraz wizualizacji danych w Matlab / GNU Octave]]
+
 +
<u>Odnośniki</u>
 +
# na [http://el.us.edu.pl/ekonofizyka tej platformie]
 +
## [[Programowanie|Bardzo podstawowe wiadomości dotyczące ogólnej znajomości Matlab / GNU Octave]]
 +
## [[MKZR:Dodatek|Nieco ciekawych wiadomości z zakresu wektoryzacji obliczeń oraz wizualizacji danych w Matlab / GNU Octave]]
 +
# internet
 +
## [http://pl.wikibooks.org/wiki/GNU_Octave WikiKsiążka o GNU Octave (PL)]
 +
## [http://www.gnu.org/software/octave/ Strona domowa GNU Octave (EN)]
 +
## [http://www.mathworks.com/products/matlab/ Strona domowa MATLAB (EN)]
 +
## [http://www.matlab.pl/ Forum polskich użytkowników MATLAB (PL)]
 +
 +
 +
===Wizualizacja danych===
 +
Wizualizacja danych to podstawowe i bardzo potężne narzędzie analizy szeregów czasowych. Ciąg liczb nigdy nikomu nic nie powie jeżeli nie zostanie zaprezentowany na wykresie. Ten krótki podrozdział omówi podstawowe formatowanie plików wyjściowych. Wstęp do rysowania wykresów zawarty jest w tym rozdziale o [[Programowanie_Środ_Matlab#Grafika|grafice w podręczniku ''Programowanie'']]. Tutaj nieco rozszerzymy tą wiedzę.
 +
 +
Zapoznaj się z komendami: '''figure''', '''close''', '''hold''', '''clf'''.
 +
 +
Podstawową instrukcją do rysowania wykresów jest komenda '''plot'''. Przykładowe komendy
 +
<source lang="matlab">
 +
x = 0:2*pi/100:2*pi;
 +
y = power(sin(x),2);
 +
plot(x,y)
 +
</source>
 +
spowodują narysowanie linii składającej się ze 100 punktów a przedstawiającą kwadrat funkcji trygonometrycznej ''sin'' na przedziale <math>[0, 2 \Pi] </math> w aktywnym oknie graficznym. Następne komendy posłużą do podstawowego opisu osi wykresu i tytułu. Proszę zauważyć, że Octave rozumie formatowanie znane z [http://www.latex-project.org latexa], takie jak podniesienie (sub: ^), indeksowanie (sup: _) czy symbole matematyczne (<math>\sqrt{\cdot}, \gamma, \dots</math>).
 +
<source lang="matlab">
 +
xlabel('x', 'FontName', 'Times', 'FontSize', 18)
 +
ylabel('sin(x)^2', 'FontName', 'Times', 'FontSize', 18)
 +
title('Funkcje trygonometryczne', 'FontName', 'Times', 'FontSize', 22)
 +
</source>
 +
Ustawiliśmy też czcionkę, jaką chcemy wykorzystać i jej rozmiar (dobrze jest jeżeli czcionka istnieje w systemie ;) ). To teraz lekko podrasujemy wygląd naszego wykresu
 +
<source lang="matlab">
 +
plot(x, y, '--rs;sin^2(x);', 'LineWidth', 2, 'MarkerSize', 10)
 +
grid on
 +
legend('Location', 'North')
 +
</source>
 +
Po kolei:
 +
* '--' to linia przerywana
 +
* 'r' to kolor wykresu (czerwony)
 +
* 's' to znaczniki (kwadraty) pojawiające się w miejscu punktów
 +
* ';sin^2(x);' to legenda wykresu
 +
* 'LineWidth' i następujący po nim numer ustawiają szerokość linii
 +
* 'MarkerSize' i następujący po nim numer ustawiają wielkość znaczników
 +
* grid on - włącza siatkę (off wyłącza)
 +
* legend('Location', 'North') - ustawia legendę na środku u góry wykresu
 +
 +
Czasami potrzebne jest formatowanie napisów tekstowych w np: legendach, po ty by przykładowo wstawić automatycznie obliczoną średnią czy wartość jakiejś zmiennej do ciągu znaków. Można to zrobić wykorzystując np: funkcję '''sprintf'''. Działa ona identycznie jak z [http://pl.wikipedia.org/wiki/C_%28j%C4%99zyk_programowania%29 języku c].
 +
<source lang="matlab">
 +
plot(x, y, sprintf('--rs;{/Symbol m} = %.2f;', mean(y)), 'LineWidth', 2, 'MarkerSize', 10)
 +
</source>
 +
Przy okazji pokazaliśmy jak można uzyskać symbole greckich liter w ciągach znaków i w ogólności jak lokalnie zmodyfikować czcionkę (font).
 +
 +
====Pliki graficzne====
 +
 +
====Najczęściej używane własności====
 +
=====Style linii=====
 +
; linestyle : styl linii może być jedną z
 +
* "-" linia ciągła,
 +
* "--" linia przerywana,
 +
* ":" linia wykropkowana,
 +
* "-." kropka - kreska,
 +
* linewidth - określa szerokość linii, podstawowa wartość to 1, 2 oznacza dwukrotnie grubszą.
 +
=====Kolory=====
 +
Można specyfikowac jako tryplety RGB, lub użyć jednego z predefiniowanych (numerów, skrótów lub pełnych nazw):
 +
# 'r', 'red' - czerwony
 +
# 'g', 'green' - zielony
 +
# 'b', 'blue' - niebieski
 +
# 'm', 'magenta' - magenta
 +
# 'c', 'cyan' - cyan
 +
# 'w', 'white' - biały
 +
* 'b', 'black' - czarny
 +
 +
====GNUPLOT====
-
===Wizualizacja===
 
-
formatowanie png-ów
 
===pakiet TSA===
===pakiet TSA===

Wersja z 23:54, 27 gru 2010

Analiza Szeregów Czasowych
<<< Techniki analizy szeregów czasowych 

Spis treści

Matlab / GNU Octave

Matlab oraz jego otwarty odpowiednik GNU Octave stanowią środowisko programistyczne oraz język interpretowany w jednym. Nazwa Matlab pochodzi od MATrix LABoratory i w rzeczywistości największa siła owego narzędzia tkwi w obliczeniach bazowanych na macierzach (wektoryzacji obliczeń). Po więcej informacji ogólnych o obu system odsyłamy czytelnika do wikipedii. Poniżej prezentujemy tez kilka bardzo użytecznych linków mogących służyć do podstawowego i nieco bardziej zaawansowanego opanowania Matlab / GNU Octave.

Odnośniki

  1. na tej platformie
    1. Bardzo podstawowe wiadomości dotyczące ogólnej znajomości Matlab / GNU Octave
    2. Nieco ciekawych wiadomości z zakresu wektoryzacji obliczeń oraz wizualizacji danych w Matlab / GNU Octave
  2. internet
    1. WikiKsiążka o GNU Octave (PL)
    2. Strona domowa GNU Octave (EN)
    3. Strona domowa MATLAB (EN)
    4. Forum polskich użytkowników MATLAB (PL)


Wizualizacja danych

Wizualizacja danych to podstawowe i bardzo potężne narzędzie analizy szeregów czasowych. Ciąg liczb nigdy nikomu nic nie powie jeżeli nie zostanie zaprezentowany na wykresie. Ten krótki podrozdział omówi podstawowe formatowanie plików wyjściowych. Wstęp do rysowania wykresów zawarty jest w tym rozdziale o grafice w podręczniku Programowanie. Tutaj nieco rozszerzymy tą wiedzę.

Zapoznaj się z komendami: figure, close, hold, clf.

Podstawową instrukcją do rysowania wykresów jest komenda plot. Przykładowe komendy

x = 0:2*pi/100:2*pi;
y = power(sin(x),2);
plot(x,y)

spowodują narysowanie linii składającej się ze 100 punktów a przedstawiającą kwadrat funkcji trygonometrycznej sin na przedziale \([0, 2 \Pi] \) w aktywnym oknie graficznym. Następne komendy posłużą do podstawowego opisu osi wykresu i tytułu. Proszę zauważyć, że Octave rozumie formatowanie znane z latexa, takie jak podniesienie (sub: ^), indeksowanie (sup: _) czy symbole matematyczne (\(\sqrt{\cdot}, \gamma, \dots\)).

xlabel('x', 'FontName', 'Times', 'FontSize', 18)
ylabel('sin(x)^2', 'FontName', 'Times', 'FontSize', 18)
title('Funkcje trygonometryczne', 'FontName', 'Times', 'FontSize', 22)

Ustawiliśmy też czcionkę, jaką chcemy wykorzystać i jej rozmiar (dobrze jest jeżeli czcionka istnieje w systemie ;) ). To teraz lekko podrasujemy wygląd naszego wykresu

plot(x, y, '--rs;sin^2(x);', 'LineWidth', 2, 'MarkerSize', 10)
grid on
legend('Location', 'North')

Po kolei:

  • '--' to linia przerywana
  • 'r' to kolor wykresu (czerwony)
  • 's' to znaczniki (kwadraty) pojawiające się w miejscu punktów
  • ';sin^2(x);' to legenda wykresu
  • 'LineWidth' i następujący po nim numer ustawiają szerokość linii
  • 'MarkerSize' i następujący po nim numer ustawiają wielkość znaczników
  • grid on - włącza siatkę (off wyłącza)
  • legend('Location', 'North') - ustawia legendę na środku u góry wykresu

Czasami potrzebne jest formatowanie napisów tekstowych w np: legendach, po ty by przykładowo wstawić automatycznie obliczoną średnią czy wartość jakiejś zmiennej do ciągu znaków. Można to zrobić wykorzystując np: funkcję sprintf. Działa ona identycznie jak z języku c.

plot(x, y, sprintf('--rs;{/Symbol m} = %.2f;', mean(y)), 'LineWidth', 2, 'MarkerSize', 10)

Przy okazji pokazaliśmy jak można uzyskać symbole greckich liter w ciągach znaków i w ogólności jak lokalnie zmodyfikować czcionkę (font).

Pliki graficzne

Najczęściej używane własności

Style linii
linestyle 
styl linii może być jedną z
  • "-" linia ciągła,
  • "--" linia przerywana,
  • ":" linia wykropkowana,
  • "-." kropka - kreska,
  • linewidth - określa szerokość linii, podstawowa wartość to 1, 2 oznacza dwukrotnie grubszą.
Kolory

Można specyfikowac jako tryplety RGB, lub użyć jednego z predefiniowanych (numerów, skrótów lub pełnych nazw):

  1. 'r', 'red' - czerwony
  2. 'g', 'green' - zielony
  3. 'b', 'blue' - niebieski
  4. 'm', 'magenta' - magenta
  5. 'c', 'cyan' - cyan
  6. 'w', 'white' - biały
  • 'b', 'black' - czarny

GNUPLOT

pakiet TSA

pakiet ASC

Wszystkie prezentowane kody źródłowe do programów w języku Matlab / Octave jeżeli nie 
sprecyzowano inaczej dostępne są na licencji LGPL v3: ASC