c++:用二分法求方程x2-x-2=0在[0,3]间的解,要求精度不超过10的-5次方.只学过#include<iostream.h>void main()c++学到流程控制语句.算法提示:先取二元方程f(x)的两个初略解x1和x2,若f(x1)与f(x2)的符号
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 16:10:19
c++:用二分法求方程x2-x-2=0在[0,3]间的解,要求精度不超过10的-5次方.只学过#include<iostream.h>void main()c++学到流程控制语句.算法提示:先取二元方程f(x)的两个初略解x1和x2,若f(x1)与f(x2)的符号
c++:用二分法求方程x2-x-2=0在[0,3]间的解,要求精度不超过10的-5次方.
只学过
#include<iostream.h>
void main()
c++学到流程控制语句.
算法提示:先取二元方程f(x)的两个初略解x1和x2,若f(x1)与f(x2)的符号相反,则方程f(x)=0在[x1,x2]区间至少有一个根;若f(x)在[x1,x2]区间单调,则至少有一个实根;所以取x3=(x1+x2)/2,并在x1和x2中舍去和f(x3)同号者,那么解就在x3和另外那个没有舍去的初略解组成的区间里;如此反复取舍,直到xn与xn-1之差满足要求时,那么xn便是方程f(x)的近似根.
c++:用二分法求方程x2-x-2=0在[0,3]间的解,要求精度不超过10的-5次方.只学过#include<iostream.h>void main()c++学到流程控制语句.算法提示:先取二元方程f(x)的两个初略解x1和x2,若f(x1)与f(x2)的符号
int main() {
double x1=0,x2=3;
double x = (x1 + x2) / 2;
double e=1e-5;
if (fabs(x*x-x-2) < e) // x2-x-2 = 0;
printf("x=%f\n", x);
else{
while (fabs(x2-x1) > e){
x = (x1 + x2) / 2;
if (fabs(x*x-x-2) < e){
x1=x;
break;
}
if ((x*x-x-2)*(x1*x1-x1-2) < 0)
x2 = x;
else
x1 = x;
}
printf("x=%f\n", x1);
}
}