求乙個數的平方根的整數部分,二分搜尋方法,若求浮點數,使用牛頓迭代法。
計算x2 = n的解,令f(x)=x2-n,相當於求解f(x)=0的解,如左圖所示。
首先取x0,如果x0不是解,做乙個經過(x0,f(x0))這個點的切線,與x軸的交點為x1。
同樣的道理,如果x1不是解,做乙個經過(x1,f(x1))這個點的切線,與x軸的交點為x2。
以此類推。
以這樣的方式得到的xi會無限趨近於f(x)=0的解。
判斷xi是否是f(x)=0的解有兩種方法:
一是直接計算f(xi)的值判斷是否為0,二是判斷前後兩個解xi和xi-1是否無限接近。
經過(xi, f(xi))這個點的切線方程為f(x) = f(xi) + f』(xi)(x - xi),其中f'(x)為f(x)的導數,本題中為2x。令切線方程等於0,即可求出xi+1=xi - f(xi) / f'(xi)。
繼續化簡,xi+1=xi - (xi2
- n) / (2xi) = xi - xi / 2 + n / (2xi) = xi / 2 + n / 2xi = (xi + n/xi) / 2。
#include using namespace std;
int sqrt(int x)
mid--;}}
}int main()
return 0;
}
起乙個數的平方根 初學平方根
初中數學中,平方根是學生們首先接觸的根式,後面還有立方根,四次方根,五次方根,以及大學要用的n次方根。平方根和立方根是基礎,初中生要能正確理解方根的意義,能夠熟練說出乙個數的方根。今天,我主要想和大家先來認識一下平方根。什麼是平方根呢?這個概念與平方有關,我們知道一一 1 2 1,2 2 4,3 2...
c語言求乙個數的平方根
一般的來說我們在進行開方運算時,都會使用sqrt函式進行開方運算。使用sqrt時就需要引用標頭檔案math.h。這裡使用 d來輸出整數 include include int mysqrt int n int main 還有一種方法可以不使用math.h。我們利用迴圈來找出n使得n n小於所求根的數...
牛頓迭代法求乙個數的平方根
設r是f x 0的根,選取x0作為r初始近似值,過點 x0,f x0 做曲線y f x 的切線l,l的方程為y f x0 f x0 x x0 求出l與x軸交點的橫座標 x1 x0 f x0 f x0 稱x1為r的一次近似值。過點 x1,f x1 做曲線y f x 的切線,並求該切線 與x軸交點的橫座...