f(x)=pow(x,3)-5*pow(x,2)+16*x-80=0的根
#include<stdio.h>
#include<math.h>
#define F(x) ((x-5.0)*x+16.0)*x-80.0
float root(float x1,float x2);
int main()
{
float x1,x2,final,f1,f2;
do
{
scanf("%f%f",&x1,&x2);
f1=F(x1);
f2=F(x2);
}while(f1*f2>0);
final=root(x1,x2);
printf("%.2f",final);
}
float root(float x1,float x2)
{
float mid;
mid=(x1+x2)/2.0;
if(F(mid)==0.0)
return mid;
while(fabs(F(mid))>=0.0001)
{
mid=(x1+x2)/2.0;
if(F(mid)>0)
x2=mid;
else
x1=mid;
}
return mid;
}
本文介绍如何使用迭代法求解三次方程f(x)=pow(x,3)-5*pow(x,2)+16*x-80=0的根,通过输入两个初始值并不断迭代缩小根的范围直至满足精度要求。
176

被折叠的 条评论
为什么被折叠?



