Moduł Math::Matrix

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

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
print

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

Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.