計算2 (根號2) 二分法解決

2021-10-16 05:54:28 字數 747 閱讀 9567

解題思路

既然要求2½的值,可以首先確定的是值的範圍在1~2之間,所以可以 確定區間為[1,2],如果mid>2½,令right=mid;,如果mid<2½,令left=mid,所以之間可以借助函式f(x)=x*x來實現。

** 實現

//由於2½是無理數,所以只能獲取近似值,這裡不妨以精度1e-5為例

const

double esp=

1e-5

;doublef(

double x)

double

calsqrt()

elseif(

f(mid<2)

}return mid;

}

此題的解決思路可以用來解決乙個特列:給定乙個定義的區間[ll,r]上的單調函式,求方程f(x)=0的根

解決這個特列的**實現

//以精度1e-5為例

const

double esp=

1e-5

;doublef(

double x)

double

calsqrt()

elseif(

f(mid<2)

}return mid;

}

二分法 牛頓法開根號

牛頓法 public static double sqrtn1 double value,double accurary double init 1.0 while math.abs init init value accurary return init 二分法和牛頓法的時間複雜度都是o logn...

二分法求方程的根 二分法開根號和牛頓迭代法

在刷水題的時候看到乙個要開根號的,雖然可以math.sqrt 解決這個問題 problem 2009 acm.hdu.edu.cn 抱著好玩的心態,找到了關於開根號的兩種演算法,二分法開根號和牛頓迭代法。第一種是二分法開根號,當start end的時候,先計算mid,然後比較mid的平方是不是 x,...

求方程根 (二分法)

二分法求方程的根 求下面方程的乙個根 f x x3 5x2 10x 80 0 若求出的根是a,則要求 f a 10 6 解法 對f x 求導,得f x 3x2 10x 10。由一元二次方程求根公式知方呈f x 0 無解,因此f x 恆大於0。故f x 是單調遞增的。易知f 0 0且f 100 0,所...