Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
Delphi 12 Athens
|
Re: Lineare Interpolation
20. Jul 2005, 13:55
Moin, zusammen,
wie gesagt die Graphic mit Canvas zeichnen, das mögen mal andere machen. Jetzt bezeiehe ich mich mal banal
auf die Überschrift: lineare Interpolation! Gleich heisst es: Nein fürchterlich - so einfach?!!!!
Was haben wir zwei Zeitpunkte Y1 und Y2. Dann haben wir zwei Hertzzahleb X1 und X2 plus Linearität: Mehr nicht!
Linear ist eine Gerade und wir haben auf dieser jihuu zwei Punkte. Also: b + a*x = y
( "·" sind Tabulatorpunkte zum Einrücken)
I:
1. Gleichung: b + Hertz(1) * a = Zeitpunkt(1)
2. Gleichung: b + Hertz(2) * a = Zeitpunkt(2)
---------------------------------------------
2-1: ( Hertz(2)-Hertz(1) ) * a = Zeitpunkt(2) - Zeitpunkt(1)
II:
Daraus basteln wir uns nun die Geradensteigung a (oft wird die auch gerne m genannt)
····· Zeitpunkt(2)-Zeitpunkt(1)
a = -----------------------------
····· Hertz(2) - Hertz(1)
III:
Fein das gefundene a stezen wir mal in Gleichung 2 ein
···················· Zeitpunkt(2)-Zeitpunkt(1)
b + Hertz(2) * ----------------------------- = Zeitpunkt(2)
···················· Hertz(2) - Hertz(1)
und lösen das nach b auf
································· Zeitpunkt(2)-Zeitpunkt(1)
b = Zeitpunkt(2) - Hertz(2) * -----------------------------
······························· Hertz(2) - Hertz(1)
IV:
Da uns nun a und b bekannt sind stellen wir die allgemeine Funktionsgleichung auf:
·y ·········= ································b················· ······· +········· a* x ············
················································ Zeitpunkt(2)-Zeitpunkt(1)··· · Zeitpunkt(2)-Zeitpunkt(1)
Zeitpunkt(y) = Zeitpunkt(2) - Hertz(2) * -------------------------- + ----------------------- * Hertz(x)
·············································· Hertz(2) - Hertz(1) ···········Hertz(2) - Hertz(1)
etwas umstellen
·y ·········= ································a*x··············· ········· +········· b ············
········································Zeitpunkt( 2)-Zeitpunkt(1)····· Hertz(2)*Zeitpunkt(1)- Hertz(1) * Zeitpunkt(2)
Zeitpunkt(y) =··Hertz(x) * ----------------------------··+ -------------------------------------------------
·······································Hertz(2) - Hertz(1)························ Hertz(2) - Hertz(1) ·············
V:
Man kann das natürlich auch nach der Hertzzahl umstellen (die Zwischenritte nich mit dieser Eingabeform..)
··································Hertz(1) - Hertz(2)··
Hertz(x) =·(··Hertz(2) * ----------------------------- * ( Zeitpunkt(2) - Zeitpunkt(x) )
·······························Zeitpunkt(1)-Zeitpunkt(2)
Also das ist das ganze linear. Das umsetzen in Pascal dürfte wohl kaum das Problem sein. Wenn es dann
doch nicht mehr linear sein soll, sagt mal bescheid.
PS: Liebe Admins: könnte man in die Eingabe Tabulatorsprünge einbauen?
Martin Schaefer
|