C语言中sin()函数用的什么算法?

C语言中sin()函数用的哪种算法?可以在哪儿直接查看吗?库函数math.h中只包含了这样一条子函数的定义double_Cdeclsin(doublex);我要问的是正是... C语言中sin()函数用的哪种算法?
可以在哪儿直接查看吗?

库函数math.h中只包含了这样一条子函数的定义
double _Cdecl sin (double x);
我要问的是正是它用的什么算法!!!
也就是说它是如何计算的!

“用”一般人儿都会呵……

非常感谢各位!

“库函数没有源文件可以看的,只有二进制可执行代码
连接时,加到你的程序中。
这是编译器提供的。”

用泰勒级数是一种方法,我也是这么猜的,不过不确定。
这是最快的方法么?
也许我应该计算一下它的收敛速度。
展开
 我来答
大别山的蜗牛
高粉答主

2016-01-15 · 一只互联网搬运的蜗牛
大别山的蜗牛
采纳数:6927 获赞数:12024

向TA提问 私信TA
展开全部
C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果
下面用for循环实现sin的算法,程序代码如下:
#include<stdio.h>

#include<math.h>
void main()
{
int i;
float x,sum,a,b; //sum代表和,a为分子,b为分母
char s;
printf("please input x");
scanf("%f",&x);
s=1;
sum=0;
a=x; //分母赋初值
b=1; //分子赋初值
for(i=1;a/b>=1e-6;i++)
{
sum=sum+s*a/b; //累加一项
a=a*x*x; //求下一项分子
b=b*2*i*(2*i+1); //求下一项分母
s*=-1;
}
printf("sum=%f\n",sum);
}

3. 关于上述程序的几点说明:上述程序的计算结果精确到小数点后六位;上述程序运用了sin的泰勒展开式 sin
x=x-x^3/3!+x^5/5! ...... ,程序中将sin泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加
fambalaya
推荐于2018-02-28 · TA获得超过235个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:329万
展开全部
这个是库函数吧

只有有说明就可以用了,你试一下,不用包含 math.h
直接写一个声明,double _Cdecl sin (double x);
就可以用了

库函数没有源文件可以看的,只有二进制可执行代码
连接时,加到你的程序中。
这是编译器提供的。

--------------------

补充一下
楼主问的是 sin 这个函数,CPU是如何实现的
CPU能做加减乘除还有逻辑运算

不知道楼主有没有学过极数?
把sin(x)按 泰勒极数展开,可以变在一个 sin(x)=f(x)
f(x) 是一个关于x的加减乘除的函数,极数无限的
当然,极数越多,精度越高,运算量越大
计算机取有限极数,作近似计算即可

sin(x)=x-x^3/3!+x^5/5!-x^7/!+....
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无悔无泪无心
2015-05-29 · TA获得超过2750个赞
知道小有建树答主
回答量:825
采纳率:0%
帮助的人:440万
展开全部

sin(x)泰勒公式

可以变在一个 sin(x)=f(x)
f(x)
是一个关于x的加减乘除的函数,极数无限的
当然,极数越多,精度越高,运算量越大
计算机取有限极数,作近似计算即可

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友602aaef
2007-04-27
知道答主
回答量:18
采纳率:0%
帮助的人:8.6万
展开全部
泰勒公式展开
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式