You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于x=π/4处cos(x)泰勒级数近似cos(π/3)的误差异常排查

问题排查:泰勒级数近似cos(π/3)的误差异常问题

问题描述

编写了如下Python代码,旨在利用x=π/4处的N阶(N=0,1,2,…,10)cos(x)泰勒级数展开式近似计算cos(π/3),并绘制真相对误差(Y轴设为对数刻度)随N(X轴)变化的曲线。预期误差随N增大逐渐递减,但实际生成的曲线中Y值(误差)表现异常,与目标输出不符,希望排查该异常的原因。

原代码

import numpy as np
import matplotlib.pyplot as plt

def cos_taylor(x, N):
    s = 0
    for n in range(N+1):
        term = ((-1)**n)*(x**(2*n))/np.math.factorial(2*n)
        s += term
    return s
    
true_value = np.cos(np.pi/3)
N_values = np.arange(11)
true_relative_errors = np.zeros(N_values.size)
    
for i, N in enumerate(N_values):
    approx_value = cos_taylor(np.pi/4, N)
    true_relative_errors[i] = np.abs((true_value - approx_value)/true_value)
        
plt.semilogy(N_values, true_relative_errors, 'bo-')
plt.grid()
plt.yscale('log')
plt.xlabel('Nth-order Taylor series')
plt.ylabel('err')
plt.show()

错误原因

  • 核心逻辑错误:混淆泰勒级数的展开点与待计算点
    泰勒级数的作用是在已知点a处展开,近似计算附近点x的函数值,正确的cos(x)在a点的N阶展开式为:
    $$\cos(x) \approx \sum_{n=0}^N \frac{(-1)^n}{(2n)!}(x - a)^{2n}$$
    原代码的cos_taylor函数直接计算x的幂次项,本质是计算cos(x)在**0点(麦克劳林级数)**的近似值,而非在π/4点的展开。并且调用时传入的是π/4,得到的是cos(π/4)的近似值,和目标cos(π/3)的误差不会随N增大递减——因为你根本没在用π/4处的展开去近似π/3。

修正后的代码

import numpy as np
import matplotlib.pyplot as plt

def cos_taylor(x, a, N):
    # x: 待计算的点,a: 泰勒展开的基点
    s = 0
    for n in range(N+1):
        term = ((-1)**n) * ((x - a)**(2*n)) / np.math.factorial(2*n)
        s += term
    return s
    
true_value = np.cos(np.pi/3)
N_values = np.arange(11)
true_relative_errors = np.zeros(N_values.size)
    
for i, N in enumerate(N_values):
    # 用π/4处的泰勒展开近似计算π/3处的cos值
    approx_value = cos_taylor(np.pi/3, np.pi/4, N)
    true_relative_errors[i] = np.abs((true_value - approx_value)/true_value)
        
plt.semilogy(N_values, true_relative_errors, 'bo-')
plt.grid()
plt.yscale('log')
plt.xlabel('Nth-order Taylor series')
plt.ylabel('True Relative Error')
plt.show()

修正说明

  1. 给cos_taylor函数增加了展开基点a的参数,计算项改为(x - a)的幂次,符合泰勒级数的定义
  2. 调用时传入待计算点np.pi/3和展开点np.pi/4,实现用π/4处的展开近似π/3的目标
  3. 修正后误差会随N增大逐渐递减,符合预期

内容的提问来源于stack exchange,提问作者Jehwan Jeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:02:33