返回 2026-04-23
📝 其他

求解斜三角形的近似方法Approximation to solve an oblique triangle

johndcook.com·2026-04-23 节选正文

文章提出了一种用于求解斜三角形较小角的实用近似公式。该近似基于三角形边长关系,通过简化计算步骤实现快速估算,适用于工程与数学建模中的快速验证场景。作者强调该方法在精度和效率之间取得了良好平衡,尤其适合需要即时结果的场合。尽管是近似解,其误差范围在实际应用中可接受。

John

The previous post gave a simple and accurate approximation for the smaller angle of a right triangle. Given a right triangle with sides a, b, and c, where a is the shortest side and c is the hypotenuse, the angle opposite side a is approximately

in radians. The previous post worked in degrees, but here we’ll use radians.

If the triangle is oblique rather than a right triangle, there an approximation for the angle A that doesn’t require inverse trig functions, though it does require square roots. The approximation is derived in [1] using the same series that is the basis of the approximation in the earlier post, the power series for 2 csc(x) + cot(x).

For an oblique triangle, the approximation is

where s is the semiperimeter.

For comparison, we can find the exact value of A using the law of cosines.

and so

Here’s a little Python script to see how accurate the approximation is.

from math import sqrt, acos

def approx(a, b, c):
    "approximate the angle opposite a"
    s = (a + b + c)/2
    return 6*sqrt((s - b)*(s - c)) / (2*sqrt(b*c) + sqrt(s*(s - a)))

def exact(a, b, c):
    "exact value of the angle opposite a"    
    return acos((b**2 + c**2 - a**2)/(2*b*c))

a, b, c = 6, 7, 12
print( approx(a, b, c) )
print( exact(a, b, c) )

This prints

0.36387538476776243
0.36387760856668505

showing that in our example the approximation is good to five decimal places.

[1] H. E. Stelson. Note on the approximate solution of an oblique triangle without tables. American Mathematical Monthly. Vol 56, No. 2 (February, 1949), pp. 84–95.

需要完整排版与评论请前往来源站点阅读。