三角函数把角映射为边长比:正弦、余弦、正切及其三个倒数。本节从直角三角形定义出发,升级到单位圆定义,推导同角关系与诱导公式,并用正弦定理解出测塔任务的检验值。它是第四章的心脏,也是全册"角与边互相换算"的规则手册。
直角三角形里,一旦锐角 θ 确定,三角形的形状就定了(相似判定 AA:直角 + θ 用掉了两个角)。形状定了,任何两边之比也就定了——不管三角形是火柴盒大小还是山头大小。这是三角学的根基事实:角唯一决定边比。把三个基本比命名:
再加三个倒数:余割、正割、余切。勾股定理立刻给出最重要的同角关系:sin 平方 θ + cos 平方 θ = 1(对边平方加邻边平方 = 斜边平方,两边同除斜边平方)。
特殊角手算表:45 度直角三角形两直角边相等,设为 1,斜边根号 2,sin 45 = cos 45 = 根号2/2,tan 45 = 1。30-60-90 三角形(斜边 2、短直角边 1、长直角边根号 3):sin 30 = 1/2,cos 30 = 根号3/2,tan 30 = 根号3/3。
>>> from sympy import sin, cos, tan, sqrt, pi, simplify >>> [simplify(sin(x)) for x in (pi/6, pi/4, pi/3)] [1/2, sqrt(2)/2, sqrt(3)/2] >>> [simplify(tan(x)) for x in (pi/6, pi/4, pi/3)] [sqrt(3)/3, 1, sqrt(3)] >>> simplify(sin(pi/4)**2 + cos(pi/4)**2) 1
三行验证:特殊角值与勾股恒等式全部精确成立。
直角三角形定义管不了钝角和负角。换单位圆:角 θ 的终边与单位圆交于点 (x, y),则 cos θ = x,sin θ = y。锐角时终边在第一象限,交点坐标恰与三角形比一致(斜边 = 半径 1,邻边 = 横坐标,对边 = 纵坐标);钝角、负角、超一圈的角统一被这套定义接管。终边相同的角函数值相同——周期性的来源就在这里。
从坐标定义顺手读出符号规律:"ASTC"(全正、正弦、正切、余弦):第一象限全正,第二只有正弦正,第三只有正切正,第四只有余弦正。
诱导公式(把任意角化归为锐角)最值得记的两组:
手推第二组:角 -θ 的终边与 θ 关于横轴镜像,交点坐标从 (x, y) 变 (x, -y),按定义正弦变号、余弦不变。
>>> from sympy import sin, cos, pi, symbols, simplify, trigsimp >>> t = symbols('t', real=True) >>> trigsimp(sin(t)**2 + cos(t)**2) # 勾股恒等式 1 >>> simplify(sin(-t) + sin(t)) 0 >>> trigsimp(sin(pi/2 - t) - cos(t)) # 余角公式 0
任意三角形(不只直角)的边角换算靠两条定理:
手推正弦定理的面积法:三角形面积 = (1/2)ab·sin C = (1/2)bc·sin A = (1/2)ca·sin B,三式各除以 (1/2)abc 即得。
测塔任务的检验:换个法子测——不量仰角,改为在塔正对面取两点 A、B 相距 20 米,在 A 测得塔顶仰角 35 度、在 B 测得 28 度。塔高 h 满足:水平距离 xA = h/tan35,xB = h/tan28,且 xA − xB = 20。解出 h = 20 ÷ (1/tan28 − 1/tan35)。
>>> import math >>> h = 20 / (1/math.tan(math.radians(28)) - 1/math.tan(math.radians(35))) >>> h 25.470976846537034
双站法给出 25.47 米,与 4.1 单站法的 25.17 米相差 0.3 米(约 1.2%)——两种独立方法交叉验证,误差量级正是量角器精度所能解释的。工程测量正是靠这种冗余压制误差。
💡 关键直觉:三角函数是"形状的价格表"——知道角度就能查到边比,知道边比就能反查角度。反查(arcsin、arccos、arctan)在下一节图像部分正式出场。
已知两边 b = 7、c = 8 与夹角 A = 60 度,求第三边与其余角。余弦定理:a 平方 = 49 + 64 − 2×7×8×cos60 = 113 − 56 = 57,a = 根号 57 ≈ 7.55。再用正弦定理求角 B:sin B = 7×sin60 ÷ 根号57 ≈ 0.803,B ≈ 53.4 度;角 C = 180 − 60 − 53.4 = 66.6 度。三边三角到账——"两边夹一角"是余弦定理主场,"两角一边"是正弦定理主场,选对工具省一半力气。
>>> import math >>> a = math.sqrt(49 + 64 - 2*7*8*math.cos(math.radians(60))) >>> B = math.degrees(math.asin(7*math.sin(math.radians(60))/a)) >>> round(a, 4), round(B, 2), round(180 - 60 - B, 2) (7.5498, 53.4, 66.6)
问:正弦定理算角为什么可能两解?
答:sin B 的值对应 B 与 180−B 两个候选(正弦在第一、二象限同值)。"两边与其中一边的对角"(SSA)时两解都可能合法,要画图排查——与全等判定的 SSA 缺陷同根同源。
定义有了,下一节把这些函数画出来——曲线一现形,周期、振幅、相移一目了然。