C语言中sin、asin、sinh三角函数对比

C语言中的三角函数都是弧度制


三角函数是以角求值,反三角函数是以值求角

余弦函数cos(π) = -1,对应的反余弦函数arccos(-1) = π

因为C语言中没有定义π,所以本文使用反余弦函数arccos(-1)来准确表示π,arccos(-1)在C语言中写为acos(-1)

因为日常使用最多的是角度,所以需要把角度转换为弧度,绕圆一周是360°,对应2π弧度

将2π弧度分为360份,每一份代表1°对应的弧度(角度转弧度)

2 π 360 = π 180 \frac{2π}{360}=\frac{π}{180} 3602π=180π

30°对应的弧度如下所示,将π替换为arccos(-1)

30 ° = 30 ∗ π 180 = 30 ∗ a r c c o s ( − 1 ) 180 = π 6 30°=30*\frac{π}{180} =30*\frac{arccos(-1)}{180}= \frac{π}{6} 30°=30180π=30180arccos(1)=6π

角度转弧度表示为 角度*acos(-1)/180,即30*acos(-1)/180


反过来 弧度转角度,取倒数即可

360 2 π = 180 π \frac{360}{2π}=\frac{180}{π} 2π360=π180

π/6 对应的角度如下所示

π 6 = π 6 ∗ 180 π ° = a r c c o s ( − 1 ) 6 ∗ 180 a r c c o s ( − 1 ) ° = 30 ° \frac{π}{6}=\frac{π}{6}*\frac{180}{π}°=\frac{arccos(-1)}{6}*\frac{180}{arccos(-1)}°=30° 6π=6ππ180°=6arccos(1)arccos(1)180°=30°

弧度转角度表示为弧度*180/acos(-1) ,即acos(-1)/6*180/acos(-1)



1、正弦函数 sin(x)

头文件 #include<math.h>

函数原型 double __cdecl sin(double _X);

函数定义域 (-∞,+∞)

函数值域 [-1,1]

sin图像

示例程序

#include<stdio.h>
#include<math.h>
int main()
{
	//参数中的角度转弧度【 角度*π/180 ,即 角度*acos(-1)/180 】
	printf("%f\n", sin(0*acos(-1)/180) );	//0°   ~ 0
	printf("%f\n", sin(30*acos(-1)/180) );	//30°  ~ 1/2 
	printf("%f\n", sin(60*acos(-1)/180) );	//60°  ~ (√3)/2
	printf("%f\n", sin(90*acos(-1)/180) );	//90°  ~ 1
	printf("%f\n", sin(120*acos(-1)/180) );	//120° ~ (√3)/2
	printf("%f\n", sin(150*acos(-1)/180) );	//150° ~ 1/2 
	printf("%f\n", sin(180*acos(-1)/180) );	//180° ~ 0
	printf("%f\n", sin(210*acos(-1)/180) );	//210° ~ -(1/2)
	printf("%f\n", sin(240*acos(-1)/180) );	//240° ~ -((√3)/2)
	printf("%f\n", sin(270*acos(-1)/180) );	//270° ~ -1
	printf("%f\n", sin(300*acos(-1)/180) );	//300° ~ -((√3)/2)
	printf("%f\n", sin(330*acos(-1)/180) );	//330° ~ -(1/2)
	printf("%f\n", sin(360*acos(-1)/180) );	//360° ~ -0
	return 0;
}

运行截图

sin输出



2、反正弦函数 asin(x) [数学表示为arcsin(x)]

头文件 #include<math.h>

函数原型 double __cdecl asin(double _X);

函数定义域 [-1,1]

函数值域 (-∞,+∞)

arcsinx

示例程序

#include<stdio.h>
#include<math.h>
int main()
{
	//asin()返回值得到的弧度转角度【 弧度*180/π ,即 弧度*180/acos(-1) 】
	printf("%f\n", asin(-1)*180/acos(-1) );			// -1         ~ -90°
	printf("%f\n", asin(-sqrt(3)/2)*180/acos(-1) );	// -((√3)/2)  ~ -60°
	printf("%f\n", asin(-1.0/2)*180/acos(-1) );		// -(1/2)     ~ -30°
	printf("%f\n", asin(0)*180/acos(-1) );			// 0          ~ 0°
	printf("%f\n", asin(1.0/2)*180/acos(-1) );		// (1/2)      ~ 30°
	printf("%f\n", asin(sqrt(3)/2)*180/acos(-1) );	// (√3)/2     ~ 60°
	printf("%f\n", asin(1)*180/acos(-1) );			// 1          ~ 90°
	return 0;
}

运行截图

arcsin输出



3、双曲正弦函数 sinh(x)

头文件 #include<math.h>

函数原型 double __cdecl sinh(double _X);

函数表达式:(其中e是自然对数的底)

s i n h ( x ) = e x − e − x 2 sinh(x)=\frac{e^x-e^{-x}}{2} sinh(x)=2exex

函数定义域 (-∞,+∞)

函数值域 (-∞,+∞)

sinh

示例程序

#include<stdio.h>
#include<math.h>
int main()
{
	printf("%f\n", sinh(-30) );	
	printf("%f\n", sinh(-10) );	
	printf("%f\n", sinh(-1) );
	printf("%f\n", sinh(0) );
	printf("%f\n", sinh(1) );
	printf("%f\n", sinh(10) );
	printf("%f\n", sinh(30) );
	return 0;
}

运行截图

在这里插入图片描述

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

AN_drew

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值