
您好,是这样的:泰勒展开是这个:sinx=x-x^3/3!+x^5/5!-
下面给出算20项的程序。
#include"mathh"
#include"stdioh"
void main()
{
double x=0,y=0,z=1,s=1,mynum=0;
int i=1 ,j=0, k=1;
scanf("x=%f",&x);
for(i=1;i<20;i++)
z=1;k=1;
for(j=1;j<=2i-1;j++)
{
z=xz;//算j次方
k=kj;//算阶乘}
s=-jpow(-1,i);//pow(a,b)是a的b次方
z=zs/k;
mymun=mynum+z;
}
printf("sinx=x-x^3/3!+x^5/5!-");
printf("sinx=%f",mynum);
getch();
}
根据泰勒公式:
sin(x)=x-x^3/3!+x^5/5!+……+(-1)^(n-1)x^(2n-1)/(2n-1)
可以使用迭代法来求sin了,如果需要精度计算,则需要bigdecimal工具来保存精确的浮点数
你这种写法是弧度制的sin120和cos60,程序如下:
这就是先把120和60分别赋值给D0和D20,然后将整数转换成二进制浮点数,在进行三角运算。
但是感觉你这个用的是120和60,你的意思应该是角度制的sin120°和con60°才是呀,那就是下面这个:
先把角度换算成弧度,也就是60°=π/3保存到D0中,120°=260°=2π/3保存到D20中,然后在将D0和D20中的十进制浮点数转化称为二进制浮点数,然后在进行三角运算。
望采纳。。。。。
首先:程序应该这样改!
#include<stdioh>
#include<mathh>
main()
{
double n;
double b,c;
scanf("%lf",n);
b=sin(n);
c=cos(n);
printf("%2lf\n%2lf",b,c);
return 0;
}
其次,这里的n是弧度值,你说的90度应该输入的是pi/2,而不是90,如果希望输入90的话,那就这样改!
#include<stdioh>
#include<mathh>
main()
{
int s;
double n,b,c;
scanf("%d",s);
n=3(s/1800);
b=sin(n);
c=cos(n);
printf("%2lf\n%2lf",b,c);
return 0;
}
以上就是关于c语言编程求sinx的近似值(泰勒展开)全部的内容,包括:c语言编程求sinx的近似值(泰勒展开)、java计算机程序中sin如何实现、用plc编写梯形图程序求sin120和cos60等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)