C语言编程 知道cosX的值,求X? (不要系统函数),要计算函数。 100
展开全部
#include<stdio.h>
#include<math.h>
void main()
{
float x1,x2,x,y=1; //初始化
x1=-100; //假设的x根所在的区间,我设了一个比较大的数[-100,100]
x2=100;
for(;fabs(y)>0.000001;) //如果x-cos(x)>0.000001 继续查找,我设了精确度为1e-6
{
x=(x1+x2)/2; //算出区间中点值
y=x-cos(x); //计算该点值
if(fabs(y)<0.000001) printf("x=%f\n",x); //如果小于1e-6 ,就是要找的根
else if(y<0) x1=(x1+x2)/2; //这两句就是不断缩小查找区间
else x2=(x1+x2)/2;
}
}
#include<math.h>
void main()
{
float x1,x2,x,y=1; //初始化
x1=-100; //假设的x根所在的区间,我设了一个比较大的数[-100,100]
x2=100;
for(;fabs(y)>0.000001;) //如果x-cos(x)>0.000001 继续查找,我设了精确度为1e-6
{
x=(x1+x2)/2; //算出区间中点值
y=x-cos(x); //计算该点值
if(fabs(y)<0.000001) printf("x=%f\n",x); //如果小于1e-6 ,就是要找的根
else if(y<0) x1=(x1+x2)/2; //这两句就是不断缩小查找区间
else x2=(x1+x2)/2;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Arccos(x)=-i*Ln[x±(x^2-1)^0.5]=-i*[ln|x±(x^2-1)^0.5|+Arg(x±(x^2-1)^0.5)*i]=Arg(x±(x^2-1)^0.5)=Arg(x±(1-x^2)^0.5*i)
在这里我们就可以构造如下的算法
算法4.1
Arccos(x)
{
If (x=-1)
{Return π;}
ElseIf(x<0)
{ Return π-Arctan((1-x^2)^0.5/(-x));}
ElseIf(x=0)
{return π/2;}
Elseif (x<1)
{ Return Arctan((1-x^2)^0.5/x;}
Else
{ Return 0;}
}
在这里我们就可以构造如下的算法
算法4.1
Arccos(x)
{
If (x=-1)
{Return π;}
ElseIf(x<0)
{ Return π-Arctan((1-x^2)^0.5/(-x));}
ElseIf(x=0)
{return π/2;}
Elseif (x<1)
{ Return Arctan((1-x^2)^0.5/x;}
Else
{ Return 0;}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用级数做,算五六位小数就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
感兴趣可以看下glibc里面提供一些库函数c实现方法,或者只看glibc的说明文档
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询