之前已经探讨了泰勒展开的问题,见文章:《机器学习数学基础》补充资料:泰勒展开式
本文将重点讨论泰勒展开的一项应用:求高阶导数
泰勒展开的应用
用泰勒展开,常用于计算近似值。
例 1:计算 e e e 的近似值
解
利用 e x = 1 + x + x 2 2 ! + ⋯ e^x=1+x+\frac{x^2}{2!}+\cdots ex=1+x+2!x2+⋯ ,代入 x = 1 x=1 x=1 ,则有:
e = 1 + 1 + 1 2 + 1 6 + 1 24 + ⋯ ≈ 1 + 1 + 1 2 + 1 6 + 1 24 = 2.7083 \begin{split} e&=1+1+\frac{1}{2}+\frac{1}{6}+\frac{1}{24}+\cdots \\&\approx1+1+\frac{1}{2}+\frac{1}{6}+\frac{1}{24}=2.7083 \end{split} e=1+1+21+61+241+⋯≈1+1+21+61+241=2.7083
取前五项加起来是 2.7083,精确值是 2.718281828...
计算高阶导数,是泰勒展开的重要应用,下面具体阐述。
利用泰勒展开计算高阶导数是一种基于函数泰勒级数展开的解析方法。泰勒级数将函数在某一点 a a a 附近展开为幂级数形式,其系数直接包含了函数在该点的高阶导数信息。
函数 f ( x ) f(x) f(x) 在点 x = a x = a x=a 处的泰勒级数展开为:
f ( x ) = f ( a ) + f ′ ( a ) ( x − a ) + f ′ ′ ( a ) 2 ! ( x − a ) 2 + f ′ ′ ′ ( a ) 3 ! ( x − a ) 3 + ⋯ + f ( n ) ( a ) n ! ( x − a ) n + ⋯ f(x) = f(a) + f'(a)(x - a) + \frac{f''(a)}{2!}(x - a)^2 + \frac{f'''(a)}{3!}(x - a)^3 + \cdots + \frac{f^{(n)}(a)}{n!}(x - a)^n + \cdots f(x)=f(a)+f′(a)(x−a)+2!f′′(a)(x−a)2+3!f′′′(a)(x−a)3+⋯+n!f(n)(a)(x−a)n+⋯
其中:
- f ( n ) ( a ) f^{(n)}(a) f(n)(a) 是函数在 x = a x = a x=a 处的 n n n 阶导数。
- f ( n ) ( a ) n ! \frac{f^{(n)}(a)}{n!} n!f(n)(a) 是 ( x − a ) n (x - a)^n (x−a)n 项的系数。
从泰勒级数中提取高阶导数的关键在于识别级数项的系数。具体步骤如下:
- 获取泰勒级数展开:
- 将函数 f ( x ) f(x) f(x) 在点 x = a x = a x=a 展开成泰勒级数。这可以通过已知的泰勒级数(如常见函数的展开式)、逐次微分或级数运算(如加法、乘法、复合)获得。
- 泰勒级数一般形式为 f ( x ) = ∑ n = 0 ∞ c n ( x − a ) n f(x) = \sum\limits_{n=0}^{\infty} c_n (x - a)^n f(x)=n=0∑∞cn(x−a)n ,其中 c n = f ( n ) ( a ) n ! c_n = \frac{f^{(n)}(a)}{n!} cn=n!f(n)(a) 是 ( x − a ) n (x - a)^n (x−a)n 项的系数。
- 识别系数 c n c_n cn:
- 在泰勒级数中,找到 ( x − a ) n (x - a)^n (x−a)n 项的系数 c n c_n cn。例如,如果级数为 f ( x ) = c 0 + c 1 ( x − a ) + c 2 ( x − a ) 2 + c 3 ( x − a ) 3 + ⋯ f(x) = c_0 + c_1 (x - a) + c_2 (x - a)^2 + c_3 (x - a)^3 + \cdots f(x)=c0+c1(x−a)+c2(x−a)2+c3(x−a)3+⋯,则 c n c_n cn 对应 n n n 次幂的系数。
- 计算高阶导数:
- 利用系数 c n c_n cn 求解 n n n 阶导数: f ( n ) ( a ) = c n ⋅ n ! f^{(n)}(a) = c_n \cdot n! f(n)(a)=cn⋅n! 。 n ! n! n! 是 n n n 的阶乘(例如 3 ! = 6 3! = 6 3!=6)。
注意事项
- 收敛性:泰勒级数仅在收敛域内有效(即 ∣ x − a ∣ < R |x - a| < R ∣x−a∣<R, R R R 为收敛半径)。计算高阶导数时,需确保级数在 x = a x = a x=a 处收敛。
- 适用性:该方法最适合解析计算(即得到精确表达式),而非数值近似。对于多项式或有简单级数展开的函数(如指数、三角函数、对数函数),此方法高效;对于复杂函数,可能需要先推导泰勒级数。
- 点 a a a 的选择:通常选择 a = 0 a = 0 a=0(即麦克劳林级数)简化计算,但 a a a 可以是任意点。
- 高阶导数的存在性:函数必须在 x = a x = a x=a 处无限次可导,否则泰勒级数可能不存在或不完整。
以下通过两个常见函数演示方法。
例 1:计算 f ( x ) = e x f(x) = e^x f(x)=ex 在 x = 0 x = 0 x=0 处的 n n n 阶导数。
解:
-
获取泰勒级数:已知 e x e^x ex 在 a = 0 a = 0 a=0 的泰勒展开为: e x = ∑ n = 0 ∞ x n n ! = 1 + x + x 2 2 ! + x 3 3 ! + x 4 4 ! + ⋯ e^x = \sum\limits_{n=0}^{\infty} \frac{x^n}{n!} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \cdots ex=n=0∑∞n!xn=1+x+2!x2+3!x3+4!x4+⋯
-
识别系数 c n c_n cn:对于 x n x^n xn 项,系数 c n = 1 n ! c_n = \frac{1}{n!} cn=n!1.
-
计算高阶导数:
f ( n ) ( 0 ) = c n ⋅ n ! = 1 n ! ⋅ n ! = 1 f^{(n)}(0) = c_n \cdot n! = \frac{1}{n!} \cdot n! = 1 f(n)(0)=cn⋅n!=n!1⋅n!=1结果:所有阶导数在 x = 0 x = 0 x=0 处均为 1(与 e x e^x ex 的导数性质一致)。
例 2:计算 f ( x ) = ln ( 1 + x ) f(x) = \ln(1 + x) f(x)=ln(1+x) 在 x = 0 x = 0 x=0 处的 n n n 阶导数
解
- 获取泰勒级数:已知 ln ( 1 + x ) \ln(1 + x) ln(1+x) 在 a = 0 a = 0 a=0 的泰勒展开为(收敛域 ∣ x ∣ < 1 |x| < 1 ∣x∣<1): ln ( 1 + x ) = ∑ n = 1 ∞ ( − 1 ) n + 1 x n n = x − x 2 2 + x 3 3 − x 4 4 + ⋯ \ln(1 + x) = \sum_{n=1}^{\infty} (-1)^{n+1} \frac{x^n}{n} = x - \frac{x^2}{2} + \frac{x^3}{3} - \frac{x^4}{4} + \cdots ln(1+x)=∑n=1∞(−1)n+1nxn=x−2x2+3x3−4x4+⋯
- 识别系数 c n c_n cn:对于 x n x^n xn 项,系数 c n = ( − 1 ) n + 1 1 n c_n = (-1)^{n+1} \frac{1}{n} cn=(−1)n+1n1(注意:求和从 n = 1 n=1 n=1 开始)。
- 计算高阶导数: f ( n ) ( 0 ) = c n ⋅ n ! = ( − 1 ) n + 1 1 n ⋅ n ! = ( − 1 ) n + 1 ( n − 1 ) ! f^{(n)}(0) = c_n \cdot n! = (-1)^{n+1} \frac{1}{n} \cdot n! = (-1)^{n+1} (n-1)! f(n)(0)=cn⋅n!=(−1)n+1n1⋅n!=(−1)n+1(n−1)!
- 验证:
- n = 1 n=1 n=1: f ′ ( 0 ) = ( − 1 ) 2 ( 1 − 1 ) ! = 1 ⋅ 0 ! = 1 f'(0) = (-1)^{2} (1-1)! = 1 \cdot 0! = 1 f′(0)=(−1)2(1−1)!=1⋅0!=1(直接计算 f ′ ( x ) = 1 1 + x f'(x) = \frac{1}{1+x} f′(x)=1+x1, f ′ ( 0 ) = 1 f'(0) = 1 f′(0)=1)。
- n = 2 n=2 n=2: f ′ ′ ( 0 ) = ( − 1 ) 3 ( 2 − 1 ) ! = − 1 ⋅ 1 ! = − 1 f''(0) = (-1)^{3} (2-1)! = -1 \cdot 1! = -1 f′′(0)=(−1)3(2−1)!=−1⋅1!=−1(直接计算 f ′ ′ ( x ) = − 1 ( 1 + x ) 2 f''(x) = -\frac{1}{(1+x)^2} f′′(x)=−(1+x)21, f ′ ′ ( 0 ) = − 1 f''(0) = -1 f′′(0)=−1)。
- n = 3 n=3 n=3: f ′ ′ ′ ( 0 ) = ( − 1 ) 4 ( 3 − 1 ) ! = 1 ⋅ 2 ! = 2 f'''(0) = (-1)^{4} (3-1)! = 1 \cdot 2! = 2 f′′′(0)=(−1)4(3−1)!=1⋅2!=2(直接计算 f ′ ′ ′ ( x ) = 2 ( 1 + x ) 3 f'''(x) = \frac{2}{(1+x)^3} f′′′(x)=(1+x)32, f ′ ′ ′ ( 0 ) = 2 f'''(0) = 2 f′′′(0)=2)。
- 验证:
利用泰勒展开计算高阶导数的核心是:从泰勒级数的系数 c n c_n cn 反推 f ( n ) ( a ) = c n ⋅ n ! f^{(n)}(a) = c_n \cdot n! f(n)(a)=cn⋅n! 。这种方法在数学分析、物理和工程中广泛应用,特别适合处理级数形式给出的函数。实际应用中,建议先掌握常见函数的泰勒级数,并结合具体问题选择展开点 a a a。