def f(x): return -x*x + x +2 def sprawdz_znak(punkt_startowy, punkt_koncowy): return f(punkt_startowy) * f(punkt_koncowy) < 0 def metoda_siecznych(punkt_startowy, punkt_koncowy, epsilon, epsilon0): if not sprawdz_znak(punkt_startowy, punkt_koncowy): print('Nie mozna znalexc pierwiastka w zadnym przedziale.') return x1 = punkt_startowy x2 = punkt_koncowy x0 = 0.0 while(abs(x1 - x2) > epsilon): x0 = x1 - f(x1) * (x1 - x2) / (f(x1) - f(x2)) if(abs(f(x0)) < epsilon0): break x2 = x1 x1 = x0 print(x0) if __name__== '__main__': metoda_siecznych(-0.9, -1.25, 0.01, 0.000)