用二分法求下面方程在(-10,10)的根:
2\(x^3\)- 4\(x^2\) + 3\(x\) - 6= 0
答案解析:
將區間划分為兩部分,記錄區間左右端點,得到中點。每次運算將中點帶入方程進行運算,求得結果,進行分析:
結果 > 0:將中位數賦值給右端點
結果 < 0:將中位數賦值給左端點
以此類推...
fabs函數是一個求絕對值的函數,求出x的絕對值,和數學上的概念相同;
le-5:\(10^{-5}\),即0.00001
代碼示例:
#include<stdio.h>
#include<math.h>
int main()
{
double left = -10, right = 10, mid;
double temp = 10;
while (fabs(temp) > 1e-5)
{
mid = (left + right) / 2;
//((2x - 4)*x + 3) * x - 6 ==> 2x^3 - 4x^2 + 3x -6
temp = ((2 * mid - 4) * mid + 3) * mid - 6;
if (temp > 0)
{
right = mid;
}
else if (temp < 0)
{
left = mid;
}
}
printf("在(-10,10)的根為:%lf", mid);
return 0;
}