Как разложить в ряд Тейлора состав функций?

Я хотел бы расширить в ряду Тейлора функцию типа: f(x+f(x)) вокруг x=a в случае, когда f(a)=0.

(%i1) atvalue(f(x),[x=a],0)$

Прямой расчет дает:

(%i2) taylor(f(x+f(x)),x,a,2);

(%o2)/T/ f(a)+(at('diff(f(f(x)+x),x,1),x=a))*(x-a)+((at('diff(f(f(x)+x),x,2),x=a))*(x-a)^2)/2+...

Если я определяю промежуточную функцию:

(%i3)define(tf(x),taylor(f(x),x,a,2))$

Затем я получаю расширение в ряду Тейлора:

(%i4) taylor(f(x+tf(x)),x,a,2);

(%o4) 0+...

Я ожидаю следующего результата: f(1+f'(a))f'(a)(x-a)+(x-a)^2 f''(a)[f'(a)+(1+f'(a))^2/2]+o(x-a)^2

Как я могу решить эту проблему?


person Antoine    schedule 22.01.2019    source источник


Ответы (2)


Вы можете использовать gradef для упрощения записи.

gradef(f(x),  f1(x)) $
gradef(f1(x), f2(x)) $

atvalue(f(x), x = a,  0) $

e: f(x+f(x)) $
e: taylor(e, x, a, 2) $
e: expand(e, 0, 0)$ /* 'taylor' form to ordinar expression */
e: ev(e, nouns);    /* f(a) to 0 */

возвращается

          2                                          2
       (f1 (a) f2(a) + 3 f1(a) f2(a) + f2(a)) (x - a)
(%o7) -----------------------------------------------
                              2
                                                          2
                                                     + (f1 (a) + f1(a)) (x - a)
person slitvinov    schedule 29.01.2019
comment
хорошо, в этом случае все ясно! Однако можно ли оценить упрощение f(a)=0 в разложении Тейлора? Например, это может быть полезно, если я хочу расширить в ряд Тейлора функцию 1/f (x + f (x)) - person Antoine; 31.01.2019

Решение следующее:



    gradef(f(x),  f1(x)) $
    gradef(f1(x), f2(x)) $
    atvalue(f(x), x = a,  0) $

    e: f(x+f(x)) $
    e: taylor(e, x, a, 2) $
    e: expand(e, 0, 0)$ /* 'taylor' form to ordinar expression*/
    e: ev(e, nouns);    /* f(a) to 0 */
    taylor(e,x,a,2); /* Becomes again a taylor serie which could be reused*/

Например, если я хочу найти порядок определенного метода Steffensen, для функции f, которая равна C^2 и f(a)=0,f'(a)!=0, на:



    Sf(x)=x-f(x)^2/(f(x+f(x)-f(x))

If I straight expand this function around a I get :

Sf(x)=a+(x-a)-(f1(a)^2*(x-a)^2)/f(a)+...

which diverges since f(a)=0.

Таким образом, это должно происходить в два этапа. Сначала я расширяю знаменатель:



    den:f(x+f(x))-f(x)$
    t:taylor(den,x,a,2);
    t: expand(t, 0, 0)$
    t: ev(t, nouns)$
    t:taylor(t,x,a,2);

Затем я расширяю функцию Sf:



    Sf:x-f(x)^2/(t)$/*Introducing the taylor serie of den*/
    taylor(Sf,x,a,2);

который обеспечивает желаемый результат:



    Sf(x)=a+((f1(a)+1)*f2(a)*(x-a)^2)/(2*f1(a))+...

person Antoine    schedule 04.03.2020