椭圆的周长
作者: yangmask执行次数: 430505
※ 本程序库由会员创建。本站不对其内容负责。
关于精度,请理解为当长半径为1时,计算结果的精确度可达小数点后0.00001位。
例如,请试着以长半径0.5、短半径0.5,即直径为1的正圆进行计算。这样计算的话,结果应该是3.14158335634999245734。也就是说,这就是圆周率。据说圆周率的真实值为3.1415926535……,因此可以得知,其精度(当长半径为1时)可达小数点后0.0001位。
之所以将圆周划分为1000段,是因为如果划分为更多段,可能会出现因超时而无法完成计算等问题。如果您使用自己的计算机进行计算,或许能得到精度更高的数值。
_____
以下是程序代码。请修改“精度=0.001”这一部分,将其设为更小的数值,并将第2行的n<=1000调整为1÷精度。
k=0;精度=0.001;纵横比=短半径/长半径;
for(n=1;n<=1000;n=n+1)
{ j=(sqrt((精度^2)+(纵横比^2*((sqrt(1-(精度*(n-1))^2)-sqrt(1-(精度*n)^2))^2))));
k=k+j;
结果=k*长半径*4;}
print(结果);
_____
或者,如果是其他计算器,可能会这样编写。
Σ (n=1,1/★) {√((★^2)+(▲^2*((√(1-(★*(n-1))^2)-√(1-(★*n)^2))^2)))}
★部分表示精度(例如,0.001),▲表示短半径与长半径的比值。不过,将该计算结果乘以长半径再乘以4,即为该椭圆的周长。
之所以将圆周划分为1000段,是因为如果划分为更多段,可能会出现因超时而无法完成计算等问题。如果您使用自己的计算机进行计算,或许能得到精度更高的数值。
_____
以下是程序代码。请修改“精度=0.001”这一部分,将其设为更小的数值,并将第2行的n<=1000调整为1÷精度。
k=0;精度=0.001;纵横比=短半径/长半径;
for(n=1;n<=1000;n=n+1)
{ j=(sqrt((精度^2)+(纵横比^2*((sqrt(1-(精度*(n-1))^2)-sqrt(1-(精度*n)^2))^2))));
k=k+j;
结果=k*长半径*4;}
print(结果);
_____
或者,如果是其他计算器,可能会这样编写。
Σ (n=1,1/★) {√((★^2)+(▲^2*((√(1-(★*(n-1))^2)-√(1-(★*n)^2))^2)))}
★部分表示精度(例如,0.001),▲表示短半径与长半径的比值。不过,将该计算结果乘以长半径再乘以4,即为该椭圆的周长。
目前还没有关于此计算的用户评价。
其思路是将半径等间隔地划分为1000个点,确定椭圆与这些分界点水平线相切的点,
并计算连接这些点的线段总长度……就是这样。
简而言之,就是通过多边形来获得椭圆周长的近似值。
详情请参阅以下链接。