求解乙個數字的平方根,不用平方根庫函式。

2021-06-18 18:52:32 字數 802 閱讀 9220

思路1:採用

二分

的方式,上界初始化為數字本身,下界初始化為1,這樣用二分,判斷中間數字的平方和目標數字比較,再修改上界和下界,直到小於一定的閾值。

思路2:採用牛頓迭代法(數值分析中提到),採用微分的方式,從初始點開始,每次迭代,微分求解切線,然後求解切線和x軸的交點,再以這個交點作為起點,迭代進行。

比如求解24,那麼寫出函式:

f(x) = x^2 - 24

我們目標就是求解這個函式的根,函式一階導數是:

f'(x) = 2*x

起始點可以選擇x0 = 24,通過求解,可以得到下乙個迭代點的公式為:

x1 = -f(x0) / f'(x0) + x0

這樣迭代下去,直到最後小於一定的閾值。

#includeusing namespace std;

int main()

cout<= -e)

return mid;

if(mid*mid - number > e)

end = mid;

else

start = mid;

} return 0;

} // 牛頓法求解

double newton(double number)

return 0;

}

起乙個數的平方根 初學平方根

初中數學中,平方根是學生們首先接觸的根式,後面還有立方根,四次方根,五次方根,以及大學要用的n次方根。平方根和立方根是基礎,初中生要能正確理解方根的意義,能夠熟練說出乙個數的方根。今天,我主要想和大家先來認識一下平方根。什麼是平方根呢?這個概念與平方有關,我們知道一一 1 2 1,2 2 4,3 2...

Python求解平方根的方法

主要通過sicp的內容改寫而來。基於newton method求解平方根。如下 程式設計客棧 usr bin python def sqrt iter guess,x i程式設計客棧f good enough guess,x print guess else sqrt iter improve gu...

LintCode x的平方根

x的平方根 實現 int sqrt int n 函式,計算並返回 n 的平方根。樣例 sqrt 3 1 sqrt 4 2 sqrt 5 2 sqrt 10 3 挑戰 o log x solution 如果使用蠻力法來求解的話,肯定是會超時的。因此,我們需要使用牛頓迭代法來求解這問題 牛頓迭代法 對於...