什麼是二分法,什麼是二分法呢?

2022-08-19 15:16:40 字數 5684 閱讀 4161

1樓:匿名使用者

一般地,對於函式f(x),如果存在實數c,當x=c時,若f(c)=0,那麼把x=c叫做函式f(x)的零點。   解方程即要求f(x)的所有零點。   假定f(x)在區間(x,y)上連續   先找到a、b屬於區間(x,y),使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然後求f[(a+b)/2],   現在假設f(a)<0,f(b)>0,a①如果f[(a+b)/2]=0,該點就是零點,   如果f[(a+b)/2]<0,則在區間((a+b)/2,b)內有零點,(a+b)/2>=a,從①開始繼續使用   中點函式值判斷。

  如果f[(a+b)/2]>0,則在區間(a,(a+b)/2)內有零點,(a+b)/2<=b,從①開始繼續使用   中點函式值判斷。   這樣就可以不斷接近零點。   通過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函式的零點,以求得零點的近似值,這種方法叫做二分法。

  從以上可以看出,每次運算後,區間長度減少一半,是線形收斂。另外,二分法不能計算復根和重根。

2樓:匿名使用者

就是在一組已經順序的陣列裡進行查詢的方法,先對陣列的中間值進行比較,之後選取所需要的陣列部分在進行取中間值進行比較,直到找到所要查詢的值

什麼是二分法

3樓:drar_迪麗熱巴

二分法(bisection method) 即一分為二的方法. 設[a,b]為r的閉區間

. 逐次二分法就是造出如下的區間序列([an,bn]):a0=a,b0=b,且對任一自然數n,[an+1,bn+1]或者等於[an,cn],或者等於[cn,bn],其中cn表示[an,bn]的中點。

典型演算法

演算法:當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。

基本思想:假設資料是按升序排序的,對於給定值key,從序列的中間位置k開始比較,

如果當前位置arr[k]值等於key,則查詢成功;

若key小於當前位置值arr[k],則在數列的前半段中查詢,arr[low,mid-1];

若key大於當前位置值arr[k],則在數列的後半段中繼續查詢arr[mid+1,high],

直到找到為止,時間複雜度:o(log(n))。

4樓:無所不能的濤

其實就是一種通過不斷的排除不可能的東西,來最終找到需要的東西的一種方法.所以可以理解成排除法。

之所以叫二分,是因為每次排除都把所有的情況分成"可能"和"不可能"兩種,然後拋棄所有"不可能"的情況。

最正統的二分法中,是每次排除都可以排除掉一半的情況,這樣子的尋找效率是很高的。

比如要在1-100的數字中詢問出某一個特定的數字,我可以先問,這個數字是否大於50?這樣無論是或者不是,我都可以排除掉一半的數字(50之前的被排除,或者50之後的被排除)。假如回答不是,接著我可以問是否大於25?

又可以排除掉一半。這樣下去,很快就會排除剩下一個數字,即是要找的那個。

要理解這種方法為什麼這麼快需要用一點數學計算,很顯然最理想的二分法是每次把情況除以2,而逐個檢查的方法是把情況減1,這個排除的速度比較只要稍微計算一下就可以有認識。

另外就是二分法不一定真的是平均二分,對於不平均的二分法,最極端的情況下,每次可能只能排除一種情況,這樣就和逐個排查沒有區別了。這叫做二分法的退化,是使用二分法的時候需要想辦法避免的。

擴充套件資料

典型演算法

演算法:當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。

基本思想:假設資料是按升序排序的,對於給定值key,從序列的中間位置k開始比較,

如果當前位置arr[k]值等於key,則查詢成功;

若key小於當前位置值arr[k],則在數列的前半段中查詢,arr[low,mid-1];

若key大於當前位置值arr[k],則在數列的後半段中繼續查詢arr[mid+1,high],

直到找到為止,時間複雜度:o(log(n))

5樓:大和

什麼是二分法,在這裡我希望有知道這種,二分法的朋友們,可以幫助大家仔細的分析一下因為我覺得,這個非常的支援性,所以說,具體的要看,具體的分析出來的答案是什麼樣子。

6樓:demon陌

對於區間[a,b]上連續不斷且f(a)·f(b)<0的函式y=f(x),通過不斷地把函式f(x)的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法叫二分法。

其實就是一種通過不斷的排除不可能的東西,來最終找到需要的東西的一種方法.所以可以理解成排除法.

之所以叫二分,是因為每次排除都把所有的情況分成"可能"和"不可能"兩種,然後拋棄所有"不可能"的情況.

最正統的二分法中,是每次排除都可以排除掉一半的情況,這樣子的尋找效率是很高的.

拼音:èr fèn fǎ

造句:1. 好或壞這簡單的二分法顯然並不適用於現實的世界裡。誰不在為自己的私利奮鬥爭取?

2. 古典學派認為,貨幣經濟對實物經濟沒有任何影響,二分法總是成立的。

3. 本文介紹了用二分法對索道輪組的位置狀態進行分析的數值方法,並以此來確定支架走臺傾角。

4. 使用二分法,得到了一個計算量最小且收斂性好的新的迭代演算法.

5. 接收到的資料經過計算,利用二分法查詢,得到一個最大的不丟幀的**速率。

7樓:鈒懼搱灝忦煇

二分法就是把一個東西一分為二。

什麼是二分法呢?

8樓:端木吟天

數學領域的概念,經常用於計算機中的查詢過程中。

基本思想

把函式f(x)的零點所在的區間[a,b](滿足f(a)●f(b)<0)「一分為二」,得到[a,m]和[m,b]。根據「f(a)●f(m)<0」是否成立,取出零點所在的區間[a,m]或[m,b],仍記為[a,b]。所對得的區間[a,b]重複上述步驟,直到包含零點的區間[a,b]「足夠小」,則[a,b]內的數可以作為方程的近似解。

哲學的.就是一分為二的思維方式 .

考慮問題要考慮正反兩方面 .

把事物相矛盾的兩個方面充分進行考慮,本著兩利相衡取其大,兩害相衡取其輕的原則進行選擇決定。

9樓:亢愉律經藝

一般地,對於函式f(x),如果存在實數c,當x=c時f(c)=0,那麼把x=c叫做函式f(x)的零點。

解方程即要求f(x)的所有零點。

先找到a、b,使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然後求f[(a+b)/2],

現在假設f(a)<0,f(b)>0,aa,從①開始繼續使用

中點函式值判斷。

如果f[(a+b)/2]>0,則在區間(a,(a+b)/2)內有零點,(a+b)/2=>b,從①開始繼續使用

中點函式值判斷。

這樣就可以不斷接近零點。

通過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函式的零點,以求得零點的近似值,這種方法叫做二分法。

從數學角度看,二分法,

又稱分半法,

是一種方程式根的近似值求法.

若要求已知函式

f(x)=0

的根(x

的解),

則:先定義一個區間

[a,b],

使其包含著方程式的根.

求該區間的中點,

並找出f(m)的值若

f(m)

與f(a)

正負號相同則取

[m,b]

為新的區間,

否則取[a,

m].重覆第2步至理想精確度為止.

例子例:

求方程sinhx=

cosx

的解,其中

sinh

是雙曲正弦、cos

是餘弦及

x以弧度量度.

定義f(x)

=sinhx-

cosx.

因此這裡是要求

f(x)=0

的根.畫出y=

f(x)

可大約得知其根約在

0.5和

1之間,

故使初始區間的

[0.5,

1].此區間之中點為

0.75.

因f(0.5)

≈-0.3565,

f(0.75)

≈0.0906,

其正負號不同,

故令新區間為

[0.5,

0.75]

又新區間的中點為

0.625,

而f(0.625)

≈-0.1445,

與f(0.5)

正負號相同,

故新區間為

[0.625,

0.75].

不斷重覆運算即得

f(x)=0

的根約為

0.7033.

從哲學角度就是考慮問題的方法,要懂得考慮問題的利弊或正反兩面.

10樓:御曼萬驪潔

今天問二分法的人還真多,接著回答。

一般地,對於函式f(x),如果存在實數c,當x=c時,若f(c)=0,那麼把x=c叫做函式f(x)的零點。

解方程即要求f(x)的所有零點。

假定f(x)在區間(x,y)上連續

先找到a、b屬於區間(x,y),使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然後求f[(a+b)/2],

現在假設f(a)<0,f(b)>0,aa,從①開始繼續使用中點函式值判斷。如果f[(a+b)/2]>0,則在區間(a,(a+b)/2)內有零點,(a+b)/2<=b,從①開始繼續使用中點函式值判斷。這樣就可以不斷接近零點。

通過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函式的零點,以求得零點的近似值,這種方法叫做二分法。從以上可以看出,每次運算後,區間長度減少一半,是線形收斂。另外,二分法不能計算復根和重根。

舉例:用二分法求方程x^5-3x+1=0在(0,1)上的近似解,精確到c=0.001,寫出演算法。

我自己用c++編的程式給你參考下:

#include

#include

double

f(double

x)void

main()

if(fabs(f(start))<=e)

else

mid=(start+end)/2;

}cout<<"求出的值為x="<

ps:執行程式,輸入起始值0和1,求出了x=0.334961

二分法是什麼意思?

11樓:匿名使用者

數學方面牛頓二分法

一般地,對於函式f(x),如果存在實數c,當x=c時,若f(c)=0,那麼把x=c叫做函式f(x)的零點。

解方程即要求f(x)的所有零點。

假定f(x)在區間(x,y)上連續

先找到a、b屬於區間(x,y),使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然後求f[(a+b)/2],

現在假設f(a)<0,f(b)>0,a0,則在區間(a,(a+b)/2)內有零點,(a+b)/2賦給b,從①開始繼續使用中點函式值判斷。

這樣就可以不斷接近零點。當區間小於一定值時,結束迭代過程。

通過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函式的零點,以求得零點的近似值,這種方法叫做二分法。

從以上可以看出,每次運算後,區間長度減少一半,是線性收斂。另外,二分法不能計算復根和重根。

請解釋什麼是古典二分法

古典經濟 bai學家把經濟分為兩du個互不相關部分的研究 zhi方法。當時經濟學家認為dao經濟分為版實際經濟與貨幣,權相應地經濟學分為經濟理論和貨幣理論。經濟理論研究實際經濟中產量的決定,即產量是由制度,資源,技術等實際因素決定的,與貨幣無關。貨幣理論說明物價水平的決定,即我們所公認的貨幣數量論。...

用二分法求方程式X3 X 1 0在區間

include include include define eps 1e 6 define delta 1e 6 int main 以上是main的範疇 float bisection float a,float b,float f float else if b a eps break cout...

用二分法查詢,如果碰到偶數個數怎麼辦 第一次折半,中間的數是取,還是兩個 碰到奇數又怎麼辦

對於區間 a,b 上連續不斷且f a f b 0的函式y f x 通過不斷地把函式f x 的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法叫二分法。二分法 bisection method 即一分為二的方法.設 a,b 為r的閉區間.逐次二分法就是造出如下的區間序列 ...