Ich habe einige Daten des FormularsWie findet man die quadratische Obergrenze des kleinsten quadratischen Fehlers?
x1[i], x2[i], x3[i], z[i]
,
wo z[i]
eine unbekannte deterministische Funktion von x1[i], x2[i], and x3[i]
ist. Ich würde gerne eine quadratische Funktion u(x1, x2, x3)= a11*x1^2 + a22*x2^2 + a33*x3^2 + a12*x1*x2 + ... + a0
finden, die die Daten überbrückt, d. H. u(x1[i], x2[i], x3[i]) >= z[i]
für alle i
, und das minimiert die Summe der quadrierten Fehler, die den Beschränkungen unterliegen.
Gibt es einen rechnerisch effizienten Lösungsansatz in Python oder Matlab?
Können Sie zeigen, dass dieser Ansatz die Summe der Fehler im Quadrat mit den Einschränkungen minimiert? – Arpi
Hallo Andrey, Danke für die Antwort, aber dieser Ansatz funktioniert nicht. Die folgende IPython-Sitzung demonstriert ein einfaches Gegenbeispiel: In [1]: x = Array ([0, 1, 2, 3, 4]) In [2]: y = Array ([0, 0, 1 , 0, 0]) In [3]: polyval (polyfit (x, y, 2), x) Out [3]: Array ([- 0,08571429, 0,34285714, 0,48571429, 0,34285714, -0,08571429]) Der Mittelpunkt ist derjenige, der die größte Korrektur erfordert (1-0,4857 = 0,5143). Wenn wir die gesamte Kurve um diesen Betrag verschieben, liegt die quadratische Kurve weit über den Endpunkten. –