c语言sin函数循环 在c语言中sin函数的实现

C语言编写sin函数?求教!1.
C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果
2.
下面用for循环实现sin的算法,程序代码如下:
#includestdio.h
#includemath.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泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加
对sin函数求"不定积分",用C语言如何实现???1.
c语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解 , 最后用循环,累加计算出最终结果
2.
下面用for循环实现sin的算法,程序代码如下:
#include
#include
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泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加
C语言求正弦函数的极值点,下面的程序输入的大一些会死循环,求解释楼主的算法在数学上是没有问题的,但在计算机上就不一样了.
x和x h完全可能相等,
当x h==x 0并且y(x-h)==y(x h),然后就是死循环了.
建议楼主把程序中的float都换为double再试一试.
或者把y(x-h)y(x h)换成y(x-h)=y(x h).
再者,我搞不明白bool
bRet存在的意义是什么,望楼主释疑.
【c语言sin函数循环 在c语言中sin函数的实现】c语言sin函数循环的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于在c语言中sin函数的实现、c语言sin函数循环的信息别忘了在本站进行查找喔 。

    推荐阅读