Wyznacznik dla macierzy 7x7
Ostatnio zmodyfikowano 2018-04-13 15:55
Wolfff Temat założony przez niniejszego użytkownika |
Wyznacznik dla macierzy 7x7 » 2018-04-11 20:30:35 Cześć, napisałem program liczący macierze 3x3 ale teraz muszę go zmodyfikować na 7x7. Czy istnieje jakaś prosta modyfikacja tego? double Macierz::ObliczWyznacznik() const { Macierz M = * this; double a, wyznacznik; a = M( 1, 0 ) / M( 0, 0 ); M[ 1 ] = M[ 1 ] - M[ 0 ] * a; a = M( 2, 0 ) / M( 0, 0 ); M[ 2 ] = M[ 2 ] - M[ 0 ] * a; a = M( 2, 1 ) / M( 1, 1 ); M[ 2 ] = M[ 2 ] - M[ 1 ] * a; wyznacznik = M( 2, 2 ) * M( 1, 1 ) * M( 0, 0 ); return wyznacznik; }
|
|
darko202 |
» 2018-04-12 07:53:29 |
|
Wolfff Temat założony przez niniejszego użytkownika |
» 2018-04-12 14:43:19 Przeczytałem te artykuły i nie potrafię na podstawie nich zmodyfikować tego kodu dla 3x3. |
|
pekfos |
» 2018-04-12 18:26:47 |
|
Wolfff Temat założony przez niniejszego użytkownika |
» 2018-04-13 14:56:56 No nic, nie sądze że dam radę to napisać. |
|
darko202 |
» 2018-04-13 15:16:42 1. z czym masz problem C++ ? jest tu kurs który wszystko ładnie omawia
2. przecież w linkach masz gotowy kod, tylko przeczytać, zrozumieć i zastosować. są komentarze
np. http://eduinf.waw.pl/inf/alg/001_search/0082.php kod dla CodeBloks - Edytor C++
inne strony i gotowe rozwiązania związane z wyznacznikiem
|
|
pekfos |
» 2018-04-13 15:55:47 Jeśli tylko rozumiesz matematykę która za tym stoi, to implementacja to ~30 linii kodu. Metoda rozwinięcia Laplace'a jest chyba najprostsza - do kolumny macierzy możesz dodać inną pomnożoną przez skalar bez zmiany wartości wyznacznika. Doprowadzasz macierz do formy w której będzie mniej obliczeń i redukujesz rozmiar macierzy z 7x7 do 6x6. I tak dalej aż będziesz mieć 3x3, gdzie możesz użyć swojego aktualnego algorytmu. Wszystkie potrzebne informacje masz w linku z wikipedii. |
|
« 1 » |