c++编程题! 用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5
c++编程题!用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5。算法:1)取二元方程f(x)的两个初解x1和x2,分别为0和3(保证区间内有实根...
c++编程题!
用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5。
算法:1)取二元方程f(x)的两个初解x1和x2,分别为0和3(保证区间内有实根);
因为:f(x)在[x1,x2]区间单调
若f(x1)与f(x2)的符号相反,则方程f(x)=0在[x1,x2]区间有一个根;
若f(x1)与f(x2)的符号相同,则方程f(x)=0在[x1,x2]区间没有实根;
2)取x3=(x1+x2)/2,并在x1和x2中舍去和f(x3)同号者,解就在x3和另外那个没有被舍去的初解组成的区间里;
3)反复1、2取舍,直到xn与xn-1之差满足要求时,那么xn便是方程f(x)的近似根。
请按照要求来编程!一定要用c++!!! 展开
用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5。
算法:1)取二元方程f(x)的两个初解x1和x2,分别为0和3(保证区间内有实根);
因为:f(x)在[x1,x2]区间单调
若f(x1)与f(x2)的符号相反,则方程f(x)=0在[x1,x2]区间有一个根;
若f(x1)与f(x2)的符号相同,则方程f(x)=0在[x1,x2]区间没有实根;
2)取x3=(x1+x2)/2,并在x1和x2中舍去和f(x3)同号者,解就在x3和另外那个没有被舍去的初解组成的区间里;
3)反复1、2取舍,直到xn与xn-1之差满足要求时,那么xn便是方程f(x)的近似根。
请按照要求来编程!一定要用c++!!! 展开
1个回答
展开全部
#include "stdio.h"
#include "math.h"
double fun(double x) { return x*x-x-2; }
double root(double a, double b, double e)
{
double x1,x2,y1,y2,x;
x1=a; x2=b;
do
{
x = (x1 + x2)/2;
y = fun(x);
y1 = fun(x1);
if( ( y < 0 && y1 < 0) || (y > 0 && y1 > 0) )
x1 = x;
else
x2 = x;
while(fabs(y) > e);
retrun x;
}
void main()
{
double x = root(-10.0f, 10.0f, 1e-8);
printf("%f\n", x);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询