Digamos que tengo mediciones de una función , muestreada en con algo de ruido, que podría ser aproximada por una expansión de la serie Taylor. ¿Existe una forma aceptada de estimar los coeficientes para esa expansión a partir de mis mediciones?
Podría ajustar los datos a un polinomio, pero eso no es del todo correcto, porque para una serie de Taylor la aproximación debería mejorar cuanto más cerca esté de un punto central, digamos x = 0. Simplemente ajustar un polinomio trata todos los puntos por igual.
También podría estimar los diversos órdenes de derivados en mi punto de expansión, pero luego necesito tomar decisiones sobre qué filtros diferenciadores usar y cuántos coeficientes de filtro para cada uno. ¿Los filtros para las diferentes derivadas tendrían que encajar de alguna manera?
Entonces, ¿alguien sabe de los métodos establecidos para esto? Se agradecerán las explicaciones o referencias a los documentos.
ACLARACIÓN
En respuesta al comentario a continuación, mi muestreo es una ventana rectangular de una función infinita, que no está necesariamente limitada por banda pero no tiene componentes fuertes de alta frecuencia. Para ser más específico, estoy midiendo la varianza de un estimador (midiendo el desplazamiento en una señal de ultrasonido médico) en función de un parámetro del estimador (el nivel de deformación o tensión del tejido subyacente). Tengo una serie teórica de Taylor para la varianza en función de la deformación, y me gustaría compararla con lo que obtengo de la simulación.
Un ejemplo de juguete similar podría ser: digamos que tiene una función como ln (x), muestreada a intervalos en x con algo de ruido agregado. No sabe qué función es realmente y desea estimar su serie de Taylor alrededor de x = 5. Entonces, la función es suave y varía lentamente para una región alrededor del punto que le interesa (por ejemplo, 2 <x <8), pero no es necesariamente agradable fuera de la región.
Las respuestas han sido útiles, y algún tipo de ajuste polinomial de mínimos cuadrados es probablemente la ruta a seguir. Sin embargo, lo que haría que una serie de Taylor estimada fuera diferente de un ajuste polinómico normal es que debería poder eliminar los términos de orden superior y hacer que el polinomio aún se aproxime a la función original, solo dentro de un rango menor sobre su punto inicial.
Entonces, tal vez el enfoque sería hacer un ajuste polinómico lineal usando solo datos cercanos al punto inicial, seguido de un ajuste cuadrático con un poco más de datos, cúbico usando un poco más que eso, etc.
Respuestas:
En lugar de un ajuste polinómico exacto, puede usar un ajuste de mínimos cuadrados , que encontrará el polinomio de orden especificado que minimiza el error cuadrado total entre el ajuste y los pares medidos . Esto puede ayudar a mitigar los efectos del ruido en el ajuste.(xi,yi)
Dadas las medidas de una función y = f ( x ) en los valores de dominio x i ( i = 0 , 1 , … , N ), elija un orden polinomial M ≤ N (si M = N , entonces está en el punto exacto ajuste polinómico, ya que los puntos N determinan de forma única un polinomio de orden M ). Luego, configure un sistema de ecuaciones que sean lineales en los coeficientes polinómicos deseados p k :yi y=f(x) xi i=0,1,…,N M≤N M=N N M pk
El problema de los mínimos cuadrados se puede resolver organizando las medidas en forma de matriz-vector:
La solución de mínimos cuadrados genera el vector de coeficientes polinómicos que minimiza el error cuadrado total en el sistema lineal anterior. La solución se puede calcular como:[pM,pM−1,…,p0]
Vale la pena señalar que la matriz también se conoce como la pseudoinverse de la matriz A . Luego puede usar el vector de coeficiente polinomial de mínimos cuadrados ˜ p para evaluar el polinomio en cualquier otro valor de x que desee.(ATA)−1AT A p~ x
fuente
Ignora el ruido por ahora.
Dados puntos ( x i , y i ) donde x i son números distintos, puede, como usted dice, ajustar un polinomio f ( x ) de grado como máximo n a través de estos puntos. La interpolación de Lagrange, por ejemplo, es un método estándar para esto. Pero, se cree que los puntos están realmente en una curva y = g ( x ) donde g ( x ) no es necesariamente un polinomio (por ejemplo, podría ser e x o (n+1 (xi,yi) xi f(x) n y=g(x) g(x) ex (x+a)/(x+b) g(x) g(x) x=0 g(0)
g(k)(x)=dkg(x)dxk,k=1,2,… x=0 g(x) n+1 xi xi=0 i g(0)
g(k)(0) k=1,2,…
Estimating the value of the derivatives of a functiong(x) at x=0 from its
values g(xi) at selected points is a well-studied problem in
numerical analysis, and the formulas to be used are readily available.
What is not described in detail, or more commonly, not mentioned at all
in the vicinity of these formulas, is that these formulas are obtained
by fitting a polynomial h(x)=∑khkxk to the known points and estimating
g(k)(0) as h(k)(0)=k!hk . Put another way,
So, what does fitting a polynomial mean? The standard fit is Lagrange interpolation which works well when there is no noise, the pointsxi
are evenly spaced, and 0 is the median value of the xi . If noise
is present, a least-squares fit of a polynomial of degree m<n
(see the answer by JasonR
for details) is often better, and if we want to
emphasize accuracy in the vicinity of x=0 , a weighted least-squares
fit can be used. Weighting the error terms from points in
the vicinity of 0 more than error terms from far away forces the
minimization algorithm to produce an even better fit near 0
at the expense of poorer accuracy far away from 0 .
Of course, one also has to defend the choice of weighting function against
naysayers who prefer a different weighting (or no weighting).
Example: Given3 points (−1,y−1),(0,y0),(1,y1) , the Lagrange
interpolation formula gives
fuente