Thema: Delphi Lineare Interpolation

Einzelnen Beitrag anzeigen

Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#10

Re: Lineare Interpolation

  Alt 20. Jul 2005, 12: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
  Mit Zitat antworten Zitat