Ein Freund von mir entdeckte ein seltsames Verhalten in gnuplot in Bezug auf eine einfache polynomische Anpassung Kann jemand das erklären? HierGnuplot verhält sich in polynomischer Anpassung merkwürdig. Warum das?
ist die Datei:
#!/usr/bin/gnuplot -p
f(x) = B*(x**4) + A
fit f(x) "data.txt" using ($1+273.14):2 via A, B
plot "data.txt" using ($1+273.14):2 notitle,\
f(x) notitle
Die Daten sind:
# content of data.txt
350 3.856
330 3.242
290 2.391
250 1.713
210 1.181
170 0.763
130 0.437
Das resultierende Diagramm ist die grüne Linie. Die blaue Linie zeigt eine weitaus bessere Übereinstimmung mit einer anderen Funktion von im Wesentlichen der gleichen Form. A Für die grüne Linie durch einen konstanten Wert ersetzt wurde (A = 0,2123, die über * B 300^4)
So ist die grüne Linie eindeutig nicht die beste Lösung hier seit f(x) = B*(x**4) - 0.2123
weit betterresults ergibt und hat auch die Form B * x 4 + A. In der grünen Anpassung wird der Parameter ** A einfach von gnuplot ignoriert und bleibt durch den Anpassungsalgorithmus unverändert. Die Einstellung verschiedener Anfangswerte für A und B scheint nicht viel zu helfen - der Wert von A ändert sich nie für seinen Anfangswert. Mein Freund und ich verwenden die Standard-Gnuplot-Version, die mit Ubuntu geliefert wird: gnuplot 4.4 Patchlevel 3.
Tanks viel. Als Physiker kenne ich die Anpassung im Allgemeinen sehr gut. Ich dachte nicht, Gnuplot wäre so schlimm. Es gibt eine geschlossene mathematische Theorie für polynomische Fits und ihre Konvergenz, die ideale Ergebnisse liefern würde.Gnuplot sollte keine Probleme mit einem einfachen Polynom haben, aber ich verstehe, dass die Kleinste-Quadrate-Anpassung mit einer schwachen Grenze für den Fehler die Ursache meines Problems sein sollte. Danke noch einmal. –
@ con-f-use Ja, du könntest besser mit polynomischen Passungen umgehen, aber die Anpassungsroutine in gnuplot ist dazu gedacht, alles zu handhaben, also denke ich (zur Vereinfachung), dass sie nicht versuchen, herauszufinden, ob du ein passendes bist Polynom anstelle einiger nichtlinearer Funktionen. – mgilson
Ja, nur zu sagen, vielleicht sollten sie ;-) –