为什么我的Python级数计算代码结果与计算器、在线计算结果不符
代码问题排查与修正
核心错误点
- 你代码中的
y变量只存储了最后一次循环的单项计算值,没有对所有级数项做累加。级数是N个项的求和结果,你每次循环都覆盖y的值,导致前N-1个项的结果全部丢失,这是计算结果偏差的核心原因。 - 若你使用的傅里叶级数公式中直流项为
a0/2而非直接使用a0,还需要同步调整最终total的计算规则,可根据你的公式定义自行确认。
修正后代码
from math import cos, sin, pi a0 = int(input("a0:")) b0 = int(input("b0:")) N = int(input("N:")) L = int(input("L:")) X = int(input("X:")) n = 0 an = a0 bn = b0 y = 0 for i in range(N): n = n + 1 an = an + 10 bn = bn * 10 # 累加每一项的计算结果,而非覆盖y y += an * cos((n * pi * X) / L) + bn * sin((n * pi * X) / L) # 若公式要求直流项为a0/2,修改为 total = a0 / 2 + y total = a0 + y print(total)
内容的提问来源于stack exchange,提问作者user17121268
相关产品推荐
相关产品推荐

