2017-02-22 1 views
-3

Ich muss Punkte mit PHP interpolieren, kennen Sie irgendeine Bibliothek dafür? Eine traditionelle Suche erlaubte mir nicht, so gute Ergebnisse zu finden.Lineare Interpolationsbibliothek mit PHP

Ich habe eine Tabelle mit Werten in Spalten x und y.

X   Y 
10  676 
20  894 
30  1100 
40  1200 
50  1000 

Ich frage mich, ob es eine Funktion gibt, die mit linearer Interpolation helfen kann. Zum Beispiel möchte ich den interpolierten Wert von Y, der X = 35 entspricht.

Dank

+0

* Fragen Sie uns fragen, sind zu empfehlen oder ein Buch, Werkzeug, Software-Bibliothek, Tutorial oder andere Off-Site-Ressource zu finden Wegthema * –

+0

Wahrscheinlich müssen Sie dies selbst implementieren oder zu einer Sprache wechseln, die über Bibliotheken verfügt, die dies tun. – apokryfos

Antwort

3

Das ist einfache Mathematik - keine Notwendigkeit, überhaupt eine Bibliothek zu verwenden.

Wenn Sie den Y Wert von X wollen, Sie haben müssen, um den größten Wert kleiner als X (x0) und der niedrigste Wert, der größer als X (x0) zu finden. Wenn diese beiden Werte gleich sind, müssen Sie nichts tun und geben nur den Wert Y in Ihrer Tabelle zurück.

Andernfalls nehmen Sie die zwei entsprechenden Y Werte (y0 und y1) und eine Interpolation mit ihnen.

d = (x - x0)/(x1 - x0) // value in the range of [0; 1] 
y = y0 * (1 - d) + y1 * d // your interpolated value 

in Ihrem Fall von x = 35 =>x0 = 30, x1 = 40

d = (35 - 30)/(40 - 30) // 0.5 
y = 1100 * (1 - 0.5) + 1200 * 0.5 // 1150