跳到正文
格致开物MATHWIKI

海伦公式

海伦公式(Heron's formula)由三角形的三条边直接计算面积。如果边长为 a,b,c,半周长为 s=(a+b+c)/2,则面积 Δ=s(sa)(sb)(sc). 它不需要预先知道高或角度,但边长必须能够组成三角形。公式里的四个因子为什么会出现,可以从余弦定理和底乘高的面积公式一步步推出。

三边十三、十四、十五,面积是多少

设三角形 ABC 的边长为 a=BC=13,b=CA=14,c=AB=15. 每个小写字母表示对应大写顶点的对边。长度使用同一单位,面积则使用该单位的平方。

先检查三边能否合拢成三角形。三条边都是正数,且最长边十五小于另外两边之和二十七,所以满足严格三角形不等式。半周长为 s=13+14+152=21. 四个因子依次是 21,8,7,6,因此 Δ=21876=7056=84. 答案是八十四平方单位;根号内是四个长度的乘积,量纲为长度的四次方,开平方后正好是面积。

可以用高独立检查一次。从 CAB 作垂线,垂足为 D。两个直角三角形满足 AD2+CD2=142,(15AD)2+CD2=132. 相减消去高,得到 22530AD=27,所以 AD=425,CD=142(425)2=565. 于是底乘高再除以二为 Δ=1215565=84.

边长十三十四十五的三角形,以十五为底,高为五十六除五,垂足将底分成四十二除五与三十三除五,面积为八十四
海伦公式与底乘高得到同一面积;高可以由三边求出,只是不必每次另算。

这也解释了三边为何足够:在欧氏平面中,三边确定三角形的形状与大小,镜像放置不会改变面积。四边形没有同样的结论:四条单位长度的边既能组成面积一的正方形,也能组成内角三十度、面积二分之一的菱形。只知道边数相应的长度,不一定足以确定面积。

从夹角面积到只含三边的表达式

现在暂时回到一般三角形。约定 A 为边 b,c 的内夹角,面积为 Δ。以 c 作底时,高为 bsinA,所以 Δ=12bcsinA. 非退化三角形有 0<A<π,正弦为正。即使角 A 为钝角,高落在底边延长线上,bsinA 仍是正的垂直高度;这里没有要求三角形为锐角。

由余弦定理, cosA=b2+c2a22bc. 我们希望消去角度,因而先将面积平方,再使用 sin2A=1cos2A4Δ2=b2c2sin2A=b2c2(1cos2A). 把余弦的边长表达式代入,得到 4Δ2=b2c2(b2+c2a2)24. 两边乘四,便只剩边长: 16Δ2=4b2c2(b2+c2a2)2. 右侧已经能计算面积,但三个边长的地位还不明显。接下来的因式分解会显出它的对称性。

两次平方差,得到四个长度因子

4b2c2 看作 (2bc)2。第一次使用平方差公式: 16Δ2=[2bc(b2+c2a2)][2bc+(b2+c2a2)]. 第一个括号中,2bcb2c2=(bc)2;第二个括号中,2bc+b2+c2=(b+c)2。所以 16Δ2=[a2(bc)2][(b+c)2a2]. 再对两个括号各用一次平方差: 16Δ2=(ab+c)(a+bc)(b+ca)(a+b+c). 现在令 s=(a+b+c)/2。逐个对应, a+b+c=2s,b+ca=2(sa), ab+c=2(sb),a+bc=2(sc). 四个二相乘产生十六,与等号左边的十六相消,得到 Δ2=s(sa)(sb)(sc). 面积非负,取正平方根,便是海伦公式。OpenStax《Precalculus 2e》§8.2:余弦定理与海伦公式

回看十三、十四、十五:余弦定理先给出 cosA=3/5,从而 sinA=4/5,面积仍为 1415(4/5)/2=84。三种计算并不互相独立地创造不同面积,而是在消去高或角度后表达同一关系。

半周长减一边,有没有几何意义

在三角形内作与三边都相切的内切圆,圆心为 I,半径为 r,接触点分别为 UABVBCWCA。同一顶点向圆引出的两条切线段等长,例如 AU=AW

这个等长关系也可由勾股定理说明:半径 IU,IW 都垂直于切线且长为 r,两个直角三角形又共用斜边 AI,故 AU2=AI2r2=AW2,取正长度即得相等。

令顶点 A,B,C 引出的切线段长度分别为 x,y,z。沿三条边相加: c=x+y,a=y+z,b=x+z. 因此 s=x+y+z,再减去对边就得到 sa=x,sb=y,sc=z. 所以三个差不仅是代数记号,也是三个顶点处的切线长度。本例分别为八、七、六。

十三十四十五三角形内切圆半径四,A引出的两段切线各为八,B引出的各为七,C引出的各为六;圆心与三顶点相连
相同顶点处的两个数相等;它们在每条边上相加,还原十三、十四、十五。半径 IU 垂直于 AB。

把圆心与三个顶点相连,三角形被分成三个小三角形;它们分别以 a,b,c 为底,到底边的高都是 r。于是 Δ=12ar+12br+12cr=sr. 本例 r=Δ/s=84/21=4。这里接触点 U 满足 AU=8,与前一图满足 AD=8.4 的高垂足 D 不同。

将切线长度代回海伦公式,还可写成 Δ2=(x+y+z)xyz,r2=xyzx+y+z. 本例第二式为 r2=876/21=16,再次得到半径四。

直角和钝角也用同一公式

对于边长三、四、五的直角三角形,s=6,所以 Δ=6321=6. 它与两条直角边乘积的一半 34/2=6 一致。海伦公式没有排除直角,只是在此情况下不如直接用直角边简便。

再取钝角三角形 a=7,b=3,c=5。余弦定理给出 cosA=32+5272235=12, 所以 A=120。它的半周长为 15/2,海伦公式得到 Δ2=152129252=67516, Δ=15346.4952. 另一种核验是夹角面积 35sin120/2=153/4。钝角的高落到边外,不会使面积变负,也不需要给海伦公式额外添负号。

三角形不等式为什么正好出现在根号里

对正边长,s>0,而 sa=b+ca2,sb=c+ab2,sc=a+bc2. 三个差严格为正,正好对应三条严格三角形不等式。若最长边等于另外两边之和,相应因子为零;三点共线,面积也为零。若最长边大于另外两边之和,根号内成为负数,说明输入不能组成欧氏三角形,而不是得到一种“负面积”。例如 1,2,4 的根号内为 105/16

固定两边 b=3,c=4 时,第三边的允许范围为 1<a<7。把它们代入四因子式: 16Δ2=(a+7)(7a)(a+1)(a1).a 接近一或七,面积都趋于零。第三边逐渐变长并不意味着面积一直增大:先前未分解的式子还给出 Δ2=36(25a2)21636. 等号当且仅当 a2=25,即 a=5 时成立。此时两条固定边恰好垂直,面积最大为六。

固定两边三和四,横轴第三边a从一到七,纵轴面积先增后减,在a等于五时达到六,两个退化端点用空心圆表示面积极限零
端点 a=1、a=7 不属于非退化三角形;最高点对应三四五直角三角形。

接近退化时,边长的小变化可能造成很大的相对面积变化。例如边长 3,4,6.99 的面积约为 0.6469;若过早把 6.99 舍入成七,结果就变为零。测量精度不足时,应保留输入的不确定性,而不是把开根号后的许多小数当作准确面积。实际数值计算也宜保留足够有效位,尤其注意两个接近量相减形成的 sa

名称与文献

公式以亚历山大的海伦(Heron,也拼作 Hero)命名。他约活跃于公元一世纪,著作《度量论》(Metrica)第一卷讨论平面图形等对象的度量,并给出这一三角形面积公式的证明。圣安德鲁斯大学的数学史资料对该书内容有具体记述。MacTutor:Heron of Alexandria

本页采用的“面积公式—余弦定理—因式分解”是现代三角函数语言下的推导,不把它当作《度量论》原文的符号或原有证明方式。其作用在于说明:只要三条边满足三角形条件,角度和高都可以从面积表达式中消去。

参考资料