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

基于余弦McLaurin展开实现的自定义余弦函数返回值异常求助

问题排查与代码修正

错误原因

  • 麦克劳林公式误用:余弦函数的麦克劳林展开式为:

cos(x) = Σk=0∞ [ (-1)k * x2k ] / (2k)!
你代码中使用的x^(2k+1)是正弦函数展开的指数特征,公式匹配完全错误。

  • 缺失阶乘运算:三角函数麦克劳林展开的分母为对应阶数的阶乘,你代码中分母仅写了2*k+1,没有计算阶乘,导致每一项的数值权重完全偏离正确值。

修正后可运行代码

import math
def _cos(n:float, prec:int):
    res = 0.0
    for k in range(prec):
        # 严格按照余弦麦克劳林公式计算单值
        term = ((-1) ** k) * (n ** (2 * k)) / math.factorial(2 * k)
        res += term
    return res

pi = math.pi
print(_cos(pi, 20))
print(math.cos(pi))

补充说明

余弦的麦克劳林级数在收敛域内收敛速度极快,取prec=20就已经能达到和标准库math.cos几乎一致的精度,不需要设置到200项,过高的迭代次数反而可能引入不必要的浮点计算误差。

内容的提问来源于stack exchange,提问作者XxJames07-

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:54:03