二分法求方程近似解
二分法求方程近似解:求方程f(x) = x^3 + x^2 - 1 = 0在[0,1]上的近似解,精確度為0.01。
算法分析:二分法求方程近似解的基本思想是將方程的有解區(qū)間平分為兩個小區(qū)間,然后判斷解在哪個小區(qū)間;繼續(xù)把有解的區(qū)間一分為二進行判斷,如此周而復始,直到求出滿足精確要求的近似解。
二分法求方程近似解的算法步驟:
、糯_定區(qū)間[a,b],驗證f(a).f(b) < 0,給定精確度e
、魄髤^(qū)間(a, b)的中點mid
、怯嬎鉬(mid)
若f(mid) = 0,則mid就是函數(shù)的零點
若f(a).f(mid) < 0,則令b = mid(此時零點a < x0 < mid)
若f(mid).f(b) < 0,則令a = mid(此時零點mid < x0 < b)
、扰袛嗍欠襁_到精確度e:即若|a-b| < e,則得到零點近似值a(或b);否則重復⑵-⑷。
代碼如下:
double F(double a, double b, double c, double d, double x)//函數(shù)表達式
{
return (((a * x + b) * x) * x + d) / c;
}
double Function(double a, double b, double c, double d, double low, double high, double e)
{
double mid = (low + high) / 2;
if (F(a, b, c, d, mid) == 0)
return mid;
while ((high-low) >= e)
{
mid = (low + high) / 2;
if (F(a, b, c, d, mid) == 0)
return mid;
if (F(a, b, c, d, low)*F(a, b, c, d, mid) < 0)
high = mid;
else
low = mid;
}
return low;
}
相關推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |