TechBlog cikkei
Exponenciális interpolálás 3 ponton
Unknown magic content: 'mathml'
Egy zenei fórumon a következő problémába futottam: valaki exponenciálisan szeretne paramétereket skálázni. Ez azt jelenti, hogy van egy $[x_\min, x_\max]$ intervallum, amit exponenciálisan le szeretne képezni egy $[y_\min, y_\max]$ intervallumra. A feltétel, amit előírt, hogy van egy bizonyos $x_\mathrm{avg}$ szám, aminek a képe az $y_\mathrm{avg}$ számnak kell, hogy legyen (az eddig megadott hat valós szám tehát előre ismert paraméter).
Ebből kéne kitalálni, hogy melyik az az $y = a \mathrm{exp}\left(bx\right) + c$ alakú függvény, ami az egyik intervallumot a másikra képezi.
Elsőre látszik, hogy itt a kulcs a $b$ paraméter meghatározása lesz. Ha ugyanis $b$ ismert, akkor $a$ és $c$ meghatározása visszavezetődik egy lineáris egyenletrendszer megoldására, a következő módon:
A probléma tehát tényleg a $b$ paraméter megadásán múlik.
Ha az ember kellően sokat ügyeskedik, akkor a fenti kifejezések visszahelyettesítésével végül a következő egyenletig jut el:
ahol $\alpha = \frac{x_\mathrm{avg}}{x_\min}$ , $\beta = \frac{x_\max}{x_\min}$ és $\gamma = \mathrm{exp}\left(bx^\min\right)$. Vagyis, ha sikerülne a fenti egyenletből $\gamma$-t meghatározni, akkor kész is vagyunk.
És ez az a pont, ahol elakadtam...
UPi 2012.VIII.27 21:38
Van MathML! Az első két képletet átírtam, a többit meghagyom házi feladatnak :P
SAdam 2012.VIII.28 18:01
SAdam 2012.VIII.28 18:03
(Válaszképp erre)
... ami persze azért tűnik ellentmondásosnak, mert ha veszek egy tetszőleges exponenciális függvényt, és három különböző x-hez generálok három y értéket, akkor azoknak értelemszerűen megoldást kellene, hogy adjanak. Szóval valamit elszámoltam, úgy tűnik.
Descant 2012.IX.05 11:18
Nem megy nekem a mathml. Nem Sadam a kulcs igazából a c paraméter, téged a b érdekel de a kettő egymást fejezi ki. Én arra jutottam, egy kis legkisebb négyzetek és két közelítős megoldás után, hogy
ln((ymin-c)/(yavg-c))/(x1-x2)=ln((yavg-c)/(ymax-c))/(xavg-xmax)=ln((ymax-c)/(ymin-c))/(xmax-xmin) egyenletet kell megoldani numerikusan a (-inf,ymin) tartományon
amit meg is lehet csinálni ha ymin-től indulsz el negatív irányban mert a metszetig monoton.
Nekem is van egy kérdésem tudod, hogy exponenciális lefolyású folyamatoknál miért szokás jó sokáig mérni?
Ettől a szartól nem tudtam aludni.
SAdam 2012.IX.05 12:04
(Válaszképp erre)
Átírtam LaTeX-be a fenti képletet, hogy a későbbiekben egyszerű legyen az élet (copy+paste+latex futtatás):
Ami azt illeti, az α=x<sub>min</sub>–x<sub>avg</sub>, β=x<sub>avg</sub>–x<sub>max</sub> és γ=x<sub>max</sub>–x<sub>min</sub> kifejezések (amiket ismerünk, mert az x-ek ismertek) bevezetésével ez könnyen nullára rendezhető:
Vagy LaTeX-esen:
A baj csak az, hogy ezt még mindig nem tudom analitikusan megoldani. Az eredeti problémafelvetés arról szólt, hogy kéne egy olyan megoldás, amit utána le tudok programozni C-ben, lehetőleg úgy, hogy ne menjen rá egy hetem arra, hogy a megoldást magát leprogramozzam. Vagyis egy egyszerű formulát keresek, amit csak begépelek egy programsorba, és kidobja a paramétereket. Abban reménykedem, hogy mivel van egy egyenletem és egy ismeretlenem (jelen esetben ez a c változó), csak akad valami analitikus megoldás. Még csak integrálok meg deriválások sincsenek benne...
SAdam 2012.IX.05 12:19
(Válaszképp erre)
Hm... most látom, hogy a nullára rendezést elszúrtam. Mármint ott, hogy ha a törtek számlálója és nevezője egyszerre negatív, akkor az eredeti, törtes felírás működik, viszont a kivonásoknál abszolút-értéket kell venni. Szóval a fenti képletben a logaritmusok argumentumai mind abszolút-értékben szerepelnek, valamint a programozásnál oda kell figyelni arra, hogy vagy mind pozitívak, vagy mind negatívak legyenek az abszolútértékek argumentumai.
Descant 2012.IX.05 12:09
Sadam egy ilyet leprogramozni nem egy hét. Szerintem még viszonylag gyorsan bekonvergálna, akár azzal a deriváltja hol metszi a 0 tengely módszerrel. Nem hiszem, hogy van rá analitikus megoldás.
Wigy 2012.IX.05 16:05
Nekem van egy levezetésem, amiben eljutottam idáig:
$a_1*x^{b_1}+a_3*x^{b_2}+a_3*x^{b_3}=0$
Ennek a megoldásán sokat segítene, ha kiköthetjük, hogy $b_2$ számtani átlaga $b_1$-nek és $b_3$-nak
Descant 2012.IX.05 16:51
(Válaszképp erre)
Mi a1;a3? A második tagban az nem a2 akart lenni? Mi b1, b2 és b3? Mi az x eddig csak indexes x-ek voltak