歷史

最早由阿貝爾)提出,歐拉發展。
對這類問題的討論引出一門數學分支--橢圓積分(變分法),仍然方興未艾。
以下是幾個比較簡單的近似公式:
公式一至公式六為一般精度,滿足簡單計算需要;
公式八為高精度,滿足比較專業一些的計算需要。
橢圓周長公式:L=2πb+4(a-b)

這些公式均符合橢圓的基本規律,當a=b時,L=2aπ,
一、 L1 =π·qn/ atan(n)
(b→a,q=a+b,n=((a-b)/a))^2
這是根據圓周長和割圓術原理推導的,精度一般。
二、 L2 =π·θ/(π/4)·(a-c+c/sinθ)
(b→0,c=√(a^2-b^2),θ=acos((a-b)/a)^1.1)
這是根據兩對扇形組成橢圓得特點推導的,精度一般。
三、 L3 =π·q(1 +mn)
(q=a+b,m=4/π-1,n=((a-b)/a)^3.3)
這是根據圓周長公式推導的,精度一般。
四、 L4 =π·√(2a^2 + 2b^2)·(1 +mn)
(m=2√(2/π)-1,n=((a-b)/a)^2.05)
這是根據橢圓a=b時得基本特點推導的,精度一般。
五、 L5 = √(4ab·π^2 + 15(a-b)^2)·(1 +mn)
(m=4/√(15)-1 ,n=((a-b)/a)^9 )
這是根據橢圓a=b,c=0時是特點推導的,精度較好。
六、L6= π√[2(a^2+b^2)] (較近似)
七 、L7=π[3/2(a+b)-√(ab)] (較精確)
八、L8 =π·q(1 + 3h/(10 + √(4-3h)))·(1 +mn)
(q=a+b,h=((a-b)/(a+b))^2,m=22/7π-1,n=((a-b)/a)^33.697)
這是根據橢圓標準公式提煉的,精度很高。

九、一個高精度的橢圓周長初等公式,精確度可由使用者自由控制,點擊圖片查看。
橢圓周長(弧長)涉及第二類橢圓積分,原函式無法以初等函式的形式表達。在Matlab,maple等數學軟體中可以直接調用第二類橢圓積分函式求得。建議閱讀《特殊函式》,王竹溪,郭敦仁編著;劉式適、劉式達編著版本指明了第二類橢圓積分的幾何意義即為橢圓弧長問題。外文文獻也很多。
十、精確度最高的橢圓周長公式。首先複製下列字元,把a、b改成你想要的數字,再貼上到百度計算器高級輸入欄按等號即可。該橢圓周長公式精確度約十億分之一,為目前世界上不用程式即可計算的精確度最高的公式。當b/a很小時,精確度是公式八的一萬倍。當b/a約為0.01時,精確度相當於用程式計算項名達公式1000倍。(該公式發明人周鈺承)。
pi*(a+b)*(1+3*((a-b)/(a+b))^2/(10+sqrt(4-3*((a-b)/(a+b))^2))+(4/pi-14/11)*((a-b)/(a+b))^(14.233+13.981*((a-b)/(a+b))^6.42))
例如:若a=4,b=1時,把下式貼上到百度高級輸入欄OK.
pi*(4+1)*(1+3*((4-1)/(4+1))^2/(10+sqrt(4-3*((4-1)/(4+1))^2))+(4/pi-14/11)*((4-1)/(4+1))^(14.233+13.981*((4-1)/(4+1))^6.42))
理論公式
簡介


a為橢圓長半軸,e 為橢圓的離心率
橢圓周長理論公式是存在的不過它不能用初等函式表示,它是一個與離心率有關的無窮收斂級數,本公式已經把正圓周長納入其中,在某種意義上講正圓是特殊的橢圓,也就是說正圓是長短軸相等的橢圓。
公式推導是要利用到曲線長度積分,同時關鍵的一步是,要把橢圓積分利用牛頓二項式定理
展開為以sinθ 為變數的級數再通過積分求解。如圖。
推導過程
先建立橢圓參數方程:
x=a SINθ
Y=bcosθ
根據曲線長度積分方程:
u=y′

將橢圓方程代入上式得:


(1) L=4a

而
得出將(1)式用牛頓二項式定理展開再逐項積分得

求解完畢(這個公式把a=b帶進去以後為圓周長公式,e=1時,L=4a)
查詢代碼
橢圓VBA 查詢代碼
(Autocad中調用公式代碼)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | O pt ionExplicit PublicbOkAsBoolean PublicGOkAsBoolean PublicstrTagAsString PublicstrPromptAsString PublicstrValueAsString PrivateConstVK_ESCAPE=&H1B PrivateDeclareFunctionGetAsyncKeyStateLib"user32"(ByValvKeyAsLong)AsInteger PrivateFunctionCheckKey(lngKeyAsLong)AsBoolean IfGetAsyncKeyState(lngKey)Then CheckKey=True Else CheckKey=False EndIf EndFunction PublicFunction find (ptAsVariant)AsString DimobjSelectAsAcadEntity DimbasePntAsVariant DimaAsVariant DimbAsVariant OnErrorResumeNext Retry: ThisDrawing.Utility.GetEntityobjSelect,basePnt,"請選擇橢圓對象" pt=basePnt IfobjSelectIsNothingThen IfCheckKey(VK_ESCAPE)=TrueThen ExitFunction Else GoToRetry EndIf EndIf IfErr<>0Then Err.Clear GoToRetry EndIf IfTypeOfobjSelectIsAcadEllipseThen DimcAsVariant,EAsVariant,FAsVariant,cfAsVariant,f1AsVariant, f2 AsVariant a=objSelect.MajorRadius c=objSelect.MinorRadius E=(1-(c/a)^2) f2=1.23672585673967E-04*E^36+1.1705533446825599E-04*E^37+1.10955324829242E-04*E^38+1.05320019869966E-04*E^39+1.00103387635780991E-04*E^40 f1=4.46869856295286E-04*E^19+4.03020751646311001E-04*E^20+3.65323232359666E-04*E^21+3.32678129468022E-04*E^22+3.04221257334888E-04*E^23+2.79265607319136E-04*E^24+2.57259477462388E-04*E^25+2.37755707906253E-04*E^26+2.20388778625035E-04*E^27+2.04857554110962E-04*E^28+1.90912137972017E-04*E^29+1.78343755555526E-04*E^30+1.66976892883542E-04*E^31+1.56663134607288E-04*E^32+1.47276293897348E-04*E^33+1.3870853372036099E-04*E^34+1.30867255385557E-04*E^35 F=(1-0.25*E-0.046875*E^2-0.01953125*E^3-(1.0681152343E-02+7.5E-13)*E^4-6.7291259765625E-03*E^5-4.62627410888672E-03*E^6-3.37529182434082E-03*E^7-(2.57102306932E-03+2.11E-15)*E^8-2.02349037863314E-03*E^9-1.63396848074626E-03*E^10-(1.3470112E-03+0.623504E-10)*E^11-1.12952502189501E-03*E^12-9.60764626611876E-04*E^13-8.27188932350786E-04*E^14-7.19654371145184E-04*E^15-(6.31805937E-04+1.67501E-13)*E^16-5.59115461697537E-04*E^17-4.98285770262851E-04*E^18) IfE=0Then F=1 Else F=F-f1-f2 EndIf IfAbs(E-1)<=6.56592491699026E-06Then F=2/3.14159265358979 Else F=F-f1-f2 EndIf b=objSelect.Area/1000000 find="周長L="&Round(3.14159265358979*2*F*a/1000,3)&"米s="&Round(b,2)&"平方米" ExitFunction EndIf EndFunction |
中國古代
橢圓周長級數展開式值得一提的是著名的項名達公式,由我國清代數學家項名達(1791~1850)最早提出。