Moduł Math::Matrix
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis treści
Obsługa modułu Math::Matrix
O czym to jest
Moduł udostępnia zestaw funkcji matematycznych, które wykonują operacje na macierzach. Macierze definiuje się jako tablice wielowymiarowe perla, przez proste połączenie w listę kilku anonimowych tablic.
Opis metod
- new
Tworzy nowy obiekt. W przypadku błędu zwraca undef.
use Math::Matrix; $a = new Math::Matrix ([1,1], [0,1]); #no i mamy pierwszą macierz :) print $a; $d = new Math::Matrix ([1,1], [0]); #nie utworzy macierzy :( print $d;
- clone
Kopiuje macierze
use Math::Matrix; $a = new Math::Matrix ([1,1], [0,1]); $d = $a -> clone; print $d;
- size
Określenie rozmiaru macierzy
- contact
Konkatenacja (inaczej złączenie) 2 macierzy (o ile jest to możliwe)
use Math::Matrix; $a = new Math::Matrix ([1,2,3], #wynikiem jest macierz: [4,5,6], #1 2 3 2 [7,8,9]); #4 5 6 3 $b = new Math::Matrix ([2],[3],[2]); #7 8 9 2 $c = $a -> concat($b); print $c;
- transpose
Zamienia kolumny macierzy z jej wierszami (czyli wykonuje jakby obrót w osi przekątnej).
use Math::Matrix; #rozwiązanie: $a = new Math::Matrix ([1,2,3], #1 4 7 [4,5,6], #2 5 8 [7,8,9]); #3 6 9 $d = $a -> transpose; print $d;
- multiply
Mnoży macierze (o ile jest to możliwe)
use Math::Matrix; $a = new Math::Matrix ([1,1], [0,1]); #wynik to: $b = new Math::Matrix ([1,2], #1 3 [3,4]); $3 7 $c = $b -> multiply($a); print $c;
- solve
Rozwiązuje układ równań danej macierzy. Liczba kolumn musi być większa niż liczba wierszy. Metoda zwraca macierz jednokolumnową z rozwiązaniem.
use Math::Matrix; $a = new Math::Matrix ([1,2], #powstaje układ: [3,5]); #1x + 2y = 1 $b = new Math::Matrix ([1,2]); #3x + 5y = 2 $E = $a -> concat($b->transpose); $E->print("Equation system\n"); $s = $E -> solve; #i jego rozwiązanie: print $s; #x=-1, y=1
- invert
Odwraca macierz, używając metody solve
use Math::Matrix; #macierz odwrotna: $a = new Math::Matrix ([1,2], #1 -2 [0,1]); #0 1 b = $a -> invert; print $b;
- multiply_scalar
Mnoży macierz i skalar. Zwrócony wynik jest macierzą
use Math::Matrix; #wynikiem jest: $a = new Math::Matrix ([1,2], #2 4 [0,1]); #0 4 print $a -> multiply_scalar(2) ;
- add
Dodaje macierze tego samego wymiaru
use Math::Matrix; $a = new Math::Matrix ([1,2], [0,1]); #po dodaniu mamy: $b = new Math::Matrix ([1,3], #2 5 [5,-1]); #5 0 $c = $a -> add ($b); print $c;
- equal
Sprawdza czy macierze, są takie same
use Math::Matrix; $a = new Math::Matrix ([1,2], [0,1]); $b = $a -> clone; print $a -> equal($b); #sa takie same (bo sklonowane;) wiec wypisze 1
- slice
Pozwala wybrać kolumnę lub kolumny
use Math::Matrix; #wypisze 1 i 3 kolumne: $a = new Math::Matrix ([1,2,3], #1 3 [0,1,1], #0 1 [4,6,8]); #4 8 print $a -> slice(0,2);
- determinant
Wyznacznik macierzy
use Math::Matrix; $a = new Math::Matrix ([1,2,4], [0,1,4], [0,0,4]); print $a -> determinant; #wyznacznki = 4
drukuje macierz na standardowe wyjście. Jeśli metoda ma dodakowe parametry, są one drukowane przed macierzą. (Przykłady powyżej i poniżej;)
pinvert
Oblicza pseudoinwersje macierzy: ((A'A)^-1)A'
use Math::Matrix; #wynik to: $a = new Math::Matrix ([1,1], #0.5 0.5 [1,-1]); #0.5 -0.5 print $a -> pinvert;
Dodatkowe informacje
Orginalna dokumentacja CPAN:
http://search.cpan.org/~ulpfr/Math-Matrix-0.5/Matrix.pm
Kontakt i informacje o autorze opracowania
Autor: Z. L.
Email: zbyszek84@gmail.com