首页 > 解决方案 > Maclaurin 系列的余弦函数使用 for 循环并在错误差异已经达到我想要的值时停止

问题描述

你能帮我编写一个 Maclaurin 系列的余弦函数吗?我想消除输入迭代次数。我只是希望它继续运行,直到我达到我想要的精度(在我的代码 0.000000000000001 中)。请简单回答,因为我是 python 的真正初学者。

from math import *
variable_x = float(input("Input for cosine function: "))
number = int(input("Input number of iterations: "))
cosine_x = 0
for number in range (0,number):
    old = cosine_x + (pow(-1, number)*pow(variable_x,2*number)/factorial(2*number))
    print(old)
    if 0 < abs(old - cosine_x) < 0.000000000000001:
        break
    cosine_x = old
print(number)

Result: Input for cosine function: 5 Input number of iterations: 100 1.0 -11.5 14.541666666666668 -7.159722222222221 2.528397817460318 -0.16274663800705413 0.34693981189206935 0.276927936905926 0.28422084055031593 0.283625015089173 0.28366421413266923 0.2836620929723069 0.28366218903935225 0.2836621853444659 0.2836621854666513 0.2836621854631402 0.2836621854632287 0.2836621854632267 0.28366218546322675 18

标签: python-3.x

解决方案


为避免输入迭代次数,只需使用while循环:

from math import *
variable_x = float(input("Input for cosine function: "))
cosine_x = 0
number = 0
while True:
    old = cosine_x + (pow(-1, number)*pow(variable_x,2*number)/factorial(2*number))
    print(old)
    if 0 < abs(old - cosine_x) < 0.000000000000001:
        break
    cosine_x = old
    number += 1
print(number)

推荐阅读