golang 求两个数最小值_数与图(21)——三角函数

本文探讨了三角函数,尤其是正弦、余弦和正切函数的周期性和振幅概念。通过App Inventor,作者展示了如何编程绘制这些函数的图像,解释了如何调整振幅、角频率和初相位以观察其对函数曲线的影响。此外,还讨论了正切函数在接近90度时函数值趋向无穷大的特性,并展示了如何绘制正切函数的周期图像。
摘要由CSDN通过智能技术生成

在此前的《数与图》系列文章中,我们讨论最多的是由幂函数组成的多项式函数,包括函数的图像、求导数、求积分,甚至还利用二次函数完成了一个机器学习的案例。除此之外,我们还讨论了圆、椭圆及双曲线函数,并绘制了相应的图像。本文即将讨论的三角函数,与之前的各种函数最大的不同是,三角函数具有周期性。本文的目标是绘制正弦、余弦及正切函数的曲线,并讨论周期、振幅等概念。

三角函数的定义源自三角形,它体现了直角三角形中角与边之间的关系,如图1所示。

9c7b7db92549b4c5e8c7740a71a94397.png

图1 三角函数的定义

想象图1中的斜边c从零度角开始逆时针旋转,当θ=0度时,a=0,b=c,因此sinθ=0,cosθ=1;随着θ增加,a逐渐增加,b逐渐减小,当θ=90度时,a=c,b=0,因此sinθ=1,cosθ=0;随着角度的继续增大,当θ=180度时,a=0,b=-c,因此sinθ=0,cosθ=-1;当θ=270度时,a=-c,b=0,因此sinθ=-1,cosθ=0;当θ旋转到360度时,斜边c重新回到0度,如此周而复始地旋转,角度不断增加,而sinθ和cosθ的值永远在-1到+1之间循环,这就是函数周期性的来历。对于sinθ及cosθ来说,它们的周期就是360度,而tanθ的周期则是180度。

角θ的度量可以用角度,也可以用弧度,角度与弧度之间的换算关系是

1ebaf2179efa5fc5d28c087c0106a07d.png

标准的正弦函数写作

 cb1fdc9e84cc1dc16662560b42729d5e.png

其中A称为振幅,它决定了函数的最大值/最小值;ω称为角频率,它决定函数的周期,当ω=1时,函数的周期为2π(360°),当ω=2时,函数的周期为π(180°)。φ称为初相位,它决定函数图像在x轴上的平移量。

在App Inventor的内置块分组中,数学代码块里包含了正弦、余弦及正切块,它们接受的数值单位为角度,我们将分别使用这些块来计算函数值,并绘制函数图像。

一、正弦函数

为了绘制函数图像,需要确定自变量x及函数值y的取值范围。由于正弦、余弦函数的周期为360度,为了能够绘制两个周期的图像,x轴的最小值设为-400,最大值设为400;y值则取-4到4。将《数与图(20)》中的项目另存为“三角函数”,并重新设置绘图数据。重新命名项目中的按钮,并重新设置其显示文本属性。在屏幕下方添加两个水平布局组件,再分别向两个水平布局中添加三个标签、三个文本输入框(仅限数字),相关设置如图2所示。

a7724c952e0c18dd95bb33da07149d76.png

图2 修改用户界面

下面开始编写程序。

1、声明全局变量

声明两个全局变量——颜色列表及颜色索引值,代码如图3所示。

72d6d3dfab4867eaac6f05e0678e45fc.png

图3 声明全局变量

2、创建过程

创建一个过程——求正余弦函数坐标列表,代码如图4所示。

e7ac973b9caa6a3ea5337d3490af87de.png

图4 创建过程——求正余弦函数坐标列表

3、编写事件处理程序

编写正弦按钮的点击事件处理程序,代码如图5所示。

0f78728ff7b1871afca2343b25351019.png

图5 正弦及余弦按钮的点击事件处理程序

4、测试

依次修改振幅、角频率及初相位,然后点击绘制正弦曲线,观察曲线的变化。测试结果如图6所示。

32ddf44790dab501c27040aefa8a5ff8.png

图6 程序的测试结果

图6中共有7条曲线,按照赤橙黄绿青蓝紫的顺序,它们依次表示下列函数

1d4613e2b15af8ad76d4ff21cde176ef.png 

读者可以也可以自行测试,观察振幅、角频率及初相位对函数曲线的影响。

二、余弦函数

这里只需要编写余弦按钮的点击事件处理程序,其实它与正弦按钮的程序几乎完全相同,只差一个参数——余弦。此时应该创建一个过程,来避免代码的复制粘贴,最终的代码如图7所示。

4dc4af252030091273a21b85eca77929.png

图7 创建并调用过程——绘制正余弦曲线

测试结果如图8所示。

99d5db3dc988e01f56a5b01cee65bffe.png

图8 绘制余弦曲线的结果

这次绘制了6条曲线,其中红色曲线的函数为y=cosx,蓝色曲线的函数为y=4cos(x-90),其他曲线请读者给出它们的函数表达式。

三、正切函数

与正弦、余弦函数不同的是,函数y=tanx的周期为180°,而且当x趋近于±90°时,函数值趋近于无穷大:当x从±90°的左侧趋近时,tanx趋近于正无穷,当x从±90°的右侧趋近时,tanx的值趋近于负无穷。基于上述特点,无法连续绘制各个周期中tanx的图像,因此需要单独绘制每个周期中的图像。

创建一个有返回值过程——y不出界,再创建一个无返回值过程——求正切函数坐标列表,代码如图9所示。

564670d88c2ddf3f190eb1ff17b2120a.png

图9 创建两个过程

然后编写正切按钮的点击事件处理程序,代码如图10所示。

3f725a57e161f384853c51bd2313300e.png

图10 正切按钮的点击事件处理程序

在测试之前,需要修改用户界面上的绘图参数,将y的最大值改为10,最小值改为-10,主间距为2,辅间距为0.4,然后进行测试。测试结果如图11所示。

603090c2c88daaf6cbbf165f32ef4d3e.png

图11绘制正切曲线的测试结果

以上我们用程序绘制了三种三角函数的曲线,其中的正弦、余弦曲线呈现出波的形式,这种简单而优美的曲线,恰好与物理学中的简谐振动相对应,例如钟摆的运动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值