Untitled

 avatar
unknown
plain_text
3 years ago
948 B
0
Indexable
def fprime(x):
    h=10**-7
    return (f2(x+h)- f2(x))/h



def newton(f, x0, eps=10**-4, max_iter=100):
    x1 = x0-1
    x=[]
    y=[]
    u=[]
    for i in np.arange(2,fprime(x0+1),eps):
        x.append(i)
        y.append(f2(i))
    plt.plot(x,y)
    
    while max_iter>0 and (abs(x1-x0)) > eps and (abs(f2(x0)))>eps:
        plt.plot([x0], [f2(x0)], color="red")
        plt.scatter(x0, f2(x0), c="red")
       # plt.plot([x0-0.1, x0+0.1], [f2(x0)-eps, f2(x0)+eps])
        plt.plot([x0-0.5,x0+0.5],[f2(x0)-fprime(x0),f2(x0)+eps], linestyle="--", color="red")
       # plt.plot([1,5],[5,8])
        x1 = x0
        x0 = x0 - f2(x0)/fprime(x0)
       # plt.axvline(x=x0, linestyle="--", color="red")

        u.append(x0)
        max_iter -= 1
        print(x0)
    plt.grid(linestyle="--")
    c=x0  
    plt.title("C={}".format(c))
    plt.xlabel("x")
    plt.ylabel("y")
    plt.show()

newton(f2, 4)
Editor is loading...