![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam napisać skrypty php:
1. liczący rząd dowolnej macierzy 3x3 2. obliczający wyznacznik dowolnej macierzy Co do 1 to nie wiem jaką metodę tu wybrać, aby było to w ogóle możliwe do napisania. W 2 wiem, że tutaj metodą może być rozwinięcie Laplace'a, ale nie mam pomysłu jak to rekurencyjnie napisać. Przyda mi się każda pomoc i za każdą z góry dziękuję. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
ad 1) Wikipedia i przeczytaj tam o rzędzie macierzy... Masz nawet przykład jak zastosować do tego eliminacje Gaussa.
ad 2) Znów Wikipedia i tam poczytaj o wyznacznikach macierzy. Dla Twojego przypadku zwróć uwagę na rozwinięcie Laplace'a (trudniejsze w implementacji) lub eliminację Gaussa. To drugie ma mnóstwo implementacji w necie. Najprostsza sekwencyjna to Kod for( s=0; s<n; ++s) Gdzie A to macierz, zaś tab to wiersz wynikowy popularnie oznaczany w algebrze jako b dla równania Ax = b (IMG:style_emoticons/default/smile.gif) Po implementacji algorytmu sobie zobacz gdzie masz wyniki (IMG:style_emoticons/default/winksmiley.jpg) Nie wiem czy istnieje prostsze niż to przedstawienie algorytmu Gaussa w pseudokodzie, który tak naprawdę jest już niemal gotowcem (IMG:style_emoticons/default/biggrin.gif)
{ tmp = tab[i][s] / tab[s][s]; for ( i=s+1; i<n; ++i) { for ( j=s; j<=n; ++j) A[i][j] = A[i][j] - tmp * A[s][j]; } } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 17:17 |