[PHP] Klasa do działań na macierzach, Prosta klasa do działań na macierzach |
[PHP] Klasa do działań na macierzach, Prosta klasa do działań na macierzach |
18.03.2012, 16:24:07
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 9 Dołączył: 2.02.2011 Skąd: undefined Ostrzeżenie: (0%) |
Witam
Zamieszczam stworzoną przez siebie prostą klasę do działań na macierzach, nie wszystko na nich można wykonać ale coś jest. http://student.agh.edu.pl/~shinuexx/matrix.class.txt /* offline - nowa wersja - patrz niżej */ sposób użycia
wygląd
Jeśli są jakieś błędy to pisać. Jeszcze postaram się trochę usprawnić klasę, ale na razie się sesja zbliża;P Kolejna wersja klasy: Matrix.class.php Zmiany: Kod #2.000 - usunięto zmienne publiczne $error oraz $errstr + dodano zmienną prywatną $scale odpowiedzialną za precyzję wyświetlania liczb przez sprintf + dodano metodę prywatną Matrix::_checkDimension odpowiedzialną za sprawdzenie wymiarów tablicy wejściowej do klasy + dodano obsługę wyjatków + dodano metodę publiczną Matrix::getScale() zwracającą aktualną precyzję wyświetlania liczb + dodano skalowanie do wyświetlania macierzy - metoda Matrix::scale(); - wyłączono metody Matrix::eigenvalues() oraz Matrix::eigenvectors() * zoptymalizowano część operacji na macierzy diagonalnej + dodano klasę MatrixException obsługującą wyjątki klasy Matrix + dodano metody Matrix::max() oraz Matrix::min() zwracające największą/najmniejszą wartość w macierzy/wierszu/kolumnie Krótki opis:
#ADD To moja pierwsza klasa obsługująca wyjątki więc prosiłbym o ocenę i ewentualne konstruktywne uwagi:) Ten post edytował shinuexx 18.03.2012, 22:19:07 |
|
|
18.03.2012, 21:57:30
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
Cytat Nie znaleziono obiektu!
Nie znaleziono żądanego URLa na tym serwerze. Odnośnik na referującej stronie wydaje się być nieprawidłowy lub nieaktualny. Poinformuj autora tej strony o problemie. Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem. Error 404 student.agh.edu.pl Sun Mar 18 21:57:12 2012 Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8r |
|
|
18.03.2012, 22:22:10
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 9 Dołączył: 2.02.2011 Skąd: undefined Ostrzeżenie: (0%) |
|
|
|
18.03.2012, 22:48:08
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) |
Czy policzysz wyznacznik dla macierzy powyżej stopnia trzeciego? Chętnie zobaczyłbym implementację metody Gaussa :] Pewnie znasz to - można sprawdzić poprawność Twojej implementacji, na co niestety nie mam w tej chwili czasu: http://matrixcalc.org/en.index.html
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
19.03.2012, 22:55:24
Post
#5
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 9 Dołączył: 2.02.2011 Skąd: undefined Ostrzeżenie: (0%) |
Nie zaimplementowałem jeszcze algorytmu Gaussa (chociaż byłby pewnie optymalniejszy) ale mimo to liczy wyznaczniki macierzy stopnia wyższego jak 3 np:
Kod 9914109304 Prawdą jest że im wyższy stopień to czas liczenia się niemiłosiernie dłuży. Postaram się zaimplementować Gaussa(próby nie bardzo udane widać w aktualnej wersji). Dodałem wczoraj także Matrix::MatlabFormat() (oraz 3 inne) zwracający macierz w matlabowskiej formie. |
|
|
Wersja Lo-Fi | Aktualny czas: 25.09.2024 - 07:12 |