Sie haben die Verformung eines Balkens unter Einwirkung einer Last
gemessen.
Dabei wurden in mehreren Messserien insgesamt verschiedene Lasten
aufgebracht, und die zugehörigen Verformungen
gemessen.
Nun wollen Sie als Näherung an die unbekannte Funktion zwischen den gemessenen Werten abschnittsweise linear interpolieren, d.h. für einen gegebenen Lastwert
sollen die beiden nächstgelegenen gemessenen Lastwerte
und
bestimmt werden, so dass
ist.
Dann soll zwischen den Punkten und
linear interpoliert werden auf den gesuchten Wert
.
Geben Sie an, wie Sie die Aufgabe lösen wollen. Dabei soll berücksichtigt werden, dass Sie die Interpolationsaufgabe -mal mit
lösen wollen!
Lösung
Dateneingabe in Form von:
- Liste, Array, Hashtable
- AVL-Baum
Seien dies die Ermittelten Messwerte u in Abhängigkeit von P:
Um nun linear interpolieren zu können, benötigt man die Steigung der Geraden zwischen den Punkten und
und kann daraus eine Funktion für
aufstellen:
Bestimmen der beiden nächstgelegenen gemessenen Lastwerte:
Dies könnte man in einer Liste mit folgender Schleife realisieren: (Pseudocode)
for k = 1 to m for j = 1 to n If P(j) <= P u(P)= u(j)+(u(j+1)-u(j))/(P(j+1)-P(j))*(P-P(j)) break next j next k
Andere Variante: Baum
Knoten = Root Suche(Knoten) if Knoten.value > P Suche(Knoten.Left) if P(j) == null OR Knoten.left.value < P And Knoten.left.value > P(j) then P(j) = Knoten.left.value else Suche(Knoten.Right)