对于一元二次方程,若有 ,则其解是什么?若有多个解,则按照从小到大的顺序在一行中输出,中间使用空格分隔。解保留2位小数(四舍五入)
import math
a = 10
b = 40
c = 15
def fun(x):
return a*x*x + b*x + c
def findspan():
i = -10
temp = 0
while i < 10:
if fun(i)*temp < 0:
print 'span is: ', i-0.1, i
findroot(i-0.1, i)
print ''
temp = fun(i)
i += 0.1
def findroot(left, right):
eps = 0.001
mid = (left + right) / 2
while(math.fabs(fun(mid)) > eps):
if fun(left)*fun(mid) < 0:
right = mid
else:
left = mid
mid = (left + right) / 2
print mid, fun(mid)
findspan()