[QGHG-it-dev-list] Zadatak 37 - racunanje determinante realne kvadratne matrice
Marko Vojinovic
vmarko at ipb.ac.rs
Sun Dec 14 12:14:06 CET 2025
Implementirati staticku funkciju
double real_valued_determinant ( vector<vector<double>> * matrix )
koja kao input dobija pointer na matricu (vektor vektora tipa double), i kao output vraca double koji predstavlja vrednost determinante date matrice.
Proveriti da li je pointer na matricu dobro definisan, i da li je matrica kvadratna --- ako ovo nije ispunjeno, prijaviti gresku log_report funkcijom
(vidi triangulator/library/include/input_and_output.hpp), i vratiti nulu kao rezultat. Ako matrica jeste kvadratna i ima dimenziju manju od kriticne,
izracunati determinantu pomocu Lajbnicove formule [1]. Ako matrica ima dimenziju jednaku ili vecu od kriticne, izracunati determinantu pomocu Gausovog
metoda eliminacije [2]. Gausov metod implementirati na kopiji matrice, tako da se originalna matrica ne menja.
Kriticnu dimenziju za determinantu definisati kao globalnu varijablu
extern int critical_determinant_size
unutar triangulator_global namespace-a, i zadati joj default vrednost 10. Sve globalne varijable su definisane u global_vars.cpp i .hpp fajlovima.
Funkciju za racunanje determinante staviti u novi source fajl biblioteke, pod nazivom math_functions.cpp, zajedno sa odgovarajucim include fajlom
math_functions.hpp, koji stoje zajedno sa ostalim fajlovima unutar putanje za biblioteku (triangulator/library/src i triangulator/library/include).
Include-ovati math_functions.hpp unutar triangulator.hpp fajla na odgovarajucem mestu.
Unutar triangulator/test/ putanje zatim dodati nov fajl determinanttest.cpp (po ugledu na main.cpp), i u njemu zadati 3-4 matrice raznih dimenzija
(i kvadratne i pravougaone), izracunati njihove determinante, i ispisati i matrice i rezultujuce vrednosti determinanti na stdout.
Ukoliko imate bilo kakva pitanja ili sugestije vezane za ovaj zadatak, slobodno se javite.
:-)
Marko
[1] https://en.wikipedia.org/wiki/Leibniz_formula_for_determinants
[2] https://en.wikipedia.org/wiki/Gaussian_elimination#Pseudocode
Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail: vmarko at ipb.ac.rs
More information about the QGHG-it-dev-list
mailing list