> 数学 >
用二分法求函数x+exp的根
人气:176 ℃ 时间:2020-04-09 07:49:38
解答
不知道exp代表什么,我是按exp(x)完成的
#include
#include
void main(void)
{
double x,x1,x2;
double f,f1,f2;
do
{
printf("请输入区间[x1,x2]\n");
scanf("%lf%lf",&x1,&x2);
f1 = x1 + exp(x1);
f2 = x2 + exp(x2);
if (f1 * f2 > 0)
{
printf("\n该区间不存在根,请重新输入\n");
}
} while (f1 * f2 > 0);/* 确保输入的x1,x2使得f1,f2符号相反 */
do
{
x = (x1 + x2) / 2;/* 求x1,x2的中点 */
f = x + exp(x);
if (f1 * f > 0)/* 当f与f1符号相同时 */
{
x1 = x;
f1 = f;
}
else if (f2 * f > 0)/* 当f与f2符号相同时 */
{
x2 = x;
f2 = f;
}
} while (fabs(f) > 1e-7);/* 判断条件fabs(f)>1e-7的意思是f的值非常接近0(有误差) */
printf("x = %f\n",x);
}
推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版