求解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))
二分法求方程近似解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM