Néhány javalsat:
1. A Numerical Recipes-ben érdemes elolvasni az idevágó fejezeteket. (A kicsit régebbi változata a könyvnek elérhető ingyenesen online, kiindulásnak teljesen jó).
2. a wiki LU dekompoziciót javasol det számításra, sztem megér egy próbát.
3. Nem vagyok teljesen biztos benne, hogy egy iteratív algoritmus itt működni fog. Az érvelésem a következő:
Tekintsünk az egyszerűség kedvéért valami ilyesmit:
Ax = b (ezt oldja meg a Gauss)
ahol x-et keressük, b-és A adott. "A" a "gép", ami x-el csinál valamit, hogy b-t kapjuk (pl. egy mátrix és lin. trafót csinál). Az ilyen iterativ javitó algoritmusok valahogy úgy működnek, hogy van valami kiindulási megoldás x-re, nevezzük x0-nek, amire hattatjuk A-t, és kapunk valami b0-t. Ekkor van egy jóldefiniált hibánk: err = |b-b0|, amit használhatunk arra, hogy egy jobb becslést kaphassunk a valódi x megoldásra. Ezek után ezt ismételjük addig, amíg err egy bizonyos küszöb alá csökken. A determináns számításnál nem látok ellenőrzési lehetőséget. Adott az "A" mátrix, és azt redukáljuk 1 számmá, nem tudok abszolut hibát definiálni... Szóval szerintem nem a Gauss-os dolog kell neked. Ha tévedek, valaki okosabb majd kijavít.
Még egy megjegyzés: minden számítás nagyon függ attól, hogy mekkora számok vannak a mátrixban, mekkora számok lépnek fel a köztes műveletek elvégzésekor. Ilyenkor jönnek olyan dolgok h Cahan összegzés, az összeadandók (szorzandók) nagyság szerinti rendezése és a műveletek ebben a sorrendben való elvégzése stb. De ezektől iszonyat lassú és bonyolult lesz az alg, cserébe talán picit pontosabb.
Az ultimate tüneti kezelés pedig az, ha vesz az ember egy "tetszőlegesen hosszú" számokat kezelő rutin csomagot és azt használja:) Na ez nyilván vicc, illetve csak nagyon indokolt esetben ajánlott...  |