Python实现三角函数方程计算输出与Symbolab结果不符,求代码审查
代码问题排查
1. 循环变量n未更新
你代码中的n初始赋值为0后全程没有修改,所有循环迭代里n*pi*X/L的取值都是0,对应cos(0)=1、sin(0)=0,最终只会输出an的值,完全不符合三角函数方程的计算要求。
修正方案:将n和循环变量绑定,若求和项从n=1到N,在循环内添加一行n = i + 1即可。
2. 求和逻辑错误
当前代码里的y是直接赋值覆盖上一轮的结果,而非累加求和,如果你的目标是计算级数的总和,需要把赋值运算符从=改成累加运算符+=。
3. 可选校验项:系数规则、直流项
- 你当前
an每次加10、bn每次乘10的更新逻辑,需要和你要计算的方程的系数定义核对是否匹配,若系数规则为an = a0 + 10*n、bn = b0 * 10**n则当前逻辑正确,否则需要对应调整。 - 标准傅里叶级数会包含
a0/2的直流分量,你当前代码初始化y=0没有添加这一项,若你的方程包含直流项需要额外补上。
修正后的参考代码
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:")) # 若需要直流分量可去掉下一行注释 # y = a0 / 2 y = 0 an = a0 bn = b0 for i in range(N): n = i + 1 an = an + 10 bn = bn * 10 term = an * cos(n * pi * X / L) + bn * sin(n * pi * X / L) y += term # 可单独打印每一项的结果校验 # print(f"第{n}项值:{term}") print("总和结果:", y)
内容的提问来源于stack exchange,提问作者user17121268
相关产品推荐
相关产品推荐

