打印
[STM32F1]

用c语言编正弦函数计算

[复制链接]
519|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ulystronglll|  楼主 | 2024-6-30 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、C语言中要编写62616964757a686964616fe58685e5aeb931333337613837sin函数,实质上要利用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泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加。


使用特权

评论回复
沙发
wang6623| | 2024-6-30 14:59 | 只看该作者
泰勒级数

变量定义和输入:

x:待计算正弦值的角度(以弧度为单位)。
sum:用于累加泰勒级数各项的和。
a:泰勒级数中当前项的分子。
b:泰勒级数中当前项的分母。
s:每一项的符号,交替为正负。

使用特权

评论回复
板凳
wang6623| | 2024-6-30 15:00 | 只看该作者
输入角度值:

用户通过输入函数输入一个角度值 x,然后计算其正弦值的近似值。

使用特权

评论回复
地板
理想阳| | 2024-6-30 15:26 | 只看该作者
你这个写法奇怪的。

使用特权

评论回复
5
suncat0504| | 2024-6-30 21:54 | 只看该作者
没有专用的数学库吗?精确度如何?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

1206

帖子

1

粉丝