已知函数f(x)=ax^3-2ax+3a-4在区间(-1,1)上有唯一的零点若a=32/17,用二分法求方程
2个回答
展开全部
第二题:
#include<stdio.h>
#include<math.h>
float f(float x)
{
float y;
float a=32.0/17.0;
y=a*x*x*x-2*a*x+3*a-4;//自定义方程
return(y);
}
float xpoint(float x1,float x2)
{
float y;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));//求 x轴点 交点坐标
return(y);
}
float root(float x1,float x2)
{
float x,y,y1;
y1=f(x1);
do
{
x=xpoint(x1,x2);
y=f(x);
if(y*y1>0)
{
y1=y;
x1=x;
}
else x2=x;
}
while(fabs(y)>=1e-5);
return(x);
}
void main(){
float x1,x2,f1,f2,x;
do
{
printf("请输入方程解得范围x1,x2:\n");
scanf("%f,%f",&x1,&x2);
f1=f(x1);
f2=f(x2);
}
while(f1*f2>=0);
x=root(x1,x2);
printf("A root of equation is %8.5f\n",x);
}
#include<stdio.h>
#include<math.h>
float f(float x)
{
float y;
float a=32.0/17.0;
y=a*x*x*x-2*a*x+3*a-4;//自定义方程
return(y);
}
float xpoint(float x1,float x2)
{
float y;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));//求 x轴点 交点坐标
return(y);
}
float root(float x1,float x2)
{
float x,y,y1;
y1=f(x1);
do
{
x=xpoint(x1,x2);
y=f(x);
if(y*y1>0)
{
y1=y;
x1=x;
}
else x2=x;
}
while(fabs(y)>=1e-5);
return(x);
}
void main(){
float x1,x2,f1,f2,x;
do
{
printf("请输入方程解得范围x1,x2:\n");
scanf("%f,%f",&x1,&x2);
f1=f(x1);
f2=f(x2);
}
while(f1*f2>=0);
x=root(x1,x2);
printf("A root of equation is %8.5f\n",x);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-11-15
展开全部
212
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询