当前位置:文档之家› 椭圆周长和旋转椭球面积近似值的简单算法(第十六届北京高中数学知识应用竞赛论

椭圆周长和旋转椭球面积近似值的简单算法(第十六届北京高中数学知识应用竞赛论

椭圆周长和旋转椭球面积近似值的简单算法——第十六届北京高中数学知识应用竞赛论文论文标题:椭圆周长和旋转椭球面积近似值的简单算法作者姓名:吴欢庆、吴斯乾(合作)性别:男学校:北京市通州区第四中学年级:高二指导教师:曹凤华、李江涛准考证号: 0311[内容摘要]:我选这个课题是因为我父亲在工作中遇到了需要计算椭圆周长而又不会算的问题,我为了解决我父亲的困难,所以对这方面做了一些研究。

我们用类比推理的方法,提出了椭圆周长近似的简单算法,并推广到怎样计算旋转椭球体的表面积。

我们采用简单推导加上用C语言编程计算的方法,让程序运行了约一个小时,得到了一组比较精确的数据,一定程度上解决了计算椭圆周长难的问题。

对一些需要计算椭圆周长的工程应用有一定的帮助。

[关键词]:椭圆周长,椭球表面积,椭圆积分,修正因子本人郑重声明:所呈交的数学应用论文是本人在指导教师的指导下独立进行研究的成果,除文中已经注明引用的内容外,本文不含其他个人或集体已经发表或撰写过的作品成果。

对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

论文作者签名:吴欢庆吴斯乾2013年3月30日椭圆周长和旋转椭球面积近似值的简单算法圆是最美的图形,但自然界中的正圆,少之又少。

行星运行的轨道是椭圆的,地球是一个椭球体,在生物界里很难看到完美的圆。

许多的图形都是不规则的,椭圆是独特的,与众不同。

众所周知,椭圆积分属于高等微积分的知识,求解椭圆周长的积分存在着很大的难度,在实际的生活应用中给人们带来很大的困扰。

当你需要求一个椭圆物体的周长时,总是会没有头绪,仿佛不知道它的计算公式(其实本来就没有公式),没有了这些数据,做起研究就会不知所措。

我的一个朋友以前做关于种子完整度的研究,用到了圆形度来描述种子的形状。

他在他的博客中这样写道:“为了检测表皮破裂种子,我调用IMAQ Vision 里的形状分析函数得到了面积周长长度宽度等一些形状参数。

根据种子图像轮廓,发现用种子的圆形度:24P C Aπ=,(P 为周长,A 为面积)可以比较好地区分完整和破碎种子。

后来我想,种子的轮廓更接近椭圆,何不用‘椭圆形度’衡量面积和周长的关系呢?可是我记不得椭圆周长的计算方法,百度之,发现我原本就不可能知道。

”椭圆是一个不怎么完美的图形,椭圆周长的积分不能用像圆的周长和面积那样简单的公式表达,所以我们只能计算椭圆周长的近似值。

因为没有一个确定的公式,当我们需要精确计算椭圆周长的时候,麻烦就来了。

我父亲是做机床生意的,有次我和父亲去公司,遇到了一位做管道设备的客户,他需要把圆形的管道截成斜面,然后沿着斜面再接上一个椭圆形的管道,这位客户要求把铝板卷成椭圆的管道,至于用多宽的铝板,就需要计算椭圆截面的周长。

由于这样一个斜的截面不方便测量,虽然可以做一些试验,来确定铝板的宽度,而这样必定会耗费很多时间和精力。

如果材料比较贵的话,用试验的方法就不太可取了。

对于普通的工人来说,没有多少数学知识,又不能设计程序计算,怎样求椭圆的周长就成了一个问题。

而我,懂得一些微积分,也想帮父亲解决这个问题,所以我想找出一个计算椭圆周长的简单方法。

§ 椭圆周长的积分我们在计算曲线图形的面积和周长通常都要用到微积分,下面我们简单地推导一下椭圆周长的积分表达式: 我们知道椭圆的参数方程为()πθθθ20,sin ,cos ≤≤==b y a x我们先求四分之一椭圆的周长,取参数θ为积分变量,它的变化区间为0,2π⎡⎤⎢⎥⎣⎦相应于0,2π⎡⎤⎢⎥⎣⎦上任一小区间[],t t dt +的小弧段的长度s ∆近似等于对应的长度22()()x y ∆+∆因为: sin x dx a d θθ∆≈=-cos y dy b d θθ∆≈=所以:s ∆的近似值,即弧长元素为22222222()()sin ()cos ()ds dx dy a d b d θθθθ=+=+2222sin cos a b d θθθ+2222(1cos )cos a b d θθθ-+ 22222cos cos a a b d θθθ-+=22221cos a b d aθθ--其中222a b a-=2e (e 是离心率) 所以椭圆周长C 的积分表达式如下:C=4a d θ就是上面这个看似简单的积分实际上是很难积出的,如果你觉得你的微积分很厉害,不妨也试试。

实际上人们把椭圆周长的积分叫做“第二类不完全椭圆积分”展开成无穷级数,再进行积分,过程稍复杂,这里就不再讨论了。

§ 猜想椭圆周长的公式我们知道,圆的面积:)(r r S ⋅=π圆,类似的,椭圆的面积:)(b a S ⋅=π椭圆;圆的周长公式是:)(r r C +=π圆,而椭圆的周长却不等于π乘上半长轴与半短轴之和。

那么椭圆的周长和)(b a +π有什么关系呢?其实很容易想到,当离心率很小的时候,周长是近似等于)(b a +π的;离心率越接近1,)(b a +π给出的结果就越不精确,我们先猜想)(b a C +=π椭圆,下面来看看这个猜想公式的精度如何。

要想知道精确度,首先要得到精确的周长。

我们的方法很简单,只要借助计算机将椭圆n 等分,把每一个弧长“微元”相加就行了。

根据上面推出的积分表达式,先将四分之一椭圆20万等分。

我们采用C 语言编写计算不同离心率下椭圆周长、面积的程序,程序的原理很简单,其实就是取d θ的值为200000π,这样求4a d θ的近似值,就变成了算出 的值,以下是程序内容:200000200000cos 14510122ππ⋅-∑-n n e a#include"stdio.h"#include"math.h"#define pi 3.1415926535897932384626int main(){printf("--不同离心率下椭圆的周长和面积--(a=1)\n离心率计算周长猜想周长计算面积理论面积\n");double e,x1,x2,y1,y2;for(e=0.05;e<1.00;e+=0.05){for(x1=0,y1=0;x1<pi/2;x1+=pi/200000){y1+=4*sqrt(1-e*e*cos(x1)*cos(x1))*pi/200000;}for(x2=0,y2=0;x2<1;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中测试通过,不同的编译器可能需要稍做修改。

)为了粗略地估计程序给出的椭圆周长的精度,计算周长的同时,程序还将椭圆分割成10万个矩形求面积。

因为)(b a S ⋅=π椭圆是一个精确公式,对比计算机得出的面积和公式给出的面积,可以估计出计算机计算的误差。

下面是运行结果:--不同离心率下椭圆的周长和面积--(a=1)离心率 计算周长 猜想周长 计算面积 理论面积0.05 6.279319266 6.279255859 3.137683143 3.1376632050.10 6.267510442 6.267437876 3.125865086 3.1258452230.15 6.247754348 6.247641317 3.106068401 3.1060486640.20 6.219936382 6.219712246 3.078139152 3.0781195920.25 6.183890859 6.183426661 3.041853336 3.0418340070.30 6.139395245 6.138481041 2.996907431 2.9968883870.35 6.086161920 6.084478629 2.942904675 2.9428859750.40 6.023826659 6.020909881 2.879335524 2.8793172280.45 5.951932559 5.947124601 2.805549775 2.8055319480.50 5.869907460 5.862291700 2.720716335 2.7206990460.55 5.777031606 5.765339796 2.623763815 2.6237471430.60 5.672390126 5.654866776 2.513290093 2.5132741230.65 5.554800713 5.528996378 2.387418895 2.3874037240.70 5.422698394 5.385138562 2.243560165 2.2435459090.75 5.273940628 5.219560874 2.077981425 2.0779682210.80 5.105450038 5.026548246 1.884967570 1.8849555920.85 4.912481219 4.796529275 1.654947138 1.6549366220.90 4.686833321 4.510981143 1.369397192 1.3693884900.95 4.410927819 4.122554645 0.980968225 0.980961992对比计算面积和理论面积,可以知道计算周长的误差大约在0.00002以内,直到离心率为0.5时,()a b π+给出的值的误差还控制在0.01以内。

根据以上结果,我们提出椭圆周长近似值的公式:)(b a p C +=π椭圆,其中p是一个修正因子,为了精确地得到修正因子和离心率之间的关系,我们将椭圆2亿等分,程序运行结果如下:离心率 计算周长 猜想周长 计算面积 理论面积 修正因子 0.05 6.279256474 6.279255859 3.137663220 3.137663205 1.000000098 0.10 6.267447768 6.267437876 3.125845237 3.125845223 1.000001578 0.15 6.247691871 6.247641317 3.106048678 3.106048664 1.000008092 0.20 6.219874184 6.219712246 3.078119607 3.078119592 1.000026036 0.25 6.183829023 6.183426661 3.041834021 3.041834007 1.000065071 0.30 6.139333858 6.138481041 2.996888401 2.996888387 1.000138930 0.35 6.086101074 6.084478629 2.942885989 2.942885975 1.000266653 0.40 6.023766447 6.020909881 2.879317241 2.879317228 1.0004744410.45 5.951873084 5.947124601 2.805531961 2.805531948 1.0007984500.50 5.869848833 5.862291700 2.720699059 2.720699046 1.0012891090.55 5.776973948 5.765339796 2.623747155 2.623747143 1.0020179470.60 5.672333572 5.654866776 2.513274135 2.513274123 1.0030888080.65 5.554745415 5.528996378 2.387403735 2.387403724 1.0046570910.70 5.422644533 5.385138562 2.243545919 2.243545909 1.0069647180.75 5.273888422 5.219560874 2.077968230 2.077968221 1.0104084520.80 5.105399760 5.026548246 1.884955601 1.884955592 1.0156870100.85 4.912433239 4.796529275 1.654936629 1.654936622 1.0241641320.90 4.686788194 4.510981143 1.369388496 1.369388490 1.0389731290.95 4.410886572 4.122554645 0.980961996 0.980961992 1.069940110(由于运算数据较长,这里就只给出了上面这么多数据,更详细的结果在文章最后的附录A中)π给出根据上面这些比较精确的数据,可以看出当离心率很小的时候)a+(b的结果是很精确的,所以引入修正因子是个不错的选择。

相关主题