( uid_2716 | 2008. 08. 03., v – 23:22 )

Remélem, jól értem a kérdést. Az A, B, A_ij, B_ij (i, j {0,1}-ben) mind paraméter, ugye?

1. Tegyük fel, A_11 = 0. Akkor az első egyenletből kapsz x és y között egy lineáris összefüggést, amit beteszel a másodikba, és azt megoldod másodfokú egyenletként. (Természetesen mindenhol figyelve, hogy amivel osztanál vagy szoroznál, az nem nulla. Igazából ezt az 1-es pontot is csak azért veszem külön, mert majd A_11-gyel akarok szorozni.)

2. Most inkább azt tegyük fel, hogy B_11 = 0. Ez az 1-es ponttal szimmetrikus.

3. Most azt tegyük fel, hogy A_11 != 0 és B_11 != 0. Ekkor az első egyenletet szorozd meg B_11-gyel, a másodikat pedig A_11-gyel. Így mindkettő végén A_11 * B_11 * x * y fog állni. Az egyikből vond ki a másikat, és kapsz eegy lineáris összefüggést x és y között, amit az eredeti két egyenlet akármelyikébe behelyettesíthetsz, és egy egyváltozós másodfokú egyenletet kapsz.

Figyelj arra, hogy ne ossz nullával, ne szorozz nullával, és hogy a másodfokú egyenletnek lehet 0, 1, 2 (valós) megoldása. Szerintem jó sok külön eseted lesz.

Ha matematikailag megvan a levezetés, akkor elkezdhetsz azon gondolkozni, hogy lebegőpontos ábrázolással milyen sorrendben számolj, hogy a 0-kat "jól" zárd ki, és egyáltalán, meg tudd becsülni és minimalizálni tudd a hibát. (Ne felejtsük el, hogy lebegőpontos ábrázolásnál általában véve nem érvényes az az asszociativitás és disztributivitás, amit a matematikában az alapműveleteknél "megszoktunk".)

A lebegőpontos aritmetikát numerikus analízisben alkalmazott közelítésekre találták ki. Ezért épeszű C programozó addig nem nyúl a lebegőpontos típusokhoz és függvényekhez, amíg nem abszolút elkerülhetetlen.

http://hal.archives-ouvertes.fr/hal-00128124
http://www.lahey.com/float.htm
http://docs.sun.com/source/806-3568/ncg_goldberg.html
http://en.wikipedia.org/wiki/Floating_point