polyfit
R2026bPolynomiale Kurvenanpassung
Syntax
Beschreibung
[ bietet die Option zur Normalisierung, sofern passend. Wenn Sie coeffs,fitStats,centerScale] = polyfit(x,y,n,Normalize=tf)Normalize auf true festlegen, zentriert polyfit x bei 0 und skaliert den Wert so, dass er der Transformation entsprechend eine Standardabweichung von 1 aufweist. In diesem Fall gibt polyfit zudem die Ausgabe centerScale als Vektor mit zwei Elementen zurück, der die Mittel- und Skalierungswerte mean(x) und std(x) enthält. Wenn Sie Normalize auf false festlegen, wandelt polyfit x und centerScale nicht in einen Vektor mit zwei Elementen um, der 0 und 1 enthält. (seit R2026b)
Vor R2026b: Die Normalisierung wird implizit durch die Anzahl der Ausgabeargumente gesteuert. Durch Zurückgabe eines dritten Ausgabearguments wird die Normalisierung automatisch aktiviert. Weitere Informationen dazu finden Sie unter Versionsverlauf.
Beispiele
Eingabeargumente
Ausgabeargumente
Einschränkungen
Bei Problemen mit vielen Punkten führt die Erhöhung des Grades der polynomialen Anpassung mithilfe von
polyfitnicht immer zu einer besseren Anpassung. Polynome hoher Ordnung können zwischen den Datenpunkten oszillieren und zu einer schlechteren Anpassung an die Daten führen. In diesen Fällen können Sie abhängig vom Problem eine polynomiale Anpassung niedriger Ordnung (die in der Regel zwischen den Punkten glatter ist) oder eine andere Technik verwenden.Polynome sind naturgemäß unbeschränkte, oszillatorische Funktionen. Daher sind sie nicht besonders gut für die Extrapolation begrenzter oder monotoner (einheitlich ansteigend oder einheitlich abfallend) Daten geeignet.
Algorithmen
polyfit verwendet x, um eine Vandermonde-Matrix V mit n+1 Spalten und m = length(x) Zeilen zu bilden, die das folgende lineare System ergibt
das polyfit mit coeffs = V\y löst. Da die Spalten in der Vandermonde-Matrix Potenzen des Vektors x sind, ist die Konditionszahl von V für Anpassungen hoher Ordnung oft groß, sodass sich eine singuläre Koeffizientenmatrix ergibt. In diesen Fällen können die numerischen Eigenschaften des Systems durch Angabe von Normalize=true verbessert werden, sodass die Anpassung zuverlässiger wird.





