符号泰勒展开

Symbolic Taylor expansion

我想在 SageMath

中将符号 function $f(x)$ 展开为泰勒级数
$$\delta f(x)=\delta x\frac{d}{dx}f+\frac12(\delta x)^2\frac{d^2} 
{dx^2}f+O((\delta x)^3)$$

$$\delta x = a_1(\delta t)^{\frac12}+a_2(\delta t)+a_3(\delta t)^{\frac32}+O((\delta t)^2)$$

并将$\delta t$的同次幂项展开并收集到一个指定的次方,比如说$\frac32$. $f$只是一个符号,我只需要Mathsage来产生导数的符号$\frac{d}{dx}$.

应该如何在 SageMath 中进行设置?

有了 sympy,你会做这样的事情来得到泰勒级数。

import sympy

dt = sympy.Symbol('dt')
a1 = sympy.Symbol('a1')
a2 = sympy.Symbol('a2')
a3 = sympy.Symbol('a3')
dx = a1*dt**(1/2) + a2*dt + a3*dt**(3/2)

from sympy.abc import x
f = sympy.Function('f')(x)
df = dx*sympy.diff(f,x) + 1/2*dx**2*sympy.diff(f,x,2)
df.series(x)

这是假设 x 和 δx 是独立的。

这是你想做的吗?

sage: f = function('f', nargs=1)(x)
sage: f
f(x)
sage: f.taylor(x, 0, 2)
1/2*x^2*D[0, 0](f)(0) + x*D[0](f)(0) + f(0)