求用c语言编写一个函数二分法求根的算法

或插值法也行... 或插值法也行 展开
 我来答
匿名用户
推荐于2018-04-06
展开全部
二分法计算函数f(x)=x*x*x*x+2*x*x*x-x-1;

本程序在turbo c或c++下编译

#include "stdio.h"

#include <math.h>

float f(float x)

{float y;

y=x*x*x*x+2*x*x*x-x-1;

return y;

}

void main()

{float a=0,b=0,h,y,x;

int k,n0;

printf("please input qujian a and b");

scanf("%f%f%d",&a,&b,&n0); /*输入含根区间a,b,循环次数n0 */

for(k=0;k<=n0;k++)

{ x=(a+b)/2;

h=(b-a)/2;

y=f(x);

if(h<10e-6||fabs(y)<10e-6)

{ printf("k=%d,x=%f,y=%f",k,x,y);

break; } /*输出分半次数k,函数的根x,及x对应的函数值.*/

else

{if(f(a)*f(x)<0)

b=x;

else a=x;

}

}

}
塔莞弥陶然
2020-07-01 · TA获得超过3583个赞
知道大有可为答主
回答量:3149
采纳率:27%
帮助的人:212万
展开全部
二分法计算函数f(x)=x*x*x*x+2*x*x*x-x-1;
本程序在turbo
c或c++下编译
#include
"stdio.h"
#include
<math.h>
float
f(float
x)
{float
y;
y=x*x*x*x+2*x*x*x-x-1;
return
y;
}
void
main()
{float
a=0,b=0,h,y,x;
int
k,n0;
printf("please
input
qujian
a
and
b");
scanf("%f%f%d",&a,&b,&n0);
/*输入含根区间a,b,循环次数n0
*/
for(k=0;k<=n0;k++)
{
x=(a+b)/2;
h=(b-a)/2;
y=f(x);
if(h<10e-6||fabs(y)<10e-6)
{
printf("k=%d,x=%f,y=%f",k,x,y);
break;
}
/*输出分半次数k,函数的根x,及x对应的函数值.*/
else
{if(f(a)*f(x)<0)
b=x;
else
a=x;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
登爽陆永丰
2019-10-10 · TA获得超过3601个赞
知道大有可为答主
回答量:3147
采纳率:32%
帮助的人:165万
展开全部
二分法计算函数f(x)=x*x*x*x+2*x*x*x-x-1;
本程序在turbo
c或c++下编译
#include
"stdio.h"
#include
<math.h>
float
f(float
x)
{float
y;
y=x*x*x*x+2*x*x*x-x-1;
return
y;
}
void
main()
{float
a=0,b=0,h,y,x;
int
k,n0;
printf("please
input
qujian
a
and
b");
scanf("%f%f%d",&a,&b,&n0);
/*输入含根区间a,b,循环次数n0
*/
for(k=0;k<=n0;k++)
{
x=(a+b)/2;
h=(b-a)/2;
y=f(x);
if(h<10e-6||fabs(y)<10e-6)
{
printf("k=%d,x=%f,y=%f",k,x,y);
break;
}
/*输出分半次数k,函数的根x,及x对应的函数值.*/
else
{if(f(a)*f(x)<0)
b=x;
else
a=x;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式