- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
椭圆周长和旋转椭球面积近似值的简单算法(第十六届北京高中数学知识应用竞赛论文)
椭圆周长和旋转椭球面积近似值的简单算法
——第十六届北京高中数学知识应用竞赛论文
论文标题: 椭圆周长和旋转椭球面积近似值的简单算法
作者姓名: 吴欢庆 、吴斯乾(合作)
性别: 男 学校: 北京市通州区第四中学
年级: 高二 指导教师: 曹凤华、李江涛
准考证号: 0311
[内容摘要]:我选这个课题是因为我父亲在工作中遇到了需要计算椭圆周长而又不会算的问题,我为了解决我父亲的困难,所以对这方面做了一些研究。我们用类比推理的方法,提出了椭圆周长近似的简单算法,并推广到怎样计算旋转椭球体的表面积。我们采用简单推导加上用C语言编程计算的方法,让程序运行了约一个小时,得到了一组比较精确的数据,一定程度上解决了计算椭圆周长难的问题。对一些需要计算椭圆周长的工程应用有一定的帮助。
[关键词]:椭圆周长,椭球表面积,椭圆积分,修正因子
本人郑重声明:所呈交的数学应用论文是本人在指导教师的指导下独立进行研究的成果,除文中已经注明引用的内容外,本文不含其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
论文作者签名:吴欢庆 吴斯乾
2013年3月30日
椭圆周长和旋转椭球面积近似值的简单算法
圆是最美的图形,但自然界中的正圆,少之又少。行星运行的轨道是椭圆的,地球是一个椭球体,在生物界里很难看到完美的圆。我的一个朋友以前做关于种子完整度的研究,用到了圆形度来描述种子的形状。他在他的博客中这样写道:
§ 椭圆周长的积分
我们在计算曲线图形的面积和周长通常都要用到微积分,下面我们简单地推导一下椭圆周长的积分表达式:
我们知道椭圆的参数方程为
我们先求四分之一椭圆的周长,取参数为积分变量,它的变化区间为
相应于上任一小区间的小弧段的长度近似等于对应的长度,
因为:
所以:的近似值,即弧长元素为
==
=
=
其中=(是离心率)
所以椭圆周长C的积分表达式如下:
C=
就是上面这个看似简单的积分实际上是很难积出的,如果你觉得你的微积分很厉害,不妨也试试。实际上人们把椭圆周长的积分叫做“第二类不完全椭圆积分”,到此为止,接下来只能将展开成无穷级数,再进行积分,过程稍复杂,这里就不再讨论了。
§ 猜想椭圆周长的公式
我们知道,圆的面积:,类似的,椭圆的面积:;圆的周长公式是:,而椭圆的周长却不等于乘上半长轴与半短轴之和。那么椭圆的周长和有什么关系呢?其实很容易想到,当离心率很小的时候,周长是近似等于的;离心率越接近1,给出的结果就越不精确,我们先猜想,下面来看看这个猜想公式的精度如何。
要想知道精确度,首先要得到精确的周长。我们的方法很简单,只要借助计算机将椭圆n等分,把每一个弧长“微元”相加就行了。根据上面推出的积分表达式,先将四分之一椭圆20万等分。我们采用C语言编写计算不同离心率下椭圆周长、面积的程序,程序的原理很简单,其实就是取的值为,这样求的近似值,就变成了算出 的值,以下是程序内容:
#includestdio.h
#includemath.h
#define pi 3.1415926535897932384626
int main()
{
printf(--不同离心率下椭圆的周长和面积--(a=1)\n离心率 计算周长 猜想周长 计算面积 理论面积\n);
double e,x1,x2,y1,y2;
for(e=0.05;e1.00;e+=0.05)
{
for(x1=0,y1=0;x1pi/2;x1+=pi/200000)
{
y1+=4*sqrt(1-e*e*cos(x1)*cos(x1))*pi/200000;
}
for(x2=0,y2=0;x21;x2+=1.0/100000)
{
y2+=4*sqrt((1-e*e)*(1-x2*x2))*1/100000;
}
printf(%4.2f %4.9f %4.9f %4.9f %4.9f\n,e,y1,pi*(1+sqrt(1-e*e)),y2,pi*sqrt(1-e*e));
}
}
(注:此程序在C-Free 5.0中测试通过,不同的编译器可能需要稍做修改。)
为了粗略地估计程序给出的椭圆周长的精度,计算周长的同时,程序还
原创力文档


文档评论(0)