二分法求根

2021-06-28 12:38:45 字數 793 閱讀 8413

用二分法求下面的一元三次方程

在區間[-10, 10]上誤差不大於

該方法的關鍵在於要解決如下兩個問題:

1)如何對區間進行二分,並在二分後的左右兩個區間中確定下一次求根搜尋的區間?

假設區間端點為x1和x2,則通過計算區間的中點x0,即可將區間[x1, x2]二分為[x1, x0]和[x0, x2]。這時,為了確定下一次求根搜尋的區間,必須判斷方程的根在哪乙個區間內,由上圖可知方程的根所在區間的兩個端點處的函式值的符號一定是相反的。也就是說,如果f(x0)與f(x1)是異號的,則根一定在左區間[x1, x0]內,否則根一定在右區間[x0, x2]內。

2)如何終止這個搜尋過程?即如何確定找到了方程的根?

對根所在區間繼續二分,直到

輸入格式:

"%f,%f"

輸出格式:

"x=%6.2f\n"

輸入樣例:

0,4

#include #include float delta = 0.000001f;

float function(float x)

int main()

while (fabs(f_new) >= delta);

printf("x = %6.2f\n", x_new);

} return 0;

}

方程求根二分法

方程求根二分法 在實際計算允許的誤差範圍 內 對所求根區間 a,b 不斷縮小直得到所期望精度的資料 理論基礎 1 函式在區間 a,b 上連續 2 f a f b 0 3 單調函式,乙個根 屬性 數值逼近法 誤差 精度 x x b a 2 b a pow 2,k 1 x為精確值,x 為第k次二分後資料...

計算方法 C C 二分法求根

問題 給出方程f x x 3 10x 20,求該方程在 1,2 上的根,其精度不小於10 4 看似很簡單的乙個小問題,其實有很有細節值得注意,先給出 方法一 include include double f double x int main if cnt 0 r mid else l mid pr...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...