首页 > 编程语言 > 详细

求解x²-2=0(x>0)的近似解算法

时间:2019-10-17 22:54:40      阅读:71      评论:0      收藏:0      [点我收藏+]

问题:求解x²-2=0(x>0)的近似解算法

算法分析:利用二分法来求。基本思想是:把函数f(x)的零点区间[a,b]“一分为二”(也就是满足f(a)*f(b)<0),这样就得到[a,m]和[m,b],然后再判断f(a)*f(m)<0是否成立,取出零点所在的区间[a,m]或[m,b],然后重复上述步骤,直到区间范围足够小。就可以得到方程的近似解。

技术分享图片
def equation(x):
    return x ** 2 - 2


def get_num(a, b, n):
    """
    :param a: 要求解定义域的前区间
    :param b: 要求解定义域的后区间
    :param n: 要进行二分循环的次数
    :return: 如果在这个区间内有接,返回一个更加精确的区间。否则返回原区间。
    """
    i = 0
    while equation(a) * equation(b) < 0 and i <= n:
        m = (a + b) / 2
        if equation(a) * equation(m) < 0:
            b = m
        else:
            a = m
        i += 1
    return a, b


print(get_num(1, 2, 10))
二分法求方程近似解

 

求解x²-2=0(x>0)的近似解算法

原文:https://www.cnblogs.com/walle-zhao/p/11695508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!