def fibonacci_method(tf, a, b, eps=1e-7): start_n = fibonacci_inverse((b - a) / eps) + 1 if start_n > 90: return None lamb = a + (fibonacci(start_n - 2) / fibonacci(start_n)) * (b - a) meu = a + (fibonacci(start_n - 1) / fibonacci(start_n)) * (b - a) for i in range(start_n - 2): f_lamb = tf(lamb) f_meu = tf(meu) if f_lamb > f_meu: a = lamb lamb = meu meu = a + fibonacci(start_n - 2 - i) / fibonacci(start_n - 1 - i) * (b - a) else: b = meu meu = lamb lamb = a + fibonacci(start_n - 3 - i) / fibonacci(start_n - 1 - i) * (b - a) meu = lamb + eps**2 f_lamb = tf(lamb) f_meu = tf(meu) if f_lamb > f_meu: a = lamb else: b = meu return (a + b) * 0.5
def arvuta_fibo(self,event): #print(event.__dict__) vastus = fibonacci(self.n_var.get()) self.fibo_var.set(vastus)
from __future__ import division from Fibonacci import fibonacci print(fibonacci(300))
def test_fibonacci_2(self): self.assertEqual(fibonacci(2), [0, 1])
def test_fibonacci_3(self): self.assertEqual(fibonacci(3), [0, 1, 1])
def test_fibonacci_error(self): self.assertEqual(fibonacci(0), "Error")
def test_Fiboonaci_dez(self): self.assertEqual(55,fibonacci(10))
def test_Fiboonaci_zero(self): self.assertEqual(0,fibonacci(0))
def test_Fiboonaci_um(self): self.assertEqual(1,fibonacci(1))