12 votos

Encontrar la potencia de la serie para $y$ donde $y + \sin(y) = x$

¿Qué hacer para encontrar la potencia de la serie para una relación inversa como para$y$$y + \sin(y) = x$? No estoy seguro de por dónde empezar.

(De manera similar, la de Lambert $W$ función tiene una potencia de serie para $y$ en $y = W(x)$ ($y e^y = x$) que permite que el cálculo.)$

10voto

VoxPelli Puntos 778

Usted debe calcular el $n$th derivado de la expresión dada. Así, $$ y(x)+\sin(y(x))=x $$ y, a continuación,$y(0)=0$. La primera derivada dará $$ y'(x)(1+\cos(y(x))=1 $$ y así $$ y'(0)=\frac1{2}. $$ Procediendo de manera similar se obtendrá $y''(0)=0$ $y'''(0)=\frac{1}{16}$ y, finalmente, usted tendrá $$ y(x)=\frac1{2}x+\frac1{16}\frac{x^3}{3!}+\frac1{16}\frac{x^5}{5!}+\frac{43}{256}\frac{x^7}{7!}+\frac{223}{256}\frac{x^9}{9!}+O(x^{11}). $$

9voto

Lierre Puntos 3285

Esta es una instancia del problema de encontrar la composición de la inversa de una potencia de la serie. Deje $F$ $k[[t]]$ un poder formal de la serie, con $F(0) = 0$$F'(0) \neq 0$. Cómo calcular $G\in k[[t]]$ tal que $F(G) = t$ ? En tu ejemplo, $F$ $t + \sin t$ como un poder formal de la serie.

Una buena respuesta es el Newton de la iteración. Tanto la prueba de la existencia de la composición inversa y le da una forma eficiente de calcular.

I - Descripción del algoritmo

Deje $n>0$ y se supone que ya tiene $G\in k[[t]]$ tal que $F(G) = t \mod t^n$. Definir :

  • $E = F(G) - t$, el término de error ;
  • $G_1 = G - E \cdot F'(G)^{-1}$, la nueva aproximación.

Tenga en cuenta que $G = G_1 \mod t^n$ desde $E = 0 \mod t^n$. ¿Qué es $F(G_1)$ ? Se calcula utilizando la expansión de taylor $$ \begin{aligned} F(G_1) &= F( G + (G_1 - G) )\\ &= F(G) + (G_1 - G) \cdot F'(G) + \mathcal O((G_1 - G)^2)\\ &= F(G) - E + \mathcal{O}(E^2) \\ &= 0 \mod t^{2n} \end{aligned}$$

That's incredible ! You had $n$ coefficients of the compositional inverse, and now you have $2n$, with a single iteration !

Lagrange inversion theorem is good is you want only one coefficient of the inverse, without having to compute the previous one. If you want the whole expansion, then Newton is way better.

II - Example

Define $$F = t + \sum_n \frac{(-1)^n t^{2n+1}}{(2n+1)!}, $$ y $G_0 = 0$.

La primera iteración da

1/2*t + O(t^2)

El segundo da

1/2*t + 1/96*t^3 + O(t^4)

La quinta da

1/2*t + 1/96*t^3 + 1/1920*t^5 + 43/1290240*t^7 + 223/92897280*t^9 +
60623/326998425600*t^11 + 764783/51011754393600*t^13 +
107351407/85699747381248000*t^15 + 2499928867/23310331287699456000*t^17
+ 596767688063/63777066403145711616000*t^19 +
22200786516383/26786367889321198878720000*t^21 +
64470807442488761/867449737727777704488468480000*t^23 +
3504534741776035061/520469842636666622693081088000000*t^25 +
3597207408242668198973/5845917272495039506088686780416000000*t^27 +
268918457620309807441853/4746884825265972078944013665697792000000*t^29 +
185388032403184965693274807/35316823099978832267343461672791572480000000\
*t^31 + O(t^32)

III - El código

Para proceder a los cálculos, he utilizado la Salvia, y aquí está el código :

R.<t> = PowerSeriesRing(QQ)

f = t + sum([ (-1)^n*t^(2*n+1)/factorial(2*n + 1) for n in range(20) ]) + O(t^41)

def newton_it( f, g ) :
  g = parent(g)(g.polynomial()).add_bigoh(2*g.prec())
  return g + (t - f(g))/derivative(f)(g)

newton_it(f, 0 + O(t))
newton_it(f, newton_it(f, 0 + O(t)))
etc.

No más de dos líneas para la iteración de newton...

6voto

Jorrit Reedijk Puntos 129

La Campana/Carleman-método, que J. M. menciona es mi método favorito para las tareas de este tipo, lo que puede hacerse con papel y pluma para un truncamiento a los coeficientes de bajo índice . El primer paso es hacer una lista lo suficientemente muchos poderes formales de la powerseries en cuestión. Así que si $\small f(y)=y + \sin (y) = 2y-y^3/3!+y^5/5!- \ldots + \ldots $

a continuación, tenemos una lista de los primeros formal de potencias de f(y): $$\pequeño \begin{array} {lll} f(y)^0&=& 1 + O(x^8)\\ f(y)^1&=& 2*x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + O(x^8)\\ f(y)^2&=& 4*x^2 - 2/3*x^4 + 11/180*x^6 + O(x^8)\\ f(y)^3&=& 8*x^3 - 2*x^5 + 4/15*x^7 + O(x^8)\\ f(y)^4&=& 16*x^4 - 16/3*x^6 + O(x^8) \end{array} $$ a continuación, el Carleman-matrix se ve como $$\pequeño M_{f(y)}= \begin{bmatrix} 1&.&.&.&.&.&.&.\\ .&2&.&-1/6&.&1/120&.&-1/5040\\ .&.&4&.&-2/3&.&11/180&.\\ .&.&.&8&.&-2&.&4/15\\ .&.&.&.&16&.&-16/3&.\\ .&.&.&.&.&32&.&-40/3\\ .&.&.&.&.&.&64&.\\ .&.&.&.&.&.&.&128 \end{bmatrix} $$ donde los coeficientes de las anteriores potencias de f(y) está lleno rowwise en la matriz. Esto se puede hacer con papel y pluma para el primer par de filas/columnas.
Debido a que la matriz es triangular que sea fácil para invertirlo, con papel y pluma, al menos para algunos de los principales términos y esto nos da: $$\pequeño M_{f^{[-1]}(y)}= \begin{bmatrix} 1&.&.&.&.&.&.&.\\ .&1/2&.&1/96&.&1/1920&.&43/1290240\\ .&.&1/4&.&1/96&.&29/46080&.\\ .&.&.&1/8&.&1/128&.&17/30720 \end{bmatrix} $$ Necesitamos hacer esto, incluso sólo en la segunda fila, ya que esta contiene los coeficientes para la formalización de la powerseries para el (la composición) inversa
$$\small f(x)=f^{[-1]}(y) = 1/2 x + 1/96 x^3 + 1/1920 x^5 + \ldots $$

5voto

Andrew Puntos 140

lhf ya trajo de Lagrange de la inversión (un caso especial de la más general de Lagrange-Bürmann de la serie):

$$f^{(-1)}(x)=\sum_{k=0}^\infty \frac{x^{k+1}}{(k+1)!} \left(\left.\frac{\mathrm d^k}{\mathrm dt^k}\left(\frac{t}{f(t)}\right)^{k+1}\right|_{t=0}\right)$$

There are a number of nice series reversion algorithms that make use of coefficients from the series to be inverted. Here is a Mathematica implementation of an algorithm due to Henry Thacher (also used here):

a = Rest[CoefficientList[Series[(x + Sin[x])/2, {x, 0, 20}], x]];
n = Length[a];
Do[
    Do[
      c[i, j + 1] = Sum[c[k, 1]c[i - k, j], {k, 1, i - j}];
      , {j, i - 1, 1, -1}];
    c[i, 1] = Boole[i == 1] - Sum[a[[j]] c[i, j], {j, 2, i}]
    , {i, n}];
Table[c[i, 1]/2^i, {i, n}]

{1/2, 0, 1/96, 0, 1/1920, 0, 43/1290240, 0, 223/92897280, 0, 
60623/326998425600, 0, 764783/51011754393600, 0, 
107351407/85699747381248000, 0, 2499928867/23310331287699456000, 0, 
596767688063/63777066403145711616000}

Thacher's method expects the series to be inverted to take the form $x+\cdots$ (and the series for $x+\sin\,x$ starts out $2x+\cdots$), so some rescaling is necessary before feeding the series coefficients to the algorithm; the division by powers of $2$ al final recupera los coeficientes de la función original para ser invertida.

Hay muchos más métodos (por ejemplo, Carleman matrices, Campana de polinomios); buscar alrededor para obtener más información sobre ellos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X