質問の四角錐から円柱をくりぬいた体積の問題をPythonで解いてみた。

 質問の四角錐から円柱をくりぬいた体積の問題Pythonで解いてみました。(^_^;
 Sympyを使って計算しました。検算には、2重積分を使ってみました。(^_^;
 まず、3点P,A,Dを通る平面の方程式は次式で表すことができます。
 \left|\begin{array}{cc}x&y&z&1\\0&0&3&1\\1&1&0&1\\-1&1&0&1\end{array}\right|=0
 よって、求める平面の方程式のx、y、zの係数および定数項は、次の行列の余因子A11からA14に相当します。(^_^;
 \left(\begin{array}{cc}1&1&1&1\\0&0&3&1\\1&1&0&1\\-1&1&0&1\end{array}\right)
 これをPythonのSympyで計算して求めてみると、次のようになります。
● Cofactor1.py

# coding: UTF-8
# Cofactor1.py

from sympy.matrices import *

def main():
    P = [ 0, 0, 3]
    A = [ 1, 1, 0]
    D = [ 1,-1, 0]

    m = Matrix([[1,1,1,1],P+[1],A+[1],D+[1]])
    N = m.rows

    a = [m.cofactor(0,i) for i in range(N)]
    if a[0]< 0:   a = [-x  for x in a]
    print("(%d)x+(%d)y+(%d)z+(%d)=0"%tuple(a))

if __name__ == '__main__':
    main()

●実行結果

(6)x+(0)y+(2)z+(-6)=0

∴3x+z=3
∴z=3(1-x)
 求める体積V=(四角錐PABCDの体積)-(四角錐PABCDのx^2+y^2≦1をみたす部分の体積)ですが、四角錐PABCDのx^2+y^2≦1をみたす部分の体積は、図形の対称性から、領域K={(x,y)|0≦y≦x,x^2+y^2≦1}の部分の体積を求め8倍すれば良い。

 極座標変換すると、領域K'={(r,θ)|0≦r≦1,0≦θ≦π/4}だから、求める体積Vは、
 V=\frac{1}{3}\cdot2\cdot2\cdot3-8\iint_K 3(1-x)dxdy\\=\frac{1}{3}\cdot2\cdot2\cdot3-8\int_{0}^{\frac{\pi}{4}}d\theta\int_{0}^{1} 3(1-r\cos\theta)r dr
 また、元の解き方の次式と合わせて、PythonのSympyで計算すると次のようになります。
 V=8\int_{\frac{1}{\sqrt{2}}}^{1} 3(1-t)(t-\sqrt{1-t^2})dt

● Integral1.py

# coding: UTF-8
# Integral1.py

from sympy import *

def main():
    t,r = Symbol('t'),Symbol('r')
    print("V=%s"%(8*integrate(3*(1-t)*(t-sqrt(1-t*t)), (t,1/sqrt(2),1))))
    print("V=%s"%(1.0/3*2*2*3-8*integrate(3*(1-r*cos(t))*r,(r,0,1),(t,0,pi/4))))

if __name__ == '__main__':
    main()

●実行結果

V=-3*pi + 4 + 4*sqrt(2)
V=-3*pi + 4.0 + 4*sqrt(2) 

\therefore V=4+4\sqrt{2}-3\pi
 ちなみに、自力で計算するとすれば、重積分の方は簡単なので省略しますが、元の解法の式で、t\sqrt{1-t^2}の方は置換積分で、\sqrt{1-t^2}の方は、定積分なので図形的に{(扇形)-(三角形)}の面積で求めるか、次の公式を用います。(^_^;
 \int \sqrt{a^2-x^2}dx=\frac{1}{2}\left( x\sqrt{a^2-x^2}+a^2\sin^{-1}\frac{x}{a}\right)+C

※参考URL
http://okwave.jp/qa/q7619757.html
重積分:変数変換.ヤコビ行列式
積分 √(a^2-x^2) - 金沢工業大学
行列 − 読書ノート v1.4.0dev - プレハブ小屋
3.2. Sympy : Python での代数計算 − Scipy lecture notes
Anaconda を利用した Python のインストール (Windows) - Python でデータサイエンス