2つの主軸aとb、および高さhのみを持つ、Rの楕円放物面の表面を計算するにはどうすればよいですか?
背景:楕円放物面に似たものの集団を取得しました。(例えば、ハンモックを考えてください)。私が統計的に興味を持っているのは、母集団の表面を適切にモデル化するのではなく、長方形(a * b)として近似したときに、導入する平均とSDエラーの大きさです。コーンを探すこともできますが、そのデータの母集団には非常に長い楕円がいくつかあります。これにより、楕円放物面と楕円円錐の計算方法を探すようになりました。これまでのところ、これは私の質問に答えるのに役立ちませんでした。
WolframもWikipediaも正しく翻訳できません。
paraboloid.surf <- function(a,b,h){2*a*sqrt(b^2+h^2)* E * sqrt((1-b^2/a^2)/(1+b^2/a^2))}
Eの計算方法がわからない場合、またはこれがEに項を掛けたものであるかどうか、またはk =項の関数E(k)であるかどうかさえ理解していません。
誰かが私を助けてコードを提供できますか?私は放物線状の解決策として円錐形の両方に興味がありますが、どれもなしよりも優れています。これが本当に些細なことではないことを願っています、そして私は完全に愚かではありません。=)
したがって、楕円放物面の表面積が必要だと思います。基本的な枠組みが与えられ、ここで、次の画像が撮影されました、。
では、問題はこれをRでどのように計算するかです。最も難しい部分は二重積分でありadaptIntegrate(...)
、cubature
パッケージ内の関数を使用して評価できます。
A <- function(a,b,h) {
require(cubature)
integrand <- function(x,a,b){
u <- x[1]
v <- x[2]
E <- 1+((a*cos(v))^2 + (b*sin(v))^2)/(4*u)
F <- (b^2 - a^2)*sin(2*v)/4
G <- u*((a*sin(v))^2+(b*cos(v))^2)
return(sqrt(E*G-F^2))
}
adaptIntegrate(integrand,
lowerLimit=c(0,0), upperLimit=c(h,2*pi), a=a,b=b)$integral
}
これは、次の場合に確認できます。
a = b = h = 1
E = 1 + 1 / 4u
F = 0
G = u
A =2πsqdusqrt(u + 1/4)
これは、閉じた形で次のように評価できます。
A =4π/ 3 [(5/4)3 / 2- (1/4)3/2 ] = 5.330414
A(1,1,1)
# [1] 5.330413
(4*pi/3)*((5/4)^(3/2) - (1/4)^(3/2))
# [1] 5.330414
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加