How to derive equation from Numpy's polyfit?

后端 未结 2 1958
醉酒成梦
醉酒成梦 2020-12-18 14:47

Given an array of x and y values, the following code will calculate a regression curve for these data points.

# calculate polynomial
z = np.polyfit(x, y, 5)
         


        
2条回答
  •  不思量自难忘°
    2020-12-18 15:08

    If you want to show the equation, you can use sympy to output latex:

    from sympy import S, symbols, printing
    from matplotlib import pyplot as plt
    import numpy as np
    
    x=np.linspace(0,1,100)
    y=np.sin(2 * np.pi * x)
    
    p = np.polyfit(x, y, 5)
    f = np.poly1d(p)
    
    # calculate new x's and y's
    x_new = np.linspace(x[0], x[-1], 50)
    y_new = f(x_new)
    
    x = symbols("x")
    poly = sum(S("{:6.2f}".format(v))*x**i for i, v in enumerate(p[::-1]))
    eq_latex = printing.latex(poly)
    
    plt.plot(x_new, y_new, label="${}$".format(eq_latex))
    plt.legend(fontsize="small")
    plt.show()
    

    the result:

提交回复
热议问题