c语言编程求sinx的近似值(泰勒展开)

c语言编程求sinx的近似值(泰勒展开),第1张

您好,是这样的:泰勒展开是这个: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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9840526.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存