当前位置首页 > 百科资料> 正文

海伦公式

2022-07-10 02:09:54 百科资料
海伦公式又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式,传说是古代的叙拉古国王希伦 (Heron,也称海龙)二世发现的公式,利用三角形的三条边长来求取三角形面积。但根据Morris Kline在1908年出版的著作考证,这条公式其实是阿基米德所发现,以托希伦二世的名发表(未查证)。
  • 中文名 海伦公式
  • 外文名 Heron
  • 别称 三斜求体积术
  • 表达式 S=√p(p-a)(p-b)(p-c)
  • 提出者 海伦 秦九韶

原理简介

  中国宋代的数学家秦九韶也提出了"三斜求积术",它与海伦公式基本一样。

  假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:

  S=√[p(p-a)(p-b)(p-c)]

  而公式里的p为半周长:

  p=(a+b+c)/2

  ----------------------------------------------

  注1:"Metrica"(《论》)手抄本中用s作为半周长,所以

  S=√[p(p-a)(p-b)(p-c)] 和S=√[s(s-a)(s-b)(s-c)]两种写法都是可以的,但多用p作为半周长。

  ----------------------------------------------

  由于任何n边的多边形都可以分割成(n-2)个三角形,所以海伦公式可以用作求多边形面积的公式。比如说测量土地的面积的时候,不用测三角形的高,只需测两点间的距离,就可以方便地导出答案。

证明过程

证明⑴

  与海伦在他的著作"Metrica"(《度量论》)中的原始证明不同,在此我们用三角公式和公式变形来证明。设三角形的三边a、b、c的对角分别为A、B、C,则余弦定理为

  cosC = (a^2+b^2-c^2)/2ab

  S=1/2*ab*sinC

  =1/2*ab*√(1-cos^2 C)

  =1/2*ab*√[1-(a^2+b^2-c^2)^2/4a^2*b^2]

  =1/4*√[4a^2*b^2-(a^2+b^2-c^2)^2]

  =1/4*√[(2ab+a^2+b^2-c^2)(2ab-a^2-b^2+c^2)]

  =1/4*√[(a+b)^2-c^2][c^2-(a-b)^2]

  =1/4*√[(a+b+c)(a+b-c)(a-b+c)(-a+b+c)]

  设p=(a+b+c)/2

  则p=(a+b+c)/2,p-a=(-a+b+c)/2,p-b=(a-b+c)/2,p-c=(a+b-c)/2,

  上式=√[(a+b+c)(a+b-c)(a-b+c)(-a+b+c)/16]

  =√[p(p-a)(p-b)(p-c)]

  所以,三角形ABC面积S=√[p(p-a)(p-b)(p-c)]

证明⑵

  中国宋代的数学家秦九韶也提出了"三斜求积术"。它与海伦公式基本一样,其实在《九章算术》中,已经有求三角形公式"底乘高的一半",在实际丈量土地面积时,由于土地的面积并不是三角形,要找出它来并非易事。所以他们想到了三角形的三条边。如果这样做求三角形的面积也就方便多了。但是怎样根据三边的长度来求三角形的面积?直到南宋,中国著名的数学家秦九韶提出了"三斜求积术"。

  秦九韶他把三角形的三条边分别称为小斜、中斜和大斜。"术"即方法。三斜求积术就是用小斜平方加上大斜平方,送到中斜平方,取相减后余数的一半,自乘而得一个数,小斜平方乘以大斜平方,送到上面得到的那个。相减后余数被4除,所得的数作为"实",作1作为"隅",开平方后即得面积。

  所谓"实"、"隅"指的是,在方程px 2=q,p为"隅",q为"实"。以△、a,b,c表示三角形面积、大斜、中斜、小斜,所以

  q=1/4{a^2*c^2-[(a^2+c^2-b^2)/2 ]^2}

  当P=1时,△ 2=q,

  △=√1/4{a^2*c^2-[(a^2+c^2-b^2)/2 ]^2}

  因式分解得

  △ ^2=1/4[4a^2c^2-(a^2+c^2-b^2)^2]

  =1/4[(c+a) ^2-b ^2][b^ 2-(c-a)^ 2]

  =1/4(c+a+b)(c+a-b)(b+c-a)(b-c+a)

  =1/4(c+a+b)(a+b+c-2b)(b+c+a-2a)(b+a+c-2c)

  =1/4[2p(2p-2a)(2p-2b)(2p-2c)]

  =p(p-a)(p-b)(p-c)

  由此可得:

  S△=√[p(p-a)(p-b)(p-c)]

  其中p=1/2(a+b+c)

  这与海伦公式完全一致,所以这一公式也被称为"海伦-秦九韶公式"。

  S=√1/4{a^2*c^2-[(a^2+c^2-b^2)/2 ]^2} .其中c>b>a.

  根据海伦公式,我们可以将其继续推广至四边形的面积运算。如下题:

  已知四边形ABCD为圆的内接四边形,且AB=BC=4,CD=2,DA=6,求四边形ABCD的面积

  这里用海伦公式的推广

  S圆内接四边形= 根号下(p-a)(p-b)(p-c)(p-d) (其中p为周长一半,a,b,c,d,为4边)

  代入解得s=8√ 3

证明⑶

  在△ABC中∠A、∠B、∠C对应边a、b、c

  O为其内切圆圆心,r为其内切圆半径,p为其半周长

  有tanA/2tanB/2+tanB/2tanC/2+tanC/2tanA/2=1

  r(tanA/2tanB/2+tanB/2tanC/2+tanC/2tanA/2)=r

  ∵r=(p-a)tanA/2=(p-b)tanB/2=(p-c)tanC/2

  ∴ r(tanA/2tanB/2+tanB/2tanC/2+tanC/2tanA/2)

  =[(p-a)+(p-b)+(p-c)]tanA/2tanB/2tanC/2

  =ptanA/2tanB/2tanC/2

  =r

  ∴p^2r^2tanA/2tanB/2tanC/2=pr^3

  ∴S^2=p^2r^2=(pr^3)/(tanA/2tanB/2tanC/2)

  =p(p-a)(p-b)(p-c)

  ∴S=√p(p-a)(p-b)(p-c)

证明⑷

  通过正弦定理:和余弦定理的结合证明 (具体可以参考证明方法1)

推广

  关于三角形的面积计算公式在解题中主要应用的有:

  设△ABC中,a、b、c分别为角A、B、C的对边,ha为a边上的高,R、r分别为△ABC外接圆、内切圆的半径,p = (a+b+c)/2,则

  S△ABC

  =1/2 aha

  =1/2 ab×sinC

  = r p

  = 2R^2sinAsinBsinC

  = √[p(p-a)(p-b)(p-c)]

  其中,S△ABC =√[p(p-a)(p-b)(p-c)] 就是著名的海伦公式,在希腊数学家海伦的著作《测地术》中有记载。关于三角形的面积计算公式在解题中主要应用的有:

  设△abc中,a、b、c分别为角a、b、c的对边,ha为a边上的高,r、r分别为△abc外接圆、内切圆的半径,p = (a+b+c),则

  s△abc = aha= ab×sinc = r p

  = 2r2sinasinbsinc =

  =

  其中,s△abc = 就是著名的海伦公式,在希腊数学家海伦的著作《测地术》中有记载。

  海伦公式在解题中有十分重要的应用。

  一、 海伦公式的变形

  s=

  = ①

  = ②

  = ③

  = ④

  = ⑤

  二、 海伦公式的证明

  证一 勾股定理

  分析:先从三角形最基本的计算公式s△abc = aha入手,运用勾股定理推导出海伦公式。

  证明:如图ha⊥bc,根据勾股定理,得:

  x = y =

  ha = = =

  ∴ s△abc = aha= a× =

  此时s△abc为变形④,故得证。

  证二:斯氏定理

  分析:在证一的基础上运用斯氏定理直接求出ha。

  斯氏定理:△abc边bc上任取一点d,

  若bd=u,dc=v,ad=t.则

  t 2 =

  证明:由证一可知,u = v =

  ∴ ha 2 = t 2 = -

  ∴ s△abc = aha = a ×

  =

  此时为s△abc的变形⑤,故得证。

  证三:余弦定理

  分析:由变形② s = 可知,运用余弦定理 c2 = a2 + b2 -2abcosc 对其进行证明。

  证明:要证明s =

  则要证s =

  =

  = ab×sinc

  此时s = ab×sinc为三角形计算公式,故得证。

  证四:恒等式

  分析:考虑运用s△abc =r p,因为有三角形内接圆半径出现,可考虑应用三角函数的恒等式。

  恒等式:若∠a+∠b+∠c =180○那么

  tg · tg + tg · tg + tg · tg = 1

  证明:如图,tg = ①

  tg = ②

  tg = ③

  根据恒等式,得:

  + + =

  ①②③代入,得:

  ∴r2(x+y+z) = xyz ④

  如图可知:a+b-c = (x+z)+(x+y)-(z+y) = 2x

  ∴x = 同理:y = z =

  代入 ④,得:r 2 · =

  两边同乘以 ,得:

  r 2 · =

  两边开方,得:r · =

  左边r · = r·p= s△abc 右边为海伦公式变形①,故得证。

  证五:半角定理

  半角定理:tg =

  tg =

  tg =

  证明:根据tg = = ∴r = × y ①

  同理r = × z ② r = × x ③

  ①×②×③,得:r3 = ×xyz

重要的应用。

一、 公式的证明

  证一:勾股定理

  如右图

勾股定理证明海伦公式

  勾股定理证明海伦公式

  。

  证二:斯氏定理

  如右图。

  证三:余弦定理

斯氏定理证明海伦公式

  斯氏定理证明海伦公式

  分析:由变形② S = 可知,运用余弦定理 c^2 = a^2 + b^2 -2abcosC 对其进行证明。

  证明:要证明S =

  则要证S = ab×sinC

  此时S = (ab×sinC)/2为三角形计算公式,故得证。

  证四:恒等式

恒等式证明⑴

  恒等式证明⑴

  恒等式证明⑵

  证五:半角定理

  ∵由证一,x = = -c = p-c

  y = = -a = p-a

  z = = -b = p-b

  ∴ r3 = ∴ r =

  ∴S△ABC = r·p = 故得证。

二、 公式的推广

  由于在实际应用中,往往需计算四边形的面积,所以需要对海伦公式进行推广。由于三角形内接于圆,所以猜想海伦公式的推广为:在任意内接与圆的四边形ABCD中,设p=,则S四边形=

  现根据猜想进行证明。

  证明:如图,延长DA,CB交于点E。

  设EA = e EB = f

  ∵∠1+∠2 =180° ∠2+∠3 =180°

  ∴∠1 =∠3 ∴△EAB≌△ECD

  ∴ = = =

  解得:e = ① f = ②

  由于S四边形ABCD = S△EAB

  将①,②跟b = 代入公式变形④,得到:

  ∴S四边形ABCD =

  所以,海伦公式的推广得证。

例题

  C语言版:

  如图四边形ABCD内接于圆O中,SABCD =,AD = 1,AB = 1,CD = 2.

  求:四边形可能为等腰梯形。

  解:设BC = x

  由海伦公式的推广,得:

  (4-x)(2+x)2 =27

  x4-12x2-16x+27 = 0

  x2(x2-1)-11x(x-1)-27(x-1) = 0

  (x-1)(x3+x2-11x-27) = 0

  x = 1或x3+x2-11x-27 = 0

  当x = 1时,AD = BC = 1

  ∴ 四边形可能为等腰梯形。

  在程序中实现(VBS):

  dim a,b,c,p,q,s

  a=inputbox("请输入三角形第一边的长度")

  b=inputbox("请输入三角形第二边的长度")

  c=inputbox("请输入三角形第三边的长度")

  a=1*a

  b=1*b

  c=1*c

  p=(a+b+c)*(a+b-c)*(a-b+c)*(-a+b+c)

  q=sqr(p)

  s=(1/4)*q

  msgbox("三角形面积为"&s),,"三角形面积"

  在VC中实现

  #include<stdio.h>

  #include<math.h>

  main()

  int a,b,c,s;

  printf("输入第一边n");

  scanf("%d",&a);

  printf("输入第二边n");

  scanf("%d",&b);

  printf("输入第三边n");

  scanf("%d",&c);

  s=(a+b+c)/2;

  printf("面积为:%fn",sqrt(s*(s-a)*(s-b)*(s-c)));

  C#版:

  using System;

  using System.Collections.Generic;

  using System.Text;

  namespace CST09078

  class Program

  static void Main(string[] args)

  double a,b,c,p,s;

  Console.WriteLine("输入第一条边的长度:n");

  a = Convert.ToDouble(Console.ReadLine());

  Console.WriteLine("输入第二条边的长度:n");

  b = Convert.ToDouble(Console.ReadLine());

  Console.WriteLine("输入第三条边的长度:n");

  c = Convert.ToDouble(Console.ReadLine());

  p =(a+b+c)/2;

  s = Math.Sqrt(p*(p - a)*(p - b)*(p - c));

  Console.WriteLine("我算出来的面积是{0}",s);

  Console.Read(); SB

海伦公式

  海伦公式

  pascal版:

  program x;

  var

  a,b,c:real;

  function xb(x,y,z:real):real;

  var

  p,s:real;

  begin

  p:=(x+y+z)/2;

  s:=sqrt(p*(p-x)*(p-y)*(p-z));

  xb:=s;

  end;

  begin

  readln(a,b,c);

  writeln(xb(a,b,c):0:2);

  end.

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net