作业帮 > 综合 > 作业

二元二次方程的转换或用C语言计算下面的公式,

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/31 01:14:57
二元二次方程的转换或用C语言计算下面的公式,
公式:Vx=2(x*sqrt(1-(x/r)^2)+arcsin(x/r))/PI
把这个公式换成x=……;或者用C语言编出这个方程.
本人数学不好,
Vx,r为已知变量,PI为圆周率,求x的值.
二元二次方程的转换或用C语言计算下面的公式,
这样的话,用牛顿迭代法吧
应该是正确的,只要我没求导错
# include
# include
# define PI 3.14159
main()
{
double Vx,r,x0,x1,f,f1;
printf("Vx=");
scanf("%lf",&Vx);
printf("r=");
scanf("%lf",&r);
x1=0;
do
{
x0=x1;
f=2*(x0*sqrt(1-(x0/r)*(x0/r))+asin(x0/r))/PI-Vx;
f1=2*sqrt(1-(x0*x0)/(r*r))-2*(x0*x0)/(r*r)/sqrt(1-(x0*x0)/(r*r))+1/(r*PI*sqrt(1-(x0*x0)/(r*r)));
x1=x0-f/f1;
}while(fabs(x1-x0)>1e-6);
printf("x=%lf\n",x1);
}