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
- 2188 megtekintés
Hozzászólások
senki?
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
azt hiszem, a GNU R nls() függvénye tud ilyet.
ha nem szoktál R-t használni, ez a leírás akkor is egyértelmű:
http://physiology.med.cornell.edu/people/banfelder/qbio/resources_2009/…
vagy írd be az R-be: help(nls)
- A hozzászóláshoz be kell jelentkezni
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]
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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 ...
- A hozzászóláshoz be kell jelentkezni
Kb. 60 meresi pontom van. Nagyjabol ertem mit irsz, de egyelore azt szeretnem megtudni, hogy az invertalassal kapott parameterek ertelmesek lehetnek-e. Pillanatnyilag tul idoigenyes lenne szamomra kiprobalni azt, amit javasoltal.
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
nagyjából ilyen algoritmussal illeszt minden program, nem?
- A hozzászóláshoz be kell jelentkezni
Maskepp felirva:
ln(y0/y)+c(y0-y)=bcx
Ja, nekem is vannak averzioim a dologgal. A gorbe alakja nem valtozik ugymond, de egyaltalan nem vagyok biztos a dolog helyessegeben.
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Az mennyire jarhato ut, hogy invertalom? Az igy kapott parametereket fel lehet hasznalni valahogy?
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni