Interpolación trigonométrica
En matemáticas, la interpolación trigonométrica es la interpolación con polinomios trigonométricos. La interpolación es el proceso de encontrar una función que pasa por algunos puntos de datos determinados. Para la interpolación trigonométrica, esta función tiene que ser un polinomio trigonométrico, es decir, una suma de senos y cosenos de períodos determinados. Esta forma es especialmente adecuada para la interpolación de funciones periódicas.
Un caso especial importante es cuando los puntos de datos dados están igualmente espaciados, en cuyo caso la solución viene dada por la transformada discreta de Fourier.
Formulación del problema de la interpolación
Un polinomio trigonométrico de grado K tiene la forma
p()x)=a0+. . k=1Kak# ()kx)+. . k=1Kbkpecado ()kx).{displaystyle p(x)=a_{0}+sum ¿Por qué? ¿Por qué? | ()1) |
Esta expresión contiene 2K + 1 coeficientes, a0, a1, … aK, b1, …, bK, y queremos calcular esos coeficientes para que la función pase por N puntos:
- p()xn)=Sí.n,n=0,... ... ,N− − 1.{displaystyle p(x_{n}=y_{n},quad n=0,ldotsN-1.
Dado que el polinomio trigonométrico es periódico con período 2π, los N puntos se pueden distribuir y ordenar en un período como
- <math alttext="{displaystyle 0leq x_{0}<x_{1}<x_{2}<ldots <x_{N-1}0≤ ≤ x0c)x1c)x2c)... ... c)xN− − 1c)2π π .{displaystyle 0leq x_{0}cantadox_{1}traducidos_{2} - No.<img alt="{displaystyle 0leq x_{0}<x_{1}<x_{2}<ldots <x_{N-1}
(tenga en cuenta que no en general requerimos que estos puntos estén igualmente espaciados). El problema de la interpolación ahora es encontrar coeficientes de tal manera que el polinomio trigonométrico p satisfaga el Condiciones de interpolación.
Formulación en el plano complejo
El problema se vuelve más natural si lo formulamos en el plano complejo. Podemos reescribir la fórmula para un polinomio trigonométrico como p()x)=. . k=− − KKckeikx,{displaystyle p(x)=sum ¿Qué?Donde i es la unidad imaginaria. Si nos fijamos z = eix, entonces esto se convierte
- q()z)=. . k=− − KKckzk,{displaystyle q(z)=sum ¿Qué?
con
- q()eix)≜ ≜ p()x).{displaystyle q(e^{ix})triangleq p(x).,}
Esto reduce el problema de la interpolación trigonométrica a la de la interpolación polinómica en el círculo de la unidad. La existencia y la singularidad para la interpolación trigonométrica ahora se deriva inmediatamente de los resultados correspondientes para la interpolación polinómica.
Para obtener más información sobre la formulación de polinomios de interpolación trigonométrica en el plano complejo, consulte la p. 156 de interpolación utilizando polinomios de Fourier.
Solución del problema
Bajo las condiciones anteriores, existe una solución al problema para cualquier conjunto dado de puntos de datos {xk, yk} siempre que N, el número de puntos de datos, no sea mayor que el número de coeficientes en el polinomio, es decir, N ≤ 2K+1 (una solución puede existir o no si N>2 K+1 dependiendo del conjunto particular de puntos de datos). Además, el polinomio de interpolación es único si y sólo si el número de coeficientes ajustables es igual al número de puntos de datos, es decir, N = 2K + 1. En el En el resto de este artículo, asumiremos que esta condición es cierta.
Número impar de puntos
Si el número de puntos N es extraño, dicen N=2K+1, aplicando la fórmula Lagrange para la interpolación polinomio a la formulación polinomio en el plano complejo produce que la solución se puede escribir en la forma
p()x)=. . k=02KSí.ktk()x),{displaystyle p(x)=sum ¿Qué? | ()5) |
donde
- tk()x)=e− − iKx+iKxk∏ ∏ m=0mل ل k2Keix− − eixmeixk− − eixm.{displaystyle t_{k}(x)=e^{-iKx+iKx_{k}prod _{begin{aligned}m ventaja=0[-4mu]m limitneq kend{aligned}{2K}{fracK}{fracK}{f}=0} {e^{ix}-e^{ix_{m}}}} {e^{ix_{m}}}}}}
El factor e− − iKx+iKxk{displaystyle E^{-iKx+iKx_{k} en esta fórmula compensa el hecho de que la formulación de plano complejo contiene también poderes negativos eix{displaystyle e^{ix} y por lo tanto no es una expresión polinomio eix{displaystyle e^{ix}. La corrección de esta expresión se puede verificar fácilmente observando que tk()xk)=1{displaystyle t_{k}(x_{k}=1} y eso tk()x){displaystyle t_{k}(x)} es una combinación lineal de los poderes correctos eix{displaystyle e^{ix}. Al utilizar la identidad
eiz1− − eiz2=2ipecado 12()z1− − z2)e()z1+z2)i/2,{displaystyle e^{iz_{1}-e^{iz_{2}=2isin {tfrac {1}{2}}(z_{1}-z_{2}),e^{(z_{1}+z_{2})i/2} | ()2) |
el coeficiente tk()x){displaystyle t_{k}(x)} puede ser escrito en la forma
tk()x)=∏ ∏ m=0mل ل k2Kpecado 12()x− − xm)pecado 12()xk− − xm).{displaystyle t_{k}(x)=prod _{begin{aligned}miéndose=0[-4mu]m limitadaneq kend{aligned} {2K}{frac {sin {tfrac {1}{2}} {m} {m} {m} {m} {m} {tfrac}}} {m}}}}}}}} {m} {m} {m}} {m} {c}}}}}}}}}} {ccccccH00}}}}}}}}}} {ccccccH00} {cH00} {cH00}} {cH00}} {cH00}}}}}}}}}}}}}}}}}}} {cH00}}}}}}}}}}}}}}}}}}}}}}}} {1} {2} {x_{k}-x_{m}}}} | ()4) |
Número par de puntos
Si el número de puntos N es par, digamos N=2K, al aplicar la fórmula de Lagrange para la interpolación polinomial a la formulación polinómica en el plano complejo se obtiene la solución se puede escribir en la forma
p()x)=. . k=02K− − 1Sí.ktk()x),{displaystyle p(x)=sum ¿Por qué? | ()6) |
dónde
tk()x)=e− − iKx+iKxkeix− − eiα α keixk− − eiα α k∏ ∏ m=0mل ل k2K− − 1eix− − eixmeixk− − eixm.{displaystyle t_{k}(x)=e^{-iKx+iKx_{k}{frac} {fnK}-e^{ialpha {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnK}}fncipen {aligned}miéndose=0[-4mu]m sensibleneq kend{aligned}} {2K-1}{frac}{fnK} {fnK} {e^{ix}-e^{ix_{m}}}} {e^{ix_{m}}}}}} | ()3) |
Aquí, las constantes α α k{displaystyle alpha _{k} puede ser elegido libremente. Esto es causado por el hecho de que la función interpoladora1) contiene un número extraño de constantes desconocidas. Una elección común es exigir que la frecuencia más alta es de la forma un tiempo constante # ()Kx){displaystyle cos(Kx)}, es decir, el pecado ()Kx){displaystyle sin(Kx)} término desaparece, pero en general la fase de la frecuencia más alta se puede elegir φ φ K{displaystyle varphi _{K}. Para obtener una expresión α α k{displaystyle alpha _{k}, obtenemos usando (2Eso...3) se puede escribir en la forma
- tk()x)=# 12()2Kx− − α α k+. . m=0,mل ل k2K− − 1xm)+. . m=− − ()K− − 1)K− − 1ckeimx2Npecado 12()xk− − α α k)∏ ∏ m=0,mل ل k2K− − 1pecado 12()xk− − xm).{displaystyle t_{k}(x)={frac {cos {fnMicroc {1}{2}{ Biggl (}2Kx-alpha ################################################################################################################################################################################################################################################################ sum limits _{m=0,,mneq k}{2K-1}x_{m}{ Biggr)}+sum limits _{m=-(K-1)}{K-1}c_{k}e^{imx}}{2^{N}sin {tfrac {1} {2}}(x_{k}-alpha _{k})displaystyle prod limits _{m=0,,mneq {fnMicrosoft Sans Serif}
Esto produce
- α α k=. . m=0mل ل k2K− − 1xm− − 2φ φ K{displaystyle alpha ¿Qué? {begin{aligned}miéndose=0[-4mu]m recurneq ¿Qué? ¿Qué?
y
- tk()x)=pecado 12()x− − α α k)pecado 12()xk− − α α k)∏ ∏ m=0mل ل k2K− − 1pecado 12()x− − xm)pecado 12()xk− − xm).{fnMicroc} {fnMicroc} {c} {c} {c} {c} {c} {c} {c} {c} {c} {c} {c}cc}ccc}}cccc}}ccccccccc}}}}}ccccccccccccccH00}}cccccH00}ccccccH00}}ccccccccccH00}cH00}}cccccH00ccH00}}cH00}}cH00}ccH00cccH00}ccccccc {1} {2} {x_{k}-x_{m}}}}
Tenga en cuenta que se debe tener cuidado para evitar las infinidades causadas por ceros en los denominadores.
Nodos equidistantes
Una mayor simplificación del problema es posible si nodos xm{displaystyle x_{m} son equidistas, es decir.
- xm=2π π mN,{displaystyle #
ver Zygmund para más detalles.
Número impar de puntos
Una mayor simplificación mediante el uso de (4) sería un enfoque obvio, pero obviamente está involucrado. Un enfoque mucho más simple es considerar el núcleo de Dirichlet.
- D()x,N)=1N+2N. . k=1()N− − 1)/2# ()kx)=pecado 12NxNpecado 12x,{displaystyle D(x,N)={frac {1}{N}+{frac} {2}{N}sum _{k=1}}{(N-1)/2}cos(kx)={frac {sin {tfrac} {1}{2}Nx}{Nsin {tfrac} {1}{2}x}}
Donde 0}" xmlns="http://www.w3.org/1998/Math/MathML">N■0{displaystyle N confiar0}0}" aria-hidden="true" class="mwe-math-fallback-image-inline mw-invert skin-invert" src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6b5e672f875388753faa233a18e9f2cf1275aaa4" style="vertical-align: -0.338ex; width:6.325ex; height:2.176ex;"/> Es extraño. Se puede ver fácilmente que D()x,N){displaystyle D(x,N)} es una combinación lineal de los poderes correctos eix{displaystyle e^{ix} y satisfizos
- D()xm,N)={}0 para mل ل 01 para m=0.{displaystyle D(x_{m},N)={begin{cases}0{text{ for }mneq 01{text{ for }m=0end{cases}}
Puesto que estas dos propiedades definen de forma única los coeficientes tk()x){displaystyle t_{k}(x)} en5), sigue que
- tk()x)=D()x− − xk,N)={}pecado 12N()x− − xk)Npecado 12()x− − xk) para xل ل xklimx→ → 0pecado 12NxNpecado 12x=1 para x=xk=sinc12N()x− − xk)sinc12()x− − xk).{displaystyle {begin{aligned}t_{k}(x) Conden=D(x-x_{k},N)={begin{cases}{dfrac {fnMicroc} {1}{2}N(x-x_{k})}{Nsin {tfrac {1}{2} {x-x_{k}}}}{text{ for }xneq x_{k}\[10mu]lim limits _{xto 0}{dfrac {pe {tfrac {s {tfrac}c}c}c}c}cc}ccccccc}ccc}ccccccccccccH00}ccccccccccH00ccccccH00ccH00ccccccccH00cccH00ccH00cccH00ccccH {1}{2}}Nx}{Nsin {tfrac {1}{2}x}=1{text{ for { for {f} {f} {f} {fn} {fn} {fn} {fn}} {f} {f}} {f}f}fnf} {f}f}}}}}}}}f}}}}}f}}}}f}f}f}f}f}}f}f}}}f}f}f}f}f}f}f}f}f}f}f}f}f}f}}f}f}f}}}f}f}f}f}f}f}f}f}f}f}f}}f}f}f}f}f}f}f}f}} }x=x_{k}end{cases}\ {fnMicrom {fnMicroc {1} {2}N(x-x_{k}}{mathrm {sinc} ,{tfrac {1}{2} {x-x_{k}}}}end{aligned}}}}}}}} {f}} {fnMicroc}
Aquí, la función sinc- evita cualquier singularidad y se define por
- sincx=pecado xx.{displaystyle mathrm {sinc} ,x={frac {sin x}{x}}}
Número par de puntos
Para N{displaystyle N} incluso, definimos el núcleo Dirichlet como
- D()x,N)=1N+1N# 12Nx+2N. . k=1()N− − 1)/2# ()kx)=pecado 12NxN# 12x.{displaystyle D(x,N)={frac {1}{N}+{frac} Nix+{frac} {2}{N}sum _{k=1}}{(N-1)/2}cos(kx)={frac {sin {tfrac} {1}{2}Nx}{Ntan {tfrac} {1}{2}x}}}
De nuevo, se puede ver fácilmente que D()x,N){displaystyle D(x,N)} es una combinación lineal de los poderes correctos eix{displaystyle e^{ix}, no contiene el término pecado 12Nx{displaystyle sin {tfrac {1}{2}Nx} y satisfizos
- D()xm,N)={}0 para mل ل 01 para m=0.{displaystyle D(x_{m},N)={begin{cases}0{text{ for }mneq 01{text{ for }m=0end{cases}}
Usando estas propiedades, sigue que los coeficientes tk()x){displaystyle t_{k}(x)} en6) se dan por
- tk()x)=D()x− − xk,N)={}pecado 12N()x− − xk)N# 12()x− − xk) para xل ل xklimx→ → 0pecado 12NxN# 12x=1 para x=xk.=sinc12N()x− − xk)sinc12()x− − xk)# 12()x− − xk){displaystyle {begin{aligned}t_{k}(x) Conden=D(x-x_{k},N)={begin{cases}{dfrac {fnMicroc} {1}{2}N(x-x_{k})}{Ntan {tfrac {1}{2} {x-x_{k}}}}{text{ for }xneq x_{k}\[10mu]lim limits _{xto 0}{dfrac {pe {tfrac} {tfrac}c} {1}{2}}Nx}{Ntan {tfrac {1}{2}x}=1{text{ for{ for { for {} {f} {f} {f} {f} {fn}} {fn}}} {f}}} {f} {f}fn}}}}}}}}}}}} {f}}f} {f} {f}f}f}f}f}f} {f}f}f}f} {f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}}f}fn }x=x_{k}end{cases} {fnK} {fnK}} {fnK}} {fn}} {fn}}} {tfrac {c} {c} {c} {c} {c} {c}} {c}}} {c}}}}f} {c}}}} {f}}}} {f}}}}} {f}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f} {f}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f}}}}} {f}}}}}}}}}} {f}}}}}}}}}}}}}}}}}}}}} {f} {f} {f}}}}}}}}}}}}}}}}}}}
Note que tk()x){displaystyle t_{k}(x)} no contiene pecado 12Nx{displaystyle sin {tfrac {1}{2}Nx} también. Por último, note que la función pecado 12Nx{displaystyle sin {tfrac {1}{2}Nx} desaparece en todos los puntos xm{displaystyle x_{m}. Múltiples de este término pueden, por lo tanto, ser siempre añadidos, pero es comúnmente dejado fuera.
Implementación
Una implementación de MATLAB de lo anterior se puede encontrar aquí y está dada por:
función P = triginterp()xi,x,y)% TRIGINTERP Interpolación trigonométrica.% Entrada:% xi puntos de evaluación para el interpolante (vector)% x nodos de interpolación equiespacial (vector, longitud N)% y valores de interpolación (vector, longitud N)% Producto:% P valores del interpolante trigonométrico (vector)N = longitud()x);% Ajuste el espaciado de la variable independiente dada.h = 2/N;escala = ()x()2)-x()1) / h;x = x/escala; xi = xi/escala;% Evaluar interpolante.P = ceros()tamaño()xi));para k = 1:N P = P + Sí.()k)*trigcardinal()xi-x()k),N);finalfunción tau = trigcardinal()x,N)ws = advertencia()'off ','MATLAB:divideByZero ');% El formulario es diferente para N uniforme y extraño.si rem()N,2)==1 % extraño tau = pecado()N*pi*x/2) ./ ()N*pecado()pi*x/2));más % incluso tau = pecado()N*pi*x/2) ./ ()N*#()pi*x/2));finaladvertencia()ws)tau()x==0) = 1; % valor de fijación en x=0
Relación con la transformada discreta de Fourier
El caso especial en el que los puntos xn están igualmente espaciados es especialmente importante. En este caso, tenemos
- <math alttext="{displaystyle x_{n}=2pi {frac {n}{N}},qquad 0leq nxn=2π π nN,0≤ ≤ nc)N.{displaystyle x_{n}=2pi {frac {N},qquad 0leq n se hizo.}<img alt="{displaystyle x_{n}=2pi {frac {n}{N}},qquad 0leq n
La transformación que asigna los puntos de datos yn a los coeficientes a k, bk se obtiene a partir de la transformada discreta de Fourier (DFT) de orden N.
- Yk=. . n=0N− − 1Sí.n e− − i2π π nk/N{displaystyle Y... ¿Por qué?
- Sí.n=p()xn)=1N. . k=0N− − 1Yk ei2π π nk/N{displaystyle Y... {1}{N}sum} ¿Por qué?
(Debido a la forma en que se formuló el problema anteriormente, nos hemos restringido a números impares de puntos. Esto no es estrictamente necesario; para números pares de puntos, se incluye otro término coseno correspondiente a la frecuencia de Nyquist.)
El caso de la interpolación sólo de coseno para puntos equidistantes, correspondiente a una interpolación trigonométrica cuando los puntos tienen simetría par, fue tratado por Alexis Clairaut en 1754. En este caso la solución es equivalente a una transformada de coseno discreta. La expansión solo seno para puntos equidistantes, correspondiente a simetría impar, fue resuelta por Joseph Louis Lagrange en 1762, cuya solución es una transformada seno discreta. El polinomio de interpolación de coseno y seno completo, que da lugar a la DFT, fue resuelto por Carl Friedrich Gauss en un trabajo inédito alrededor de 1805, momento en el que también derivó un algoritmo de transformada rápida de Fourier para evaluarlo rápidamente. Clairaut, Lagrange y Gauss estaban todos interesados en estudiar el problema de inferir la órbita de planetas, asteroides, etc., a partir de un conjunto finito de puntos de observación; Dado que las órbitas son periódicas, una interpolación trigonométrica fue la elección natural. Véase también Heideman et al. (1984).
Aplicaciones en computación numérica
Chebfun, un sistema de software totalmente integrado escrito en MATLAB para calcular con funciones, utiliza interpolación trigonométrica y expansiones de Fourier para calcular con funciones periódicas. Muchos algoritmos relacionados con la interpolación trigonométrica están disponibles en Chebfun; Varios ejemplos están disponibles aquí.
Contenido relacionado
Conjunto vacío
Historia de la lógica
Símbolo Mayor que (>)
Menor que <
Abscisa y ordenada