C语言编程 知道cosX的值,求X? (不要系统函数),要计算函数。 100

 我来答
OldCat_先生
2013-04-16 · TA获得超过274个赞
知道小有建树答主
回答量:144
采纳率:33%
帮助的人:47.5万
展开全部
#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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AfreetDa
2013-04-16 · TA获得超过1465个赞
知道小有建树答主
回答量:1430
采纳率:0%
帮助的人:583万
展开全部
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;}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangjianhui77
2013-04-16 · 超过18用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:50.6万
展开全部
用级数做,算五六位小数就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ericfan256
2013-04-16 · TA获得超过344个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:139万
展开全部
感兴趣可以看下glibc里面提供一些库函数c实现方法,或者只看glibc的说明文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式