Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»SOS emlékeztető animáció programozás
»C# programozói főállás - WebCam Laboratory
»Projektmunkát keresek Delphi , PHP, JS, AJAX
»Delphi fejlesztőt keresek
»Programok, weboldalak, vizsgamunkák készítése!
» több téma
Tudástár
?Összesítés egy másik tábla adatai alapján
Mindig null értéket ad vissza, miért?
*Menü
PHPMailer SMTP kapcsolódási hiba (sajna megint)
Android - 2 objektum nem frissít egyszerre
SQL Query összehozása
C# : WSDL file SOAP hogyan?
Képernyő felbontás vagy méretarány megállapítása
*SSL socket kliens szerver biztonsagos?
?MySQL group by lekérdezés optimalizálás
Összetett MySQL lekérdezés EGY táblából
?URL átírás - CakePHP
[Oracle] Csak egyetlen adatbázis létezik?
?Kis és nagy betűk ne különbözzenek
?Jquery submit és post kiírása
» több téma
Társalgó
»Mit is tanuljak először Java vs C#?
»Bevezetés a PHP 5 programozásába könyv
»Elveszve a C#-ban - avagy hova tovább?
»Eladó Asus A2500H laptop használtan
»Rails hoszting szolgáltatót keresek
»Ingyenes webáruház, amihez könnyű plugin-kat írni
»Adás feliratozó program
»PHP Melody
»Letölthető az új Rad Studio XE és Delphi XE
»Linq to SQL VS Entity framework .NET
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Társalgó

»

Programozás-elmélet

»

Determináns gyorsan, pontosan

»

Determináns gyorsan, pontosan

nyitotta: c - -, idő: 2010.07.29., moderátor: netangel
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió
Sorrend:
Időzóna:
Blokkméret:
A mátrix determinánsát a mátrixot pl. felső 3 szögmátrix-xá alakítva a főátlóbeli elemek szorzataként viszonylag gyorsan ki lehet számolni. Ezt a módszert építettem bele készülő programomba, de nem vagyok megelégedve a pontosságával.
A determináns kifejtése pontos, de lassú. A programban ez is benne van, de 10x10 mátrixnál javallott hanyagolni a használatát.

Tegnap olvastam a Gauss eliminációval megoldott lineáris egyenletrendszer gyökeinek iteratív pontosításáról. A módszer tul..
Határozottan pontosabb lesz, a műveletigény nem nő minőségileg O(a*n^3)-ről O(b*n^3)-re, vagyis csak konstans-szorosan. előzmény
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... előzmény
mennyivel lesz így pontosabb? a műveletigény, hogyan változik?
(tudom, próbáljam ki...(ki is fogom))

jelenleg: csak sorcsere van.
(de már kész az oszlopcserét végző metódus is
főátlóban haladva, minden iterációban lépcsős mátrix-xá alakítás történik (ez hanyagolható lesz)

tehát kiválasztani a legnagyobb abszolútértékű elemet, és pozícióba hozni.

köszönöm.

ártalmatlan gyakorlásnak indult, de már látom, komoly, sőt kezd computeralgebrás lenni... előzmény
nem ismerem amiket felsoroltál.
lehetne picit bővebben?

egyébként programot szeretnék írni (c++ ban) ehhez gyűjtöm az információt előzmény
A pontosságot a főelemkiválasztás nevű módszerrel lehet javítani. Ha mondjuk ott tartunk, hogy az első oszlop elemeit akarjuk nullázni a sor legalsó elemének felhasználásával, ezzel a képlettel:
sor[i][j] = sor[i][j] - sor[n][j]*sor[i][1]/sor[n][1]
akkor még ezelőtt megkeressük az 1. oszlop maximális abszolútértékű elemét, és egy sorcserével elérjük, hogy az legyen az a[n][1]. Haladó esetben a maximumkeresést az egész mátrixra (mármint a pillanatnyilag átalakítatlan része) kiteresztjük, ekkor persze sor és oszlopcsere is kellene fog.

A főelemkiválasztásos Gauss-módszer előzmény
szia

math library-k teljesítményével nem vagy megelégedve?
pl intel math lib, esetleg GPU alapú számítás (pl OpenCL, CUDA) nem jöhet szóba?
A mátrix determinánsát a mátrixot pl. felső 3 szögmátrix-xá alakítva a főátlóbeli elemek szorzataként viszonylag gyorsan ki lehet számolni. Ezt a módszert építettem bele készülő programomba, de nem vagyok megelégedve a pontosságával.
A determináns kifejtése pontos, de lassú. A programban ez is benne van, de 10x10 mátrixnál javallott hanyagolni a használatát.

Tegnap olvastam a Gauss eliminációval megoldott lineáris egyenletrendszer gyökeinek iteratív pontosításáról. A módszer tul.képpen a mátrix szorzás/összeadás disztributív tulajdonnságára épít.

Azon gondolkodom van-e hasonló megoldás az eliminációval számolt determináns értékének pontosításához is. (Ami gyorsabb legyen a kifejtésénél

Bármilyen tanácsot szívesen veszek.
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu2.280
»Interlock660
»Frostech0570
»Pitta_530
»mezofi460
»Riha340
»Varsi310
»netangel120
»n0rb1120
»szbzs.2110
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Kelemzol
»Balucinho
» ugrás a wikire
A nap kifejezései
ȃrtelmezett nyelv
»Szkriptnyelv
»Turbo Pascal
» ugrás a wikire
jobline.hu
»Operations szakértő
»MSSQL adminisztrátor
»SAP BC specialista
»Szoftvertesztelő
»Oracle DBA
» még több állás
Hírek
»Webjáték-fejlesztő versenyt indít a Mozilla
»Megnyitja a Wave forráskódját a Google
»Már SVG fájlokat is indexel a Google
» több hír
PC Fórum hírek
»Tíz kritikus biztonsági hibát javít az új Firefox
»A Pirate Bay is áldozatául esett a tegnapi torrent-razziáknak
»Kiszivárgott videón az Internet Explorer 9
»Fájlcsere-razziák zajlanak ma Európaszerte - és Magyarországon is
»Darabjaira hulló logóval ünnepli 12. születésnapját a Google
»USB 3.0-s Intel alaplapok már idén?
»Rejtélyes Internet Explorer-sebezhetőséget vizsgál a Microsoft
»Legális fájlcsere havi párszáz forintért?
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen