如何在泰勒级数中扩展一个函数的组合?
How to expand in taylor series a composition of functions?
我想在泰勒级数中展开一个函数类型:f(x+f(x))
around 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
我该如何解决这个问题?
您可以使用 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 */
returns
2 2
(f1 (a) f2(a) + 3 f1(a) f2(a) + f2(a)) (x - a)
(%o7) -----------------------------------------------
2
2
+ (f1 (a) + f1(a)) (x - a)
解决方法如下:
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 method 的顺序,对于函数 f,即 C^2 和 f(a)=0,f'(a)!=0 ,作者:
Sf(x)=x-f(x)^2/(f(x+f(x)-f(x))
如果我围绕 a 直接展开这个函数,我会得到:
</p>
<pre><code>Sf(x)=a+(x-a)-(f1(a)^2*(x-a)^2)/f(a)+...
由于 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))+...
我想在泰勒级数中展开一个函数类型:f(x+f(x))
around 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
我该如何解决这个问题?
您可以使用 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 */
returns
2 2
(f1 (a) f2(a) + 3 f1(a) f2(a) + f2(a)) (x - a)
(%o7) -----------------------------------------------
2
2
+ (f1 (a) + f1(a)) (x - a)
解决方法如下:
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 method 的顺序,对于函数 f,即 C^2 和 f(a)=0,f'(a)!=0 ,作者:
Sf(x)=x-f(x)^2/(f(x+f(x)-f(x))
如果我围绕 a 直接展开这个函数,我会得到:
</p>
<pre><code>Sf(x)=a+(x-a)-(f1(a)^2*(x-a)^2)/f(a)+...
由于 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))+...