Haliho,
a kovetkezo" egyenletrendszert kene megoldani (x es y ismeretlenek, tobbi adott valos sza'm):
4A = A_00 + A_10*x + A_01*y + A_11*x*y
4B = B_00 + B_10*x + B_01*y + B_11*x*y
tobbszor mar felmerult a problema, de valahogy mindig sikerult kikerulni, most mar nem nagyon akarom :]
Szoval erre kene vmi jo megoldas. A gond az, hogy lehet hogy a megoldas nem is egyedi, merthogy ez egy kvadratikus egyenletrendszer. Tovabbi egyszerusites lehet talan, hogy csak a [-1,1]x[-1,1] intervallumokban levo megoldas erdekel, ha van megoldas, de ezen kivul esik, akkor az nem erdekel.
Gyk az alapproblema marha egyszeru", adott egy f:R^2->R^2 fv, de csak egy szabalyos racson, a racspontok koze (bi)linearisan lehet interpolalni, es ezt az f fv-t kene invertalni.
Otlet?
Koszi, A.
- 2243 megtekintés
Hozzászólások
Hi!
Ha nem programba kell, akkor talan a Matlab megoldja. Bar ahogy latom, nem ez a helyzet.
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
Nem, sajnos C kodba kene, elegge masszivan (igy is elegge lassan fut le, most fel lesz ezzel vhogy tuningolva, nem az igazi...:/).
Vmi geometriai megoldasa is lehet a dolognak, elvegre a ket egyenlet egy-egy kupszeletet (azonbelulis hiperbolat) ir le, kerdes, hogy ezek hol metszik egymast. Akar 4 metszespont is lehet...
- A hozzászóláshoz be kell jelentkezni
Szamolj vegig egy altalanos esetet kezzel!
4A = A_00 + A_10*x + A_01*y + A_11*x*y
4B = B_00 + B_10*x + B_01*y + B_11*x*y
Szorozzuk vegig ugy, hogy az xy-os tag kiessen, ha kivonjuk egymasbol.
Marad valami C_1=C_2*x+C_3*y alaku, ami visszahelyettesitheto az egyikbe, marad egy masodfoku egyenlet, amit megoldasz a keplettel.
Amikor utana lekodolod, nyilvan le kell kezelni, ha valami 0 (0-val osztas), ha valami kiesne, es emiatt nem oszthatsz le vele, ha A_11 es B_11 is 0, stb.. de ez mar annyit nem bonyolit a dolgon. A kezi parameteres megoldas alapjan nem tunik lehetetlennek lekodolni.
----
-FLOSSzine: Ha 48 óráig Theo lehetnél, mire fordítanád a rendelkezésedre álló időt?
-Nagy Róbert: Úgy viselkednék Theo-val ahogy ő szokott, csak hogy átérezze :)
honlapkészítés
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Igen, lebegőpontos műveleteknél figyelni kell a pontosság(haha) adta hibákra. Meg egyenlőségvizsgálatnál az epszilon eltérést is bele kéne venni. Sok, emiatt megbukott numerikus matematika házit láttam már :)
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Koszi, vegul egy ehhez tok hasonlo valamit csinaltam; csak annak a 90%-a esetszetvalasztas lett. A gond az, hogy a bemeneti adathalmaz elegge nagymennyiesegu es "valtozatos", szemleletesen nehezen tudom elkepzelni hogy milyen, igy muszaj volt minden esetre felkeszulni es/vagy a szamitasok meggyorsitasa vegett az interpolacio szempontjabol trivialis eseteket gyorsan kizarni..
A.
- A hozzászóláshoz be kell jelentkezni