import math
x= float(input())
term = 1
sum = 1
n = 1
eps = 10**-7
while abs(term/sum) > eps:
term = -x/n * term
sum = sum + term
n = n + 1.
print (n)
print (sum)
error = 100 - (sum * 100 /math.exp(-x))
print(abs(error), "%")
上面的代码计算了e^-x的值,并将其与内置函数的值进行比较,我试图绘制一个n(达到预期精度所需的迭代次数)和误差p(每次迭代后的值错误).我导入了matplotlib,尝试使用列表,但没有成功.它不允许我追加任何值,我做的每一个列表只包含最终的值,而不是每次迭代后errorp的值,所以图上根本没有显示出来。
我怎样才能把它们之间的关系画出来呢?
先谢了。
1条答案
按热度按时间brtdzjyr1#
你应该把误差值存储在一个列表中,在循环的每一步都附加计算出的误差,然后绘制迭代列表和误差列表:
输出: