#hledani korenu funkce f metodou regula falsi import math def regulaFalsi(f, a, b, maxiter=50): fa, fb = f(a), f(b) for i in range(maxiter): # approximation by secant, this form doesn't suffer from cancellation x_tmp = (a*fb-b*fa)/(fb-fa) fx_tmp = f(x_tmp) if fx_tmp*fa < 0: b, fb = x_tmp, fx_tmp else: a, fa = x_tmp, fx_tmp print(x_tmp,fx_tmp) return x_tmp #vysetrovana funkce f = lambda x: math.exp(x)-5.0*x*x #pocatecni a,b zjisteny pohledem na graf funkce print(regulaFalsi(f,-1.0,0.0)) print() print(regulaFalsi(f,0.0,1.0)) print() print(regulaFalsi(f,4.0,5.0))