Kezdőoldal » Számítástechnika » Programozás » Miért jelenik meg 0 helyett...

Miért jelenik meg 0 helyett 10^-13. -on nagyságrendű szám?

Figyelt kérdés

C++-ban készítettem egy legkisebb négyzetek elvén működő görbe illesztő programot. A probléma először magasabb fokú polinomok illesztésekor jelentkezett, ugyanis a mátrix eliminációs eljárása során 0 helyett 10^-13.-on nagyságrendű számot ad. Minél magasabb az illeszteni kívánt görbe fokszáma, ez a szám annál inkább tér el 0-tól. A kellemetlenség áthidalására először double helyett long double-t használtam a változóknál, de 4-5.fok környékén már ezek sem voltak elég pontosak.

A használt algoritmus egy teljesen szokványos Gauss-elimináció, maple-ben leellenőriztem a számítás menetét lépésről lépésre, és ott nem jelentkezett ez a hiba.

Remélem érhetően fogalmaztam, a segítségeket előre is köszönöm!



#C++ #elimináció #Nem 0 érték #kicsi szám
2012. júl. 21. 14:27
 1/2 iostream ***** válasza:
A lebegőpontos számábrázolás már csak ilyen: nem pontos. De a gauss elimináció elvileg pont olyan algoritmus, aminél ennek nem kéne jelentősnek lennie. Biztos jól implementáltad?
2012. júl. 21. 16:14
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

Köszönöm a választ!

Meg is lepődtem, amikor nem jött ki a pontos eredmény...

Az implementáció úgy gondolom jó, az elimináció első lépésénél az első oszlopot (az első elem kivételével) szépen ki is nullázza, azonban a további lépéseknél már megjelenik a hiba, és minél több lépésre van szükség, annál szignifikánsabban jelentkezik. Arra gondoltam, talán több iterációval sikerülne kiküszöbölni ezt a kellemetlenséget, csak remélem van erre egyszerűbb megoldás is.

2012. júl. 21. 19:12

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!