我们知道,角度也可以用来表示旋转运动。把半径为1的圆的周长(2π)定为1周的旋转角的大小——弧度制。我们现在用的1小时有60分钟,1分钟有60秒,实际上是已经有超过4000年历史的60进制。可能开始人们先把周角分60份,每份再分60份来度量旋转角的大小,后来发现周角分60份太大(因为在古代旋转角基本只用于天文观测,这样瓜分周角意义不大。),干脆取消这一层的单位,于是1周角分360份作为旋转角的单位——角度制,一直沿用至今。它们的转换关系是
弧度制值=角度制值÷180×π,
角度制值=弧度制值÷π×180。
在科学计算中统一使用弧度制(Python的math模块默认弧度制),在日常计算中一般使用角度制,在我们做数学题时,题目用什么制就用什么制答题,除非有明确的要求。
为了把锐角三角函数扩展到(旋转)三角函数,我们把旋转角的顶点与原点重合,开始射线与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)/2,cosβ=-1/2,求β的最小值。
解:由于sinβ>0,cosβ<0,得转角β在第二象限,终止线与x轴夹的锐角
C=arcsin(sqrt(3)/2)=60°,
所以
β的最小正值=180°-β'=120°,
β的最大负值=-360°+β的最小正值=-360°+120°=-240°.
在直角坐标系统作y=sinx、y=cosx、y=tanx、y=cotx、y=secx、y=cscx的图象(忽略除数为0的情况)。
由这些图象可以看到,三角函数都是周期函数,正弦函数y=sinx、余弦函数y=cosx、正割函数y=secx、余割函数y=cscx的周期都是360°(2π);正切函数y=tanx、余切函数y=cotx的周期都是180°(π)。
练习题1:已知旋转角β=1320°,求sinβ、cosβ、tanβ、cotβ、secβ、cscβ的值。
练习题2:已知旋转角β满足sinβ=-1/2,cosβ=-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()