7-20 二分法求函式的零點 (10分)
7-20 二分法求函式的零點 (10分)
有函式:f(x)=x
5
−15x
4
+85x
3
−225x
2
+274x−121 已知f(1.5)>0,f(2.4)<0 且方程f(x)=0 在區間[1.5,2.4] 有且只有一個根,請用二分法求出該根。 提示:判斷函式是否為0,使用表示式 fabs(f(x)) < 1e-7
輸入格式:
無。
輸出格式:x
該方程在區間[1.5,2.4]中的根。要求四捨五入到小數點後6位。。
輸入樣例:
無
輸出樣例:
無
//方法一
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int f(double x){
double f=pow(x,5)-15*pow(x,4)+85*pow(x,3)-225*pow(x,2)+274*x-121;
if(f<-1e-7) {return -1;
}
else if(f>1e-7) {
return 1;
}
else return 0;
}
int main(){
double left=1.5;
double right=2.4;
double m;
while(right-left>=1e-7){
m=(left+right)/2.0;
if(f(m)==1){
left=m;
}
else if(f(m)==-1){
right=m;}
else {
break;
}
}
cout << fixed<< setprecision(6)<<m;
return 0;
}
//方法二
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
double fx(double x){
return pow(x, 5) - 15 * pow(x, 4) + 85 * pow(x, 3) - 225 * pow(x, 2) + 274 * x - 121;
}
double find(double left, double right){
double middle = (left + right) / 2.0;
double result = fx(middle);
if (result > 1e-7) return find(middle, right);
else if (result < -1e-7) return find(left, middle);
else return middle;
}
int main(){
double result = find(1.5, 2.4);
cout << fixed << setprecision(6) << result;
return 0;
}
相關文章
- 6-8 使用函式求最大公約數 (10分)函式
- 遞迴函式、演算法之二分法、三元表示式、各種生成式、匿名函式遞迴函式演算法
- 偶函式在零點的泰勒展開式相關知識點函式
- 數學分析 連續函式的孤立零點函式
- 求眾數、排序演算法、二分法排序演算法
- 回撥函式,求積函式函式
- matlab符號函式的求導與差分的計算Matlab符號函式求導
- 7-20 簡單計算器 (20分)
- 二分法
- PHP 函式庫 1 - 函式庫的分類PHP函式
- Java二分法Java
- 二分法分析
- 7-20 奧運排行榜 (25分)(c++ STL)C++
- 求周、月、季、年、紀的函式函式
- Python:第6章-2 使用函式求素數和 (20分)Python函式
- 區分函式防抖&函式節流函式
- 認真一點學 Go:10. 函式Go函式
- Softmax分類函式函式
- 分頁函式 (轉)函式
- 實驗5-3 使用函式求奇數和 (15分)遞龜函式
- JAVA中函式的特點Java函式
- 五、二分法查詢
- 二分法解題思路
- mysql與oracle的分組函式MySqlOracle函式
- 6、Oracle中的分組函式Oracle函式
- java實現的二分法查詢Java
- 【知識點】inline函式、回撥函式、普通函式inline函式
- MySQL全面瓦解10:分組查詢和聚合函式MySql函式
- Oracle 10gR2分析函式彙總Oracle 10g函式
- 定義一個求n的階乘的函式函式
- #PowerBi 10分鐘學會,以X為結尾的聚合函式函式
- GO -冒泡 二分法查詢Go
- python --二分法學習Python
- 千分位分隔函式函式
- 隨機變數函式的分佈隨機變數函式
- 二分查詢函式的使用函式
- 二分法(整數型別)的基本框架型別框架
- 使用二分法來解決的問題