强基初中数学&学Python——第九十二课 函数与方程之三十六:(旋转)三角函数

 

  我们知道,角度也可以用来表示旋转运动。把半径为1的圆的周长()定为1周的旋转角的大小——弧度制。我们现在用的1小时有60分钟,1分钟有60秒,实际上是已经有超过4000年历史的60进制。可能开始人们先把周角分60份,每份再分60份来度量旋转角的大小,后来发现周角分60份太大(因为在古代旋转角基本只用于天文观测,这样瓜分周角意义不大。),干脆取消这一层的单位,于是1周角分360份作为旋转角的单位——角度制,一直沿用至今。它们的转换关系是

弧度制值=角度制值÷180×π

角度制值=弧度制值÷π×180

在科学计算中统一使用弧度制(Pythonmath模块默认弧度制),在日常计算中一般使用角度制,在我们做数学题时,题目用什么制就用什么制答题,除非有明确的要求。

  为了把锐角三角函数扩展到(旋转)三角函数,我们把旋转角的顶点与原点重合,开始射线与x轴正向重合,终止射线离顶角距离>0的地方取一点,这一点与它到x轴的垂点及原点构成一个直角三角形,用这一点的坐标值代替相应的直角边就得到(旋转)三角函数(分母为0点要排除)。如下图(作图代码附录1)。

 

  例题1已知旋转角β=660°,求sinβcosβtanβcotβsecβcscβ的值。

解:

660 mod 360 = 300

300 ÷ 90 = 3 30

β在第四象限(x>0, y<0),与x轴构成的直角三角形中顶点在原点的角

∠0=90°-30°=60°

sinβ=-sin60°=-sqrt(3)/2

cosβ=cos60°=1/2

tanβ=-tan60°=-sqrt(3)

cotβ=-cot60°=-sqrt(3)/3

secβ=sec60°=1/cos60°=2

cscβ=csc60°=1/sin60°=2sqrt(3)/3

  例题2已知旋转角β满足sinβ=sqrt(3)/2cosβ=-1/2,求β的最小值。

解:由于sinβ>0cosβ<0,得转角β在第二象限,终止线与x轴夹的锐角

C=arcsin(sqrt(3)/2)=60°

所以

β的最小正值=180°-β'=120°

β的最大负值=-360°+β的最小正值=-360°+120°=-240°

  在直角坐标系统作y=sinxy=cosxy=tanxy=cotxy=secxy=cscx的图象(忽略除数为0的情况)。

 

 

 

 

 

 

  由这些图象可以看到,三角函数都是周期函数,正弦函数y=sinx、余弦函数y=cosx、正割函数y=secx、余割函数y=cscx的周期都是360°);正切函数y=tanx、余切函数y=cotx的周期都是180°π

 

  练习题1已知旋转角β=1320°,求sinβcosβtanβcotβsecβcscβ的值。

  练习题2已知旋转角β满足sinβ=-1/2cosβ=-sqrt(3)/2,求β的最小正值和最大负值。

 

 

附录1

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
import turtle as t
t.setup(500,500)
t.screensize(400,400)  
t.up()
build(t,xUnt=(1,210),yUnt=(1,210))
t.pensize(2)
t.pencolor("red")
t.fillcolor("red")
t.setpos(0,0)
t.seth(0)
t.down()
t.fd(200)
t.stamp()
t.up()
a=30
num=0
for i in [1,5,7,11]:
    r=20+num*40
    num+=1
    b=i*a;
    t.setpos(r,0)
    t.seth(90)
    t.down()
    t.pensize(1)
    t.pencolor("black")
    t.fillcolor("black")
    t.circle(r,b//2)
    t.up()
    pos=t.pos()
    t.setpos(pos[0]+10,pos[1]-5)
    t.write("∠"+str(num),font=("Arial", 14, "normal"))
    t.setpos(pos)
    t.down()
    t.circle(r,b//2)
    t.stamp()
    t.up()
    t.setpos(0,0)
    t.seth(b)
    t.down()
    t.pensize(2)
    t.pencolor("red")
    t.fillcolor("red")
    t.fd(180)
    pos=t.pos()
    t.dot(5)
    t.fd(20)
    t.stamp()
    t.up()   
    if num==1:
        t.seth(-90)
        t.setpos(pos[0]+5,pos[1]-25)
        t.write("(a, b)",font=("Arial", 14, "normal"))
    elif num==2:
        t.seth(-90)
        t.setx(pos[0]+5)
        t.write("(-a, b)",font=("Arial", 14, "normal"))
    elif num==3:
        t.seth(90)
        t.setpos(pos[0]+5,pos[1]-25)
        t.write("(-a, -b)",font=("Arial", 14, "normal"))
    else:
        t.seth(90)
        t.setpos(pos[0]+5,pos[1]+5)
        t.write("(a, -b)",font=("Arial", 14, "normal"))   
    t.up()
    t.setpos(pos)
    for i in range(0,90,10):
        t.down()
        t.fd(5)
        t.up()
        t.fd(5)
t.ht()

 

附录2

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import *
import turtle as t
t.setup(900,500)
t.screensize(800,400)  
t.up()
build(t,xUnt=(90,90),yUnt=(1,100))
t.setpos(0,210)
t.write("正弦函数y=sinx图象",align="center", font=("Arial", 14, "normal"))   
t.setpos(0,-225)
t.write("作图代码附录2",align="center", font=("Arial", 14, "normal"))   
def f(x):
    return sin(x*pi/180)
t.pensize(2)
t.pencolor("red")
trace(t,-400,400,f)
t.ht()

 

附录3

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import *
import turtle as t
t.setup(900,500)
t.screensize(800,400)  
t.up()
build(t,xUnt=(90,90),yUnt=(1,100))
t.setpos(0,210)
t.write("余弦函数y=cosx图象",align="center", font=("Arial", 14, "normal"))   
t.setpos(0,-225)
t.write("作图代码附录3",align="center", font=("Arial", 14, "normal"))   
def f(x):
    return cos(x*pi/180)
t.pensize(2)
t.pencolor("red")
trace(t,-400,400,f)
t.ht()

 

附录4

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import *
import turtle as t
t.setup(900,500)
t.screensize(800,400)  
t.up()
build(t,xUnt=(90,90),yUnt=(1,10))
t.setpos(0,210)
t.write("正切函数y=tanx图象",align="center", font=("Arial", 14, "normal"))   
t.setpos(0,-225)
t.write("作图代码附录4",align="center", font=("Arial", 14, "normal"))   
def f(x):
    return tan(x*pi/180)
t.pensize(2)
t.pencolor("red")
trace(t,-400,-270,f)
trace(t,-269.05,-90,f)
trace(t,-89.05,90,f)
trace(t,90.05,270,f)
trace(t,270.05,400,f)
t.ht()

附录5

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import *
import turtle as t
t.setup(900,500)
t.screensize(800,400)  
t.up()
build(t,xUnt=(90,90),yUnt=(1,10))
t.setpos(0,210)
t.write("余切函数y=cotx图象",align="center", font=("Arial", 14, "normal"))   
t.setpos(0,-225)
t.write("作图代码附录5",align="center", font=("Arial", 14, "normal"))   
def f(x):
    _t=x*pi/180
    return cos(_t)/sin(_t)
t.pensize(2)
t.pencolor("red")
trace(t,-400,-360,f)
trace(t,-359.05,-180,f)
trace(t,-179.05,0,f)
trace(t,0.05,180,f)
trace(t,180.05,360,f)
trace(t,360.05,400,f)
t.ht()

附录6

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import *
import turtle as t
t.setup(900,500)
t.screensize(800,400)  
t.up()
build(t,xUnt=(90,90),yUnt=(1,10))
t.setpos(0,210)
t.write("正割函数y=secx图象",align="center", font=("Arial", 14, "normal"))   
t.setpos(0,-225)
t.write("作图代码附录6",align="center", font=("Arial", 14, "normal"))   
def f(x):
    return 1/cos(x*pi/180)
t.pensize(2)
t.pencolor("red")
trace(t,-400,-270,f)
trace(t,-269.05,-90,f)
trace(t,-89.05,90,f)
trace(t,90.05,270,f)
trace(t,270.05,400,f)
t.ht()

 

附录7

import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import *
import turtle as t
t.setup(900,500)
t.screensize(800,400)  
t.up()
build(t,xUnt=(90,90),yUnt=(1,10))
t.setpos(0,210)
t.write("余割函数y=cscx图象",align="center", font=("Arial", 14, "normal"))   
t.setpos(0,-225)
t.write("作图代码附录7",align="center", font=("Arial", 14, "normal"))   
def f(x):
    return 1/sin(x*pi/180)
t.pensize(2)
t.pencolor("red")
trace(t,-400,-360,f)
trace(t,-359.05,-180,f)
trace(t,-179.05,0,f)
trace(t,0.05,180,f)
trace(t,180.05,360,f)
trace(t,360.05,400,f)
t.ht()