(正四角錐に内接する球)「千葉大学 2011年 - 教育学部（算数・技術） - 第3問」をWolframAlphaとsympyでやってみた。

オリジナル

https://suugaku.jp/kako/chiba/1513.html


解答はこちら↓
2011千葉大　数学３

http://aozemi.blog.fc2.com/blog-category-149.html#602


https://www.youtube.com/watch?v=5iBlElThudc


# 問題

https://mathexamtest.web.fc2.com/2011/201110241/2011102410100mj.html#top-0103



# WolframAlpha で
?WolframAlpha で、1行でできませんでした。1行でできる方法を教えて下さい。
solveに()が必要でした。

https://www.wolframalpha.com/input/?i=a%3DSQRT%285%29%2Cb%3D2%2Ch%3Dsqrt%28a**2-%28b%2Fsqrt%282%29%29**2%29%2C%28solve+%28b**2%2Bb*sqrt%28a**2-%28b%2F2%29**2%29*1%2F2*4%29*r*1%2F3-%281%2F3*b**2*h%29%3D0+for+r%29&lang=ja

解
a = sqrt(5), b = 2, h = sqrt(3), r = 1/sqrt(3)

https://www.wolframalpha.com/input/?i=r+%3D+1%2Fsqrt%283%29%2C4*pi*r**2%2C4%2F3*pi*r**3&lang=ja

解
4 π r^2 = (4 π)/3, (4 π r^3)/3 = (4 π)/(9 sqrt(3))






# Pycharmで
subsで最後に値を代入しました。

小技:
分数はRationalを使う。
整数は、小数点表示をしない。(例2.0は2と入力する)


```python
from sympy import *
var('AB OA AR RR')
OH=sqrt(OA**2-(AB/sqrt(2))**2)
RR=solve((AB**2+AB*sqrt(OA**2-(AB/2)**2)*1/2*4)*RR*Rational(1,3)-(Rational(1,3)*AB**2*OH),RR)[0]
AR=4              *pi*RR**2
VR=4*Rational(1,3)*pi*RR**3
print("#(1)OH",OH)
print("#(2)RR",RR)
print("#(3)AR",AR)
print("#(3)VR",VR)
mySubs={OA:sqrt(5),AB:2}
print("#(1)OH",OH.subs(mySubs),float(OH.subs(mySubs)),"<------------------------------------------------ここです")
print("#(2)RR",RR.subs(mySubs),float(RR.subs(mySubs)))
print("#(3)AR",AR.subs(mySubs),float(AR.subs(mySubs)))
print("#(3)VR",VR.subs(mySubs),float(VR.subs(mySubs)))
print('########################################################################################')
from sympy import *
var('AB OA AR RR')
OH=sqrt(OA**2-(AB/sqrt(2))**2)
RR=solve((AB**2+AB*sqrt(OA**2-(AB/2)**2)*1/2*4)*RR*Rational(1,3)-(Rational(1,3)*AB**2*OH),RR)[0]
AR=4              *pi*RR**2
VR=4*Rational(1,3)*pi*RR**3
print("#(1)OH",OH)
print("#(2)RR",RR)
print("#(3)AR",AR)
print("#(3)VR",VR)
mySubs={OA:sqrt(5),AB:2.0}
print("#(1)OH",OH.subs(mySubs),float(OH.subs(mySubs)),"<-----------------------------------------------ここです")
print("#(2)RR",RR.subs(mySubs),float(RR.subs(mySubs)))
print("#(3)AR",AR.subs(mySubs),float(AR.subs(mySubs)))
print("#(3)VR",VR.subs(mySubs),float(VR.subs(mySubs)))
#(1)OH sqrt(-AB**2/2 + OA**2)
#(2)RR AB*sqrt(-2*AB**2 + 4*OA**2)/(2*(AB + sqrt(-AB**2 + 4*OA**2)))
#(3)AR pi*AB**2*(-2*AB**2 + 4*OA**2)/(AB + sqrt(-AB**2 + 4*OA**2))**2
#(3)VR pi*AB**3*(-2*AB**2 + 4*OA**2)**(3/2)/(6*(AB + sqrt(-AB**2 + 4*OA**2))**3)
#(1)OH sqrt(3) 1.7320508075688772 <------------------------------------------------ここです
#(2)RR sqrt(3)/3 0.5773502691896257
#(3)AR 4*pi/3 4.188790204786391
#(3)VR 4*sqrt(3)*pi/27 0.8061330507707635
########################################################################################
#(1)OH sqrt(-AB**2/2 + OA**2)
#(2)RR AB*sqrt(-2*AB**2 + 4*OA**2)/(2*(AB + sqrt(-AB**2 + 4*OA**2)))
#(3)AR pi*AB**2*(-2*AB**2 + 4*OA**2)/(AB + sqrt(-AB**2 + 4*OA**2))**2
#(3)VR pi*AB**3*(-2*AB**2 + 4*OA**2)**(3/2)/(6*(AB + sqrt(-AB**2 + 4*OA**2))**3)
#(1)OH 1.73205080756888 1.7320508075688772 <-----------------------------------------------ここです
#(2)RR 0.577350269189626 0.5773502691896257
#(3)AR 1.33333333333333*pi 4.1887902047863905
#(3)VR 0.256600119639834*pi 0.8061330507707634
```

最初に値を代入してみました。

```python
from sympy import *
var('AB OA AR RR')
OA=sqrt(5)
AB=2
OH=sqrt(OA**2-(AB/sqrt(2))**2)
RR=solve((AB**2+AB*sqrt(OA**2-(AB/2)**2)*1/2*4)*RR*Rational(1,3)-(Rational(1,3)*AB**2*OH),RR)[0]
AR=4              *pi*RR**2
VR=4*Rational(1,3)*pi*RR**3
print("#(1)OH",OH,float(OH))
print("#(2)RR",RR,float(RR))
print("#(3)AR",AR,float(AR))
print("#(3)VR",VR,float(VR))
#(1)OH sqrt(3) 1.7320508075688772
#(2)RR 0.577350269189626 0.5773502691896257
#(3)AR 1.33333333333333*pi 4.1887902047863905
#(3)VR 0.256600119639834*pi 0.8061330507707634
```




# 参考
「PA=PB=PC=PD=36で、底面は1辺6の正方形」の場合。

https://highschoolmath.005net.com/reidai/naisetuTai.php

```python
from sympy import *
var('OA AB RR')
OH=sqrt(OA**2-(AB/sqrt(2))**2)
RR=solve((AB**2+AB*sqrt(OA**2-(AB/2)**2)*1/2*4)*RR*Rational(1,3)-(Rational(1,3)*AB**2*OH),RR)[0]
print("#(1)OH",OH)
print("#(2)RR",RR)
mySubs={OA:3*sqrt(6),AB:6}
print("#(1)OH",OH.subs(mySubs))
print("#(2)RR",RR.subs(mySubs),float(RR.subs(mySubs)))
print("#(2)RR",float(3*(sqrt(5)-1)/2))
#(1)OH sqrt(-AB**2/2 + OA**2)
#(2)RR AB*sqrt(-2*AB**2 + 4*OA**2)/(2*(AB + sqrt(-AB**2 + 4*OA**2)))
#(1)OH 6
#(2)RR 36/(6 + 6*sqrt(5)) 1.8541019662496845
#(2)RR 1.8541019662496845
```