c语言 使用二分法求方程额e^x+x=0在(-1,0)之间的根

 我来答
_Kyle_x_y
2011-04-17
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
#include<math.h>
#define eps 5e-6
#define delta 1e-6
#define e 2.718
float bisection(float a,float b,float (*f)(float)){
float c,fc,fa=(*f)(a),fb=(*f)(b);
int n=1;
printf("二分法次数\tc\t\tf(c)\n");
while(1){
if(fa*fb>0){printf("不能用二分法求解");break;}
c=(a+b)/2;fc=(*f)(c);
if(fabs(fc)<delta) break;
else if(fa*fc<0){b=c,fb=fc; }
else {a=c,fa=fc;}
if (fabs(b-a)<eps) break;
printf(" %d\t\t%f\t%f\n",n++,c,fc);
}
return c;
}
float f(float x){
//return x*x*x+x*x-3*x-3;
return exp(x)+x;}
void main(){
float a=-1,b=0;
float x;
x=bisection(a,b,f);
printf("\n 方程的根是: %f\n",x);
getchar();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sievers分析仪
2025-07-02 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
佟彦明
2011-04-23 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:99.1万
展开全部
#include"stdio.h"
//#include"conio.h"
#include"math.h"
float fun(float x)
{
return (e^x+x);
}
float xpoint(float x1,float x2)
{
return (x1+x2)/2;
}
float root(float x1,float x2)
{
float x,y,y1,y2;
y1=fun(x1);
printf("");
y2=fun(x2);
do
{x=xpoint(x1,x2);
y=fun(x);
if(y1*y<0)
{
x2=x;
y2=y;
}
else
{
x1=x;
y1=y;
}
}while(fabs(fun(x))<1e-6);
return x;
}
void main()
{
float a,b,f1,f2,x;
do
{
printf("输入a b\n");
scanf("%f%f",&a,&b);//输入a=-1,b=0
f1=fun(a);
f2=fun(b);
}while(f1*f2>=0);
x=root(a,b);
printf("%f",x);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式