Gorbe illesztes adatsorra

Fórumok

Sziasztok,

szeretnek a matekhoz nalam tobb venaval rendelkezo emberektol segitseget kerni. Van egy modell, amit szeretnek adatsorra illeszteni:

ln(a0/a)+c(a0-a)=bct

"a" a fuggo valtozo (mert koncentracio), t a fuggetlen (ido), a0 a kezdeti koncentracio, b es c pedig a parameterek, amiket keresek. A kerdesem, hogy az illesztest hogyan lehet megoldani? a-ra nem tudom rendezni az egyenletet, vagyis megoldasnak mar javasoltak Lambert W fuggvenyt par kozbulso lepes utan, de nem hiszem, hogy ennel egyszerubb megoldas nincs.

Bocs az offtopikert, de fontos (es nem utolso sorban surgos) lenne a ket parameter meghatarozasa es az eddigi probalkozasaim kudarcba fulladtak.

Koszonom

Dani

Hozzászólások

Szia,

koszi a valaszt, a leirast atneztem. Nem magaval az illesztessel van gondom, arra gnuplotot szoktam hasznalni, hanem azzal, hogy a konkret egyenletet hogy lehet illeszteni az adatsorra ugy, hogy nem lehet egyszeru eszkozokkel a fuggo valtozora rendezni. Most azzal probalkozok, hogy egyszeruen leosztok b*c-vel. Igy ertelmesnek tuno parametereket kapok, es az invertalt gorbe is jol illeszkeik, de nem tudom mennyire helyes amit csinalok.

--
[citation needed]

illesztésnél ugye van egy modelled, f(x)=y, meg mérési adatok xi,yi, és kíváncsi vagy f-re úgy hogy minimális legyen pl. a sum(f(xi)-yi)^2 összeg

esetedben mi az f, x, y ?
csak tippelni tudom hogy f-ben a keresett paraméterek a "b" és "c", illetve az x az "a", "a0" egy konstans, az y a "t"

igen, _formailag_, tehát szintaktikailag, jónak tűnik a bc-vel osztás, de attól még hogy a gcc lefordítja a programod syntax error nélkül nem biztos hogy az eredmény a kívánt shakespeare komédia lesz... picit fura az hogy az időt szeretnéd jól közelíteni, de mivel illesztésről van szó, mondjuk arra vagy kíváncsi mikor kell abbahagyni a tojásfőzést akár jó is lehet

Nem, az "a" a függő változó, azaz az "y", a "t" pedig a független, azaz az "x", legalábbis a nyitó szerint. Egyébként szerintem ha másképp nem megy, akkor lehet például "brute force" módszerrel:

A keresett "b" és "c" paraméterekre nyilván a problémából adódóan vannak valamilyen értelmes határok. Ezen tartományokon belül generálunk egy (b,c) rácsot valamilyen felbontásokkal. A rácspontokban az ott érvényes (b,c) értékekkel minden t-re kiszámoljuk a keresett függvénnyel az f(t)-t, majd képezzük a chi2 összeget, azaz chi2(b,c) = sum_i [(y(ti) - f(ti))^2 / f(ti)]. Ha ez megvan, már csak azt a (b,c) párt kell kiválasztani, melyre a chi2 a legkisebb.

A futásidő természetesen függ a mérési pontok számától és a (b,c) rács finomságától, de nem hiszem, hogy egy mai asztali gépen túl sokáig tartana ...

alapvetően az x és y szerepe felcserélhető, nem kell feltétlen invertálni, legalábbis ilyen görbénél, mert mindegy hogy a mérés vagy a kiindulóállapot volt pontatlan,
ami lényeges változás csak a büntető (tehát általában a négyzetes eltérés) tag befolyásolása, pl igyekszik a lankásabb helyeken pontosabb lenni az illesztés, de amit megcéloz az ugyanaz (tehát ha nincs mérési hiba iterációval (is) ugyanoda jut)

ha "pontosan" (ezt nehéz definiálni a négyzetes eltérés általánosan jó, lehet épp egy ilyen torzítás kell neked:) ) kell persze marad az invertálás : http://www.wolframalpha.com/input/?i=log%28a%2Fy%29%2Bc*%28a-y%29-b*c*x… ennek az alján ott az a lambert W

Az mennyire jarhato ut, hogy invertalom? Az igy kapott parametereket fel lehet hasznalni valahogy?

--
[citation needed]

Legkisebb négyzetek módszere (wikipédián jó leírás van róla, magyarul is), és iterációval, nem megololdás? Lassú, de mindíg működik. Én írtam egy ilyet gauss függvény illesztésére, mert Gauss-függvényt, nem lehet illeszteni, csak így, nincs rá fix képlet, mint egyenesre, és 2. fokú polinomra.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.