Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def fibonacci_numbers(n):
- return 1 / (5 ** 0.5) * \
- (((1 + 5 ** 0.5) / 2) ** n
- - ((1 - 5 ** 0.5) / 2) ** n)
- def steps(eps, a, b, x, y, n, k):
- if func(x) > func(y):
- a_k1 = x
- b_k1 = b
- x_k1 = y
- y_k1 = a_k1 + fibonacci_numbers(n - k - 1) * (b_k1 - a_k1) / fibonacci_numbers(n - k)
- if k != n - 2:
- k += 1
- return steps(eps, a_k1, b_k1, x_k1, y_k1, n, k + 1)
- else:
- fifth_step = "Не знаю, как сделать 5 шаг"
- return fifth_step
- else:
- a_k1 = a
- b_k1 = y
- y_k1 = x
- x_k1 = a_k1 + fibonacci_numbers(n - k - 2) * (b_k1 - a_k1) / fibonacci_numbers(n - k)
- if k != n - 2:
- return steps(eps, a_k1, b_k1, x_k1, y_k1, n, k + 1)
- else:
- fifth_step = "Не знаю, как сделать 5 шаг"
- return fifth_step
- def fibonacci(eps, a0, b0):
- e = (b0 - a0) / eps
- n = 1
- while fibonacci_numbers(n) <= e:
- n += 1
- fn = fibonacci_numbers(n)
- x = a0 + fibonacci_numbers(n - 2) / fn * (b0 - a0)
- y = a0 + fibonacci_numbers(n - 1) / fn * (b0 - a0)
- print(steps(eps, a0, b0, x, y, n, 1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement