2 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
二分與分治的區別是:
對于區間[a,b]上連續不斷且f(a)·f(b)<0的函數y=f(x),通過不斷地把函數f(x)的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法叫二分法。分治法可以通俗的解釋為:把一片領土分解,分解為若干塊小部分,然后一塊塊地占領征服,被分解的可以是不同的政治派別或是其他什么,然后讓他們彼此異化。
二分法的算法是:
(1)確定區間[a,b],驗證f(a)·f(b)<0,給定精確度ξ.
(2)求區間(a,b)的中點c.
(3)計算f(c).
01若f(c)=0,則c就是函數的零點;
02若f(a)·f(c)<0,則令b=c;
03若f(c)·f(b)<0,則令a=c.
04判斷是否達到精確度ξ:即若|a-b|<ξ,則得到零點近似值a(或b),否則重復2-4.
分治法的算法是:Divide-and-Conquer(P)
(1)if |P|≤n0
(2)then return(ADHOC(P))
(3)將P分解為較小的子問題 P1 ,P2 ,...,Pk
(4)for i←1 to k
(5)do yi ← Divide-and-Conquer(Pi) △ 遞歸解決Pi
(6) T ← MERGE(y1,y2,...,yk) △ 合并子問題
(7) return(T)
添加回答
舉報
0/150
提交
取消