用CASIO计算器计算椭圆结构任意弧长的理论及方法
雷宏波1 罗居刚2 (1.广东水电二局股份有限公司,广东 增城 511340;2.安徽省水利科学研究院,安徽 蚌埠 233000)
摘 要:本文简炼讨论了计算任意一段椭圆结构弧长的理论和方法,举出实际应用例子,给出多组公式,可作解决同类问题之借鉴。 关键词:弧长;椭圆积分;CASIO fx-3900 Pv计算器;无穷级数;辛普生积分法
当前,为了追求建筑物外形时尚、新颖、美观,椭圆造型的应用越来越多,这给工程技术人员计算工程量带来了新难题。求椭圆全面积可查有关技术手册,套用现成公式;求部份椭圆面积,也可通过定积分并用莱布尼茨公式不难求得精确结果。但是求椭圆周长或弧长的问题就复杂些了。 1 椭圆周长公式的理论推导: 椭圆参数方程 , 其中a—长半轴,b—短半轴, —离心角。 则有微分 , 弧微分为 由三角函数等式 ,消去一个三角函数,保留正弦函数或余弦函数得 再由椭圆性质 ,及椭圆离心率的定义 ,得 或由倍角公式(降幂公式) , ,消去(1)式中的三角平方项得 以上(1)~(4)任何一式,结合求曲线弧长的定积分公式均能得到椭圆周长的表达式,如用第(3)式得 令 ,则 ,当积分区间 时有 ,注意到积分与积分变量无关,故(5)式又可记为 查阅有关数学手册知,积分 称为勒让德(Legendre)第二类椭圆积分,记为 ,其中k称为模数,该积分不可积(不能用有限个初等函数进行复合),但可以展开为无穷级数,但级数项仍含有定积分。特殊地,当 时,记为E、 ,其中 ,称为第二类完全椭圆积分,也是不可积的,展开为级数为: 由(6)式可得椭圆周长公式为 ,只要将椭圆离心率e代入就可求出椭圆周长。 另,如果设 ,则, 此式不再写出推导过程。为方便读者应用,再给出求椭圆周长的两个近似公式: ,或 。 2 椭圆任意一段弧长公式的理论推导: 设椭圆上两点 和 对应的离心角分别为 、 ,求 的弧长。 将P点坐标代入椭圆参数方程有 ,则P点的离心角为 。同理可求Q点的离心角 。用前述(1)~(4)任何一式并结合求曲线弧长的定积分公式均能求得 的弧长。 先考虑用第(4)式,得 如果用第(3)式,得 令 ,则 , ,故当积分区间 时有 ,注意到积分与积分变量无关,故(10)式又可记为 3 实际应用 求椭圆周长可看作是求任意一段弧长的特例。公式(9)~(11)中的定积分是无法采用莱布尼茨公式的,因为原函数不是初等函数。如果用数值积分到电脑上去计算,虽是一个已经解决的问题,但在实际应用中,要进行编程并在计算机中计算,却面临着以下问题:1、尽管这个数值积分的编程不算复杂,但愿意为此专门编程并调试的工程技术人员却不多。2、尽管有现成的程序可购买或网上下载,多为英文界面,要较快地获取并学习掌握并加以应用不方便。3、如果用AuoCAD作图并测算,这种方法比较花时间,且计算精度与划分的区段大小有关,难以估算误差。另外,如果是预算人员遇到这类计算问题,由于不少预算员对AutoCAD操作不够熟悉,所以也难以运用。4、计算机体积大,携带不方便。此外,专门为处理这样一个计算问题要启动和关闭计算机,开关机的时间也是人们不愿接受的。 考虑到CASIO计算器fx-3900 Pv及以上型号(程序计算器)也能进行积分计算,我们曾在此计算器上试算,方便实用,精度能满足工程需要。下面就以(9)式为例介绍这种办法。 读者先要熟悉CASIO fx-3900 Pv,从其说明书中知,储存器又叫寄存器、记录器,对同一个储存器又有一些不同的叫法,如:M-记录器、独立寄存器、变数储存器就是同一储存器;内容寄存器、常数储存器、统计寄存器是一组储存器,共六个,分别记为K1~K6。该计算器计算定积分使用辛普生法,将积分区间等分为N=2n等分,在每个等分区段上应用辛普生积分公式,即 ,其中:步长 截断误差为 对(9)式, , , 如果按RN计算式进行误差估算比较困难,因为求 在区间 的最大值不容易。 解析式很长,是分式且含三角函数开方。若通过求解 来考察 的极值点,显然解这个方程可行的办法也是用数值方法求近似解。仅管我们不能用截断误差公式来估计误差大小,但可以用计算精度来控制计算,即通过比较N=2n与N’=2n+1两次计算结果的相对误差来衡量计算精度,这就是数值积分中判断何时中止迭代的方法。 4 程序模块及实例,注意事项 该例函数f(x)有两个参数a、b,由于该计算器在定义函数时不能使用常数储存器、KAC、ENT、HLT等功能,故每次只能定义一个确定的椭圆,即a、b已知。作为例子,设a=10, b=8,P、Q两点的横坐标分别为x1=9,x2=1,单位为米。则程序如表1: 模块说明 | 程序步说明 | 按键 | 清除常数储存器 | 清除六个常数储存器 | AC SHIFT KAC | 定义f(x) | 进入LRN状态 | MODE EXP | 选择程序区 | P1 | 消除该程序区原有程序 | SHIFT PCL | 将变量x指定到M-记录器 | SHIFT Min | 输入f(x) | 2 √ ÷ 4 × ((… 10 SHIFT x2 + 8 SHIFT x2 - ((… 10 SHIFT x2 - 8 SHIFT x2 …)) × MR cos …)) √ = | 执行积分 | 进入∫dx状态 | MODE 1 | 选择程序区 | P1 | 输入n | 2 SHIFT RUN | 输入p | ((… 2 × ((… 9 ÷ 10 …)) SHIFT cos-1 …)) RUN | 输入q | ((… 2 × ((… 1 ÷ 10 …)) SHIFT cos-1 …)) RUN |
表1 程序说明表 应用时的几点注意事项: (1)“输入n”这个步骤可以省略,程序将自动确定n值。如果手动输入,则1≤n≤9。 (2)由于积分上下限是角度,所以应注意角度单位:度、弧度还是百分度。要在“进入∫dx状态”前设定计算器的角度单位,并在输入角度时采用相应的角度单位。 (3)本例积分的上下限是2×α的形式,不是一个简单值,而是要通过一定步骤的计算得出,注意在输入表达式时最外层的括号不可少。 此例经实算,如果让程序自动设定n值,则n=4,l=0.219 319;如果手动设置n值,取n=5,则l=0.219 318 6,两次迭代相对误差Δl=0.000 000 4。可见,尽管两次迭代并不能提高多少精度,但明显感到计算所用的时间长,而让计算器自动设置n值的计算结果足以满足工程的精度要求。
..................................《中国西部科技》学术 07年9月下.................................
|