正弦定理与两解的来历
三角形有六个元素:三条边 、、 与三个内角 、、,边 对角 。这六个量之间只有三个自由度,给定三个(三个角除外,那只定形状不定大小)就该能把余下三个算出来。完成这件事的工具是两条定理,本页处理其中管「边与它的对角」的那一条。
1 · 边与对角之比
在 中过 向 作垂线,垂足记作 。 在两个直角三角形里各有一种写法:,也等于 。两式相等,两端同除以 ,得 。换一条高再来一次,第三个比值也接上。
定理 1.1(正弦定理) 在任意三角形中 ,其中 是外接圆半径。
垂线落在 之外(有一个内角为钝角时)也不影响推导:那时 的值由诱导公式给出, 把符号补回来。所以正弦定理对锐角与钝角三角形一体适用。
公共值等于 这一层来自圆周角定理。把 所对的圆周角 挪到以 为直径端点的位置,得到一个直角三角形, 是它的斜边、 是外接圆直径,由此得 。这一层在正弦定理的常见叙述里常被省掉,但它是「已知两角一边求外接圆半径」这类题的全部依据。
2 · 边角互化的两个方向
定理 1.1 是一条等式,两个方向都能用。把边换成角:,含 、、 的齐次式便可整体换成含 、、 的式子, 约掉。把角换成边则是反向。
由 立刻得到一条判据: 当且仅当 。这条等价只在三角形内部成立,一般的角并不满足—— 与 的正弦分别是 与 ,角大而正弦小。三角形里之所以成立,是因为三个内角中至多一个是钝角。
3 · 已知条件的类型与对应的定理
| 已知 | 记法 | 用哪条定理 | 解的组数 |
|---|---|---|---|
| 两角及夹边 | ASA | 内角和补第三角,再用正弦定理 | |
| 两角及一角的对边 | AAS | 同上 | |
| 两边及其中一边的对角 | SSA | 正弦定理 | 、 或 |
| 两边及夹角 | SAS | 余弦定理 | |
| 三边 | SSS | 余弦定理 |
前两类只差一步内角和的换算,本质是同一件事。后两类交给 余弦定理与边角互化。真正需要单独讨论的只有 SSA。
4 · 两解的几何来历
SSA 的麻烦出在反解上:正弦定理给出 ,而 内满足同一个正弦值的角有两个,互为补角。哪个成立、是否都成立,要用内角和 逐个检验。检验的结果可以压成一句:两组解只出现在已知角对着两条已知边中较短的那条、且该角为锐角时。
把这件事画出来更直接。顶点 放在原点, 放在 ,则角 的另一条边是一条过原点、倾角为 的射线;顶点 必须落在这条射线上,且到 的距离为 。于是解的个数就是「以 为心、半径 的圆」与「这条射线」的交点个数:不相交无解,相切一解,相交两解。
两组解共用一个外接圆:
只由已知量决定,与选了哪个
无关。取
、、,两组解的
分别是
与
,而
算出来是 8.000000000000002 与 7.999999999999999,
是 8.000000000000002——三个数只在末位上不同。
警示 · 相切那条分界线在双精度下并不给出「恰好一解」。取
、、,数学上
、、圆与射线相切。实测 5 * Math.sin(Math.PI / 6) 算出的是 2.4999999999999996 而不是 2.5,于是
,反解得 89.99999879258174° 与 90.00000120741826° 两个候选,两者都通过内角和检验。换那条独立的几何路线也一样:圆与射线的判别式算出 3.55e-15 而不是零,两个交点参数相差 1.19e-7。两条路线一致地多数出一个,故
triangle.test.ts 里那条断言写的是「两条路线给出的个数一致」,而不是「恰好一解」——把切点情形当作可判定的分类,本身就是浮点下做不到的事。
5 · 参考文献
- Law of sines. Wikipedia. 正弦定理的多种证明、外接圆形式与两解情形。https://en.wikipedia.org/wiki/Law_of_sines
- Solution of triangles. Wikipedia. 已知元素的各种组合各用哪条定理、各有几组解。https://en.wikipedia.org/wiki/Solution_of_triangles
- Circumscribed circle. Wikipedia. 外接圆与外心, 的几何来历。https://en.wikipedia.org/wiki/Circumscribed_circle
- Law of Sines. Wolfram MathWorld. 定理的等价形式与推论清单。https://mathworld.wolfram.com/LawofSines.html
- Law of tangents. Wikipedia. 正切定理,对数表时代解三角形的主力公式。https://en.wikipedia.org/wiki/Law_of_tangents