Un amigo mío descubrió un comportamiento extraño en gnuplot con respecto a un simple ajuste polinómico. ¿Puede explicar esto?Gnuplot se comporta de forma extraña en un ajuste polinómico. ¿Porqué es eso?
Aquí está el archivo:
#!/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
Los datos son:
# 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
El gráfico resultante es la línea verde. La línea azul muestra un ajuste mucho mejor usando otra función de básicamente la misma forma. Para la línea verde A se sustituye por un valor constante (A = 0,2123, que es sobre B * 300^4)
Así la línea verde no es claramente el mejor ajuste aquí desde f(x) = B*(x**4) - 0.2123
produce betterresults FAR y también tiene la forma B * x 4 + A. En el ajuste verde, el parámetro ** A simplemente se ignora por gnuplot y el algoritmo de ajuste no lo modifica. Establecer diferentes valores iniciales para A y B no parece ayudar mucho; el valor de A nunca cambia para su valor inicial. Mi amigo y yo estamos usando la versión estándar de Gnuplot que viene con Ubuntu: gnuplot 4.4 patchlevel 3.
tanques mucho. Como físico, estoy bastante familiarizado con la adaptación en general. No pensé que gnuplot fuera tan malo. Existe una teoría matemática cerrada para los ajustes polinomiales y su convergencia que produciría resultados ideales.Gnuplot no debería tener problemas con un polinomio simple, pero entiendo que la adaptación de mínimos cuadrados con un límite débil en el error debería ser la causa de mi problema. Gracias de nuevo. –
@ con-f-use Sí, podría ser mejor con ajustes polinómicos, pero la rutina de ajuste en gnuplot está diseñada para manejar cualquier cosa, así que supongo que (por simplicidad) no intentan averiguar si está ajustando un polinomio en lugar de alguna función no lineal. – mgilson
Sí, simplemente diciendo que tal vez deberían ;-) –