Advertisement
daegron

5

Nov 2nd, 2021
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.61 KB | None | 0 0
  1. def der(p, n):
  2.     res = [0]*(n-1)
  3.     for i in range(n - 1):
  4.         res[i] = p[i] * (n - i - 1)
  5.     return res
  6.  
  7.  
  8. def value(p, x):
  9.     n = len(p)
  10.     val = 0
  11.     for i in range(n):
  12.         val += (x ** (n - i - 1)) * p[i]
  13.     return val
  14.  
  15.  
  16. def solution(n, p):
  17.     x0 = 1
  18.     eps = 1e-6
  19.     max_iters = 1e6
  20.     x, x_prev, i = x0, x0 + 2*eps, 0
  21.     if value(p, x0) == 0:
  22.         return x0
  23.     while abs(x - x_prev) >= eps and i < max_iters:
  24.         x, x_prev, i = x - value(p, x) / value(der(p, n+1), x), x , i + 1
  25.     return x
  26.  
  27.  
  28. n = int(input())
  29. print(solution(n, [float(i) for i in input().split()]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement