binary search -- finding roots

来源:互联网 发布:linux kvm 编辑:程序博客网 时间:2024/06/08 08:09

对于一元二次方程,若有 ,则其解是什么?若有多个解,则按照从小到大的顺序在一行中输出,中间使用空格分隔。解保留2位小数(四舍五入)


import matha = 10b = 40c = 15def fun(x):    return a*x*x + b*x + cdef 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()  


0 0
原创粉丝点击