- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
海伦 -秦九韶公式
海伦公式又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式,传说是古代的叙拉古
国王 希伦 (Heron, 也称海龙) 二世发现的公式, 利用三角形的三条边长来求取三角形面积。
但根据 Morris Kline 在 1908 年出版的著作考证,这条公式其实是 阿基米德 所发现,以托希
伦二世的名发表(未查证 )。
原理简介
中国宋代的数学家秦九韶也提出了“三斜求积术”,它与海伦公式基本一样。
假设在平面内,有一个三角形,边长分别为 a、b、c,三角形的面积 S 可由以下公式求得:
而公式里的 p 为半周长(周长的一半):
注 1:Metrica( 《论》)手抄本中用 s 作为半周长,所以
和
两种写法都是可以的,但多用 p 作为半周长。
由于任何 n 边的多边形都可以分割成( n-2 )个三角形,所以海伦公式可以用作求多边形面积的公式, 但需要先知道分割用的对角线的长度。 比如说测量土地的面积的时候,不用测三角形的高 ,只需测两点间的距离, 就可以方便地导出答案。
证明过程
与海伦在他的著作 Metrica( 《度量论》)中的原始证明不同,在此我们用三角公式和公式变形来证明。设三角形的三边 a、b、c 的对角分别为 A、B、C,则余
弦定理为下述推导 [1]
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)]
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中实现
#includestdio.h
#includemath.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( 面积为: %f\n,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
您可能关注的文档
- 一级造价工程师《建设工程造价管理》复习题集(第3629篇).docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》31.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》36.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》40.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》44.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》5.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》79.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》8.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.2条件语句》16.docx
- 人教A版高中数学必修3《1.2基本算法语句1.2.2条件语句》42.docx
文档评论(0)