zoukankan      html  css  js  c++  java
  • 求解x²-2=0(x>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))
    二分法求方程近似解
  • 相关阅读:
    QString 与 string转换
    Lua 判断表是否为空方法
    QT 继承QWidget && 继承QDialog
    QNetworkAccessManager
    Lua语言特色
    Lua逻辑操作符
    Lua语言总结
    Lua 函数
    Lua数据类型
    QT 通过QNetworkReply *获取对应请求的URL地址
  • 原文地址:https://www.cnblogs.com/walle-zhao/p/11695508.html
Copyright © 2011-2022 走看看