Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyznacznik dla macierzy 7x7

Ostatnio zmodyfikowano 2018-04-13 15:55
Autor Wiadomość
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?
C/C++
double Macierz::ObliczWyznacznik() const
{
    Macierz M = * this; //Oblicza wyznacznik macierzy za pomoca metody Gaussa
    double a, wyznacznik;
    a = M( 1, 0 ) / M( 0, 0 ); // Macierz M to double M[ROZMIAR]
    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; //Zwraca wartosc wyznacznika
}
P-170623
darko202
» 2018-04-12 07:53:29
1.

Czy istnieje jakaś prosta modyfikacja tego?
zadajesz trudne pytanie "...proste..." ? 


2.
przeczytaj  np.
http://eduinf.waw.pl/inf/alg​/001_search/0082.php
http://eduinf.waw.pl/inf/alg​/001_search/0078.php

i napisz ten wyznacznik uniwersalny tzn. niezależny od wymiaru macierzy
P-170628
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.
P-170632
pekfos
» 2018-04-12 18:26:47
Nie mówimy tu o modyfikowaniu kodu, tylko o zaimplementowaniu zupełnie innego algorytmu.
https://pl.wikipedia.org/wiki​/Rozwini%C4%99cie_Laplace%E2%80%99a
P-170634
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ć.
P-170643
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

 


P-170644
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.
P-170645
« 1 »
  Strona 1 z 1