C语言编程二分法6) 用二分法求下面方程在(-10,10)之间的根.2x3-4x2+3x-6=0【提示】(1) 取两个不同点x1、x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根(曲线与x轴的交点).如果f(x1)与f(x2)同
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 17:56:58
![C语言编程二分法6) 用二分法求下面方程在(-10,10)之间的根.2x3-4x2+3x-6=0【提示】(1) 取两个不同点x1、x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根(曲线与x轴的交点).如果f(x1)与f(x2)同](/uploads/image/z/3699726-6-6.jpg?t=C%E8%AF%AD%E8%A8%80%E7%BC%96%E7%A8%8B%E4%BA%8C%E5%88%86%E6%B3%956%29+%E7%94%A8%E4%BA%8C%E5%88%86%E6%B3%95%E6%B1%82%E4%B8%8B%E9%9D%A2%E6%96%B9%E7%A8%8B%E5%9C%A8%EF%BC%88-10%2C10%EF%BC%89%E4%B9%8B%E9%97%B4%E7%9A%84%E6%A0%B9.2x3-4x2%2B3x-6%3D0%E3%80%90%E6%8F%90%E7%A4%BA%E3%80%91%281%29+%E5%8F%96%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%82%B9x1%E3%80%81x2%2C%E5%A6%82%E6%9E%9Cf%28x1%29%E5%92%8Cf%28x2%29%E7%AC%A6%E5%8F%B7%E7%9B%B8%E5%8F%8D%2C%E5%88%99%28x1%2Cx2%29%E5%8C%BA%E9%97%B4%E5%86%85%E5%BF%85%E6%9C%89%E4%B8%80%E4%B8%AA%E6%A0%B9%28%E6%9B%B2%E7%BA%BF%E4%B8%8Ex%E8%BD%B4%E7%9A%84%E4%BA%A4%E7%82%B9%29.%E5%A6%82%E6%9E%9Cf%28x1%29%E4%B8%8Ef%28x2%29%E5%90%8C)
C语言编程二分法6) 用二分法求下面方程在(-10,10)之间的根.2x3-4x2+3x-6=0【提示】(1) 取两个不同点x1、x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根(曲线与x轴的交点).如果f(x1)与f(x2)同
C语言编程二分法
6) 用二分法求下面方程在(-10,10)之间的根.2x3-4x2+3x-6=0【提示】(1) 取两个不同点x1、x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根(曲线与x轴的交点).如果f(x1)与f(x2)同符号,则应改变x1、x2,直到f(x1)、f(x2)异号为止.注意x1、x2的值不应相差太大,以保证(x1,x2)区间只有一根.
(2) x1和x2两点之间的中点x=(x1+x2)/2,见图4-1,再从x求出函数值f(x).
(3) 若f(x)与f(x1)同符号,则根必在(x,x2)区间内,此时将x作为新的x1;如果f(x)与f(x2)同符号,则表示根在(x1,x)区间内,将x作为新的x2.
(4) 重复步骤(2)和(3),直到|f(x)|
C语言编程二分法6) 用二分法求下面方程在(-10,10)之间的根.2x3-4x2+3x-6=0【提示】(1) 取两个不同点x1、x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根(曲线与x轴的交点).如果f(x1)与f(x2)同
#include
#include
double fun(double x) { return 2 * x * x * x - 4 * x * x + 3 * x - 6; }
double root(double a, double b, double e)
{
double x1, x2, y1, x, y;
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;
/*end if*/
}while(fabs(y) > e);
return x;
}
int main(void)
{
double x = root(-10.0f, 10.0f, 1e-8);
printf("%f\n", x);
return 0;
}
/*
运行结果:
2.000000
*/