如何正确使用半决赛?

时间:2018-04-23 21:52:46

标签: python matplotlib graph

对于类,我们应该计算e系列的绝对误差,实际误差。最后,我们必须使用“半月”图来绘制相对误差和绝对误差。代码本身工作正常,并按预期生成数值计算。但就图表而言,它并未接近实际结果。 知道为什么这不起作用的任何想法? 最后附上了图表的图像。

import numpy as np
import math as m
import matplotlib.pyplot as plt

Exp_List = []
Relative_Error = []
Absolute_Error = []

def ExpCalc(x,N,t):
    exp = 0.0
    for i in range(N-1):
        fac = m.factorial(i)
        next_term = x**i/fac
        Exp_List.append(next_term)
        exp += next_term
        Relative = abs((sum(Exp_List)-t)/sum(Exp_List))
        Relative_Error.append(Relative)
        Absolute = abs(sum(Exp_List)-t)
        Absolute_Error.append(Absolute)
        i += 1

   return (Absolute_Error, Relative_Error)

A = m.exp(1)
B = m.exp(20)
C = m.exp(100)

print(ExpCalc(1,20,A))

plt.figure()
plt.semilogy(ExpCalc(1,20,A))
plt.show()

图像显示了数值计算以及从代码中获得的图表

1 个答案:

答案 0 :(得分:0)

如果您查看print(ExpCalc(1,20,A))的结果,它实际上是一个元组,这会导致您看到的绘图行为。

要解决此问题,您可以调用该函数并解压缩值,然后单独进行绘图以确保绘制正确的值。

x, y = ExpCalc(1,20,A)

plt.figure()
plt.semilogy(x,y)
plt.show()

给出了:

enter image description here