0

半球を平面で切る

188
0

はじめに

今回はとある依頼を受けて半球を平面で切ってできる立体の体積を計算したので,ここで記事にしようと思います.問題は以下の通りです.

Rを正の実定数,h|h|<Rを満たす実定数,α0απ2を満たす実定数とし,R3の部分集合X
X={{(x,y,z)R3|x2+y2+z2R2,0z(xh)tanα}(0α<π2){(x,y,z)R3|x2+y2+z2R2,hxR,z0}(α=π2)
で定める.Xの体積Vはいくらか?

式で書くとややこしいですが,要は半径Rの半球の内,平面z=(xh)tanαの下側にある部分の体積を求めたい,ということです.図で書くと次のような感じですね.

斜線部分が立体!FORMULA[12][37360][0] 斜線部分が立体X

因みに,hに対して|h|<Rという制限がついていますが,これは今回の依頼がそうであっただけで,本質的な条件ではありません.hがこの範囲になくとも体積は計算できると思います,大変ですが…

因みに,最終的な結果は案外キレイな形をしています.途中の計算が重い分,結果がキレイだと嬉しいですね.

では早速Vの値を求めていきましょう.

以下において計算はかなり端折られています.1行で書かれていても実際には数行計算しなければならない箇所もあります.

α=0,π2のとき

α=0のときは明らかにV=0です.α=π2のときは,平面x=tで切ったときの断面を考えると
V=12hRπ(R2t2)dt=π2(23R3R2h+13h3)
と簡単に計算できます.大変なのは0<α<π2のときです…

0<α<π2のとき

この場合も平面x=tで切った断面を考えます.x=tにおけるXの断面積をS(t)とします.少し観察すると,R2t2=(th)tanαを満たすtにおいて断面の形が変化することが分かります.これをtについて解いて適切な符号を取ると,
t=hsin2α+cosαR2h2sin2α
となります.この値をt0とおきます.htt0における断面図は次のようになります.

!FORMULA[35][-301659057][0]における断面図 htt0における断面図

ここで,
βt=Arctan(ytzt),yt=R2t2(th)2tan2α,zt=(th)tanα
です.この図から,断面積は
S(t)=π2(R2t2)βt(R2t2)+ytzt
となります.次に,t0tRにおける断面図は次のようになります.

!FORMULA[39][1980150629][0]における断面図 t0tRにおける断面図

その断面積は
S(t)=π2(R2t2)
です.従って,求める体積V
V=hRS(t)dt=ht0S(t)dt+t0RS(t)dt=ht0{π2(R2t2)βt(R2t2)+ytzt}dt+t0Rπ2(R2t2)dt=π2(23R3R2h+13h3)ht0βt(R2t2)dt+ht0ytztdt
と計算されます.右辺第2項を部分積分すると,
ht0βt(R2t2)dt=[βt(R2t13t3)]ht0ht0dβtdt(R2t13t3)dt=π2(R2h13h3)ht0dβtdt(R2t13t3)dt
となるので,
V=π3R3+ht0dβtdt(R2t13t3)dt+ht0ytztdt
となります.ここで,t=t0のときβt=0t=hのときβt=π2を用いました.さて,
I=ht0dβtdt(R2t13t3)dt,J=ht0ytztdt
とおき,それぞれの積分の値を求めていきます.

Iの値

合成関数の微分を用いて丁寧に計算すると,
dβtdt=ytztytztzt211+yt2zt2=(R2ht)tanα(R2t2)R2t2(th)2tan2α
となるので,
I=tanαht0R2ht(R2t2)R2t2(th)2tan2α(R2t13t3)dt
となります.次に,多項式の割り算を(とにかく頑張って)丁寧に計算すると,
(R2ht)(R2t13t3)R2t2=h3t2+R23t+2hR23+2R43thR2t2
が分かります.従って,
I=tanαht01R2t2(th)2tan2α{h3t2+R23t+2hR23+2R43thR2t2}dt
となります.ここで,根号の中身を平方完成すると
R2t2(th)2tan2α=1cosα(R2h2sin2α)cos2α(thsin2α)2
となるので,
I=sinαht01(R2h2sin2α)cos2α(thsin2α)2{h3t2+R23t+2hR23+2R43thR2t2}dt
が成り立ちます.A=(R2h2sin2α)cos2αとおくと,|h|<Rの仮定からA0であるので,その根号Aを取れることが分かります.そこでthsin2α=Asinτと変数変換して少し整理すると,
I=sinαγπ2{h3(Asinτ+hsin2α)2+R23(Asinτ+hsin2α)+2hR23+2R43Asinτ+hsin2αhR2(Asinτ+hsin2α)2}dτ
となります.ここで,γ=Arcsin(hcos2αA)です.形が複雑になってきたので,Iを更に次のように2つに分けて考えます.
I1=γπ2{h3(Asinτ+hsin2α)2+R23(Asinτ+hsin2α)+2hR23}dτ
I2=γπ2Asinτ+hsin2αhR2(Asinτ+hsin2α)2dτ

I1の計算

I1の被積分関数はsinτの多項式なので,普通に積分ができます.被積分関数を展開して整理すると
Ah6cos2τA3(2h2sin2αR2)sinτh3(h2sin4α2R2+A2R2sin2α)
となるので,
I1=[Ah12sin2τ+A3(2h2sin2αR2)cosτh3(h2sin4α2R2+A2R2sin2α)τ]γπ2=Ah12sin2γA3(2h2sin2αR2)cosγh3(h2sin4α2R2+A2R2sin2α)(π2γ)
と求まります.

I2の計算

I2の被積分関数は部分分数分解によって
Asinτ+hsin2αhR2(Asinτ+hsin2α)2=Rh2R1R(Asinτ+hsin2α)R+h2R1R+(Asinτ+hsin2α)
と計算されます.(R±hsin2α)2A=(R±h)2sin2α0に注意すると, こちらの記事 内のsinの1次式の逆数の積分から,
γπ21R(Asinτ+hsin2α)dτ=[2(Rhsin2α)2AArctan(Rhsin2α+ARhsin2αA1tanτ21+tanτ2)]γπ2=2(Rh)sinαArctan(Rhsin2α+ARhsin2αA1tanγ21+tanγ2)
γπ21R+(Asinτ+hsin2α)dτ=[2(R+hsin2α)2AArctan(R+hsin2αAR+hsin2α+A1tanτ21+tanτ2)]γπ2=2(R+h)sinαArctan(R+hsin2αAR+hsin2α+A1tanγ21+tanγ2)
と計算されるので,
I2=1Rsinα{Arctan(Rhsin2α+ARhsin2αA1tanγ21+tanγ2)Arctan(R+hsin2αAR+hsin2α+A1tanγ21+tanγ2)}
と求まります.

以上より,
I=sinα{Ah12sin2γ+A3(2h2sin2αR2)cosγ+h3(h2sin4α2R2+A2R2sin2α)(π2γ)}2R33{Arctan(Rhsin2α+ARhsin2αA1tanγ21+tanγ2)Arctan(R+hsin2αAR+hsin2α+A1tanγ21+tanγ2)}
となります.

Jの値

随分と上に行ってしまったので,ここにJを再掲しておきます.
J=ht0ytztdt
ここで,yt=R2t2(th)2tan2α,zt=(th)tanαです.ytの中身は上で平方完成されていて,
yt=R2t2(th)2tan2α=1cosα(R2h2sin2α)cos2α(thsin2α)2
が成り立ちます.従って,
J=tanαcosαht0(th)(R2h2sin2α)cos2α(thsin2α)2dt
となります.ここで,Iの計算の際に用いた記号A=(R2h2sin2α)cos2αと変数変換thsin2α=Asinτを用いると,
J=tanαcosαγπ2(Asinτhcos2α)AcosτAcosτdτ=(R2h2sin2α)sinα[A3cos3τhcos2α2(τ+12sin2τ)]γπ2=(R2h2sin2α)sinα{A3cos3γhcos2α2(π2γ12sin2γ)}
と計算されます.

以上で,I,J共に計算が終わりました.そして,V=π3R3+I+Jであったので,Vの値が求まったことになります.

最終的な結果

結局Vの値は次のように書けます.

V=π3R3+sinα{Ah12sin2γ+A3(2h2sin2αR2)cosγ+h3(h2sin4α2R2+A2R2sin2α)(π2γ)}2R33{Arctan(Rhsin2α+ARhsin2αA1tanγ21+tanγ2)Arctan(R+hsin2αAR+hsin2α+A1tanγ21+tanγ2)}+(R2h2sin2α)sinα{A3cos3γhcos2α2(π2γ12sin2γ)}

ここで,
A=(R2h2sin2α)cos2α,γ=Arcsin(hcos2αA)=Arcsin(hcosαR2h2sin2α)
です.このままでは見づらいので,
sinγ=hcos2αA,cosγ=R2h2Acosα,Arctan(x)Arctan(y)=Arctan(xy1+xy)
を用いて(かなり)頑張って整理すると,最終的にAを使わない次の表式を得ることができます.積分は厄介でしたが,すごくキレイに求まったと思います.

0<α<π2のとき次が成り立つ.
V=π3R3+h2R2h23sinαcosα+hsinα(h23sin2αR2)(π2γ)2R33Arctan(RcosαR2h2sinα)
ここで,
γ=Arcsin(hcosαR2h2sin2α)
である.

α=0,π2とすると?

今得られた式でα=0としたいのですが,α=0のときsinα=0であり,Arctanの中身が0割りとなるため単純に代入できません.しかし,α+0とする極限であれば,
Arctan(RcosαR2h2sinα)π20
が成り立つので,簡単な計算からV+0が分かります.α=0のときはV=0であったので,整合性が取れています.
また,α=π2とすると,γ=0となることから,
V=π3R3+0+h(h23R2)π22R330=π2(23R3R2h+13h3)
となって上で求めた値に等しくなります.従って,このVの式はα=π2においても成り立つ式です.

h±R0とすると?

今得られた式でh±R0としても整合性が取れているか確認してみます.
まず,hR0とするとVの値はαの値に依らず0となることが期待されますが,実際hR0のときγπ20かつArctan(RcosαR2h2sinα)π20であることから,V+0が分かります.
また,hR+0とすると,γπ2+0かつArctan(RcosαR2h2sinα)π20であることから,
VπRsinα(R23sin2αR2)
となります.更にαπ20とすると,Vは半球の体積23πR3に収束することが分かります.
これらは図から予想されるVの挙動と合っています.h±Rに近づける極限でも上のVの表式の整合性が取れていることが分かりますね.

具体的な数値

R=5,α=π6,h=2.5として計算すると
V=8.6659532654
となりました.これはとある3Dモデル作成ソフトで求めた値と一致しました.

今回の記事は以上です.
最後までお読み頂きありがとうございました.

投稿日:2022518
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

certain
certain
32
19341
素朴な問題が特に好きです.

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. α=0,π2のとき
  3. 0<α<π2のとき
  4. 最終的な結果
  5. α=0,π2とすると?
  6. h±R0とすると?
  7. 具体的な数値