LoginSignup
0
0

More than 1 year has passed since last update.

【Python演算処理】「N次球概念導入による円/球関係の数理の統合」?

Last updated at Posted at 2021-03-05
  • (2021年7月30日)同心環Tagに移行。

子供の頃から「円周や円の面積や球の表面積や体積を求める式」と半径(Radius)と直径(Diameter)が裏側でどう繋がっているか気になって仕方がありませんでした。そして、とうとう…

微積分概念導入による部分的解決

【Python演算処理】半径・直径・円周長・円の面積・球の表面積・球の体積の計算上の往復

やがて微積分概念を知り、以下を連続的に考えられる様になりました。まぁ面倒な検算は全てコンピューターにやらせてしまえばいいのです。

半径rの円の面積πr^2 ⇄ 円周長2πr

import sympy as sp
r,f,g,h = sp.symbols('r,f,g,h')

#元関数
f=sp.pi*r**2

#半径rの円の面積(pi*r^2)をrで微分すると
#円周の長さ(2*pi*r)となる。
g=sp.diff(f,r,1)

#逆に円周の長さ(2*pi*r)をrで積分すると
#半径rの円の面積(pi*r^2)になる。
h=sp.integrate(g,r)

#画面表示
sp.init_printing()
display(f) 
print(sp.latex(f))
display(g) 
print(sp.latex(g))
display(h) 
print(sp.latex(h))

元関数

\pi r^{2}

微分結果

2 \pi r

再積分結果

\pi r^{2}

半径rの球の体積(4/3*pi*r^3) ⇄ 球の表面積(4*pi*r^2)

import sympy as sp
r,f,g,h = sp.symbols('r,f,g,h')

#元関数
f=sp.Rational(4,3)*sp.pi*r**3

#半径rの球の体積(4/3*pi*r^3)をrで微分すると
#球の表面積(4*pi*r^2)となる。
g=sp.diff(f,r,1)

#逆に球の表面積(4*pi*r^2)をrで積分すると
#半径rの球の体積(4/3*pi*r^3)となる。
h=sp.integrate(g,r)

#画面表示
sp.init_printing()
display(f) 
print(sp.latex(f))
display(g) 
print(sp.latex(g))
display(h) 
print(sp.latex(h))

元関数

\frac{4 \pi r^{3}}{3}

微分結果

4 \pi r^{2}

再積分結果

\frac{4 \pi r^{3}}{3}

ちなみに引数の変遷は所謂「微積分における冪乗算の不定積分公式」通り。

\int x^b dx=\frac{1}{β+1} x^{β+1}

ただしこの計算式にはβ=-1の時に分母が0になる問題があり、実際には別の計算方法で代用されています。この話も別途奥が深い…
【数理考古学】冪乗算(Exponentiation)の微積分

import sympy as sp
a,x,f,g,h = sp.symbols('a,x,f,g,h,i,j')

#元関数
f=a**x

#f'(x)一階微分
g=sp.diff(f,r,1)

#f''(x)二階微分
h=sp.diff(f,r,2)

#f'(x)一階積分
i=sp.integrate(g,r)

#f''(x)二階積分
j=sp.integrate(i,r)

#画面表示
sp.init_printing()
display(f) 
print(sp.latex(f))
display(g) 
print(sp.latex(g))
display(h) 
print(sp.latex(h))
display(i) 
print(sp.latex(i))
display(j) 
print(sp.latex(j))

元関数

a^{x}

一階微分

a^{x} \log{\left(a \right)}

二階微分

a^{x} \log{\left(a \right)}^{2}

一階積分

\begin{cases} \frac{a^{x}}{\log{\left(a \right)}} & \text{for}\: \log{\left(a \right)} \neq 0 \\x & \text{otherwise} \end{cases}

二階積分

\begin{cases} \begin{cases} \frac{a^{x}}{\log{\left(a \right)}^{2}} & \text{for}\: \log{\left(a \right)}^{2} \neq 0 \\\frac{x}{\log{\left(a \right)}} & \text{otherwise} \end{cases} & \text{for}\: \left(a \geq 0 \wedge a < 1\right) \vee a > 1 \\\frac{x^{2}}{2} & \text{otherwise} \end{cases}

さらには球の表面積4πr^2をもう1回微分すると得られる8πrなる式に邂逅して困惑が広がります。え、どういう事、それ…

面積の微分はどこの長さ? - Biglobe
球の体積を微分すると、球の表面積になりますが…

N次元球概念導入による完全解決

そしてとうとう今月(2021年3月)になって辿り着いたのがこの概念。調べた限りでは、どうやら大学数学では「つまらない一般教養」の範囲に過ぎないらしい?

【Python演算処理】半径・直径・円周長・円の面積・球の表面積・球の体積の計算上の往復

①式$c_n = \frac{\pi^{\frac{n}{2}}}{\Gamma(\frac{n}{2}+1)}$に従って、半径rのn次元球の体積は $c_n r^n$、表面積は$n c_nr^{n−1}$と規約される。

②$n=1$の時は$C_n=\frac{\pi^{\frac{1}{2}}}{\Gamma(\frac{1}{2}+1)}=2$なので、1次元球の体積(直径)は2rと規約される。

import math as m

def f0(n):
    return m.pi**(n/2)/m.gamma(n/2+1)

print(f0(1))

#出力結果
1.9999999999999998

③$n=2$の時は$C_n=\frac{\pi^{\frac{2}{2}}}{\Gamma(\frac{2}{2}+1)}=\pi$なので、2次元球の体積(面積)は$\pi r^2$、表面積(円周長)は$2 \pi r$と規約される。

import math as m

def f0(n):
    return m.pi**(n/2)/m.gamma(n/2+1)

print(f0(2))
print(m.pi)

#出力結果
3.141592653589793
3.141592653589793

④$n=3$の時は$C_n=\frac{\pi^{\frac{3}{2}}}{\Gamma(\frac{3}{2}+1)}=\frac{3}{4} \pi$なので、3次元球の体積は$\frac{3}{4} \pi r^3$、表面積は$4 \pi r^2$と規約される。

import math as m

def f0(n):
    return m.pi**(n/2)/m.gamma(n/2+1)

print(f0(3))
print(4/3*m.pi)

#出力結果
4.1887902047863905
4.1887902047863905

⑤$n=4$の時は$C_n=\frac{\pi^{\frac{4}{2}}}{\Gamma(\frac{4}{2}+1)}=\frac{1}{2} \pi^2$なので、4次元球の体積は$\frac{1}{2} r^4$、表面積は$2 \pi^2 r^3$と規約される。

import math as m

def f0(n):
    return m.pi**(n/2)/m.gamma(n/2+1)

print(f0(4))
print(1/2*m.pi**2)

#出力結果
4.934802200544679
4.934802200544679

確かに、こう考えれば何もかもスッキリしますね(棒読み)。
ガンマ関数 - Wikipedia

互いに同値となるいくつかの定義が存在するが、1729年、数学者レオンハルト・オイラーが無限乗積の形で、最初に導入した。

なんとこの概念の発端は18世紀まで遡り、例によって例の如くオイラーが先鞭をつけていたとは。本当にオイラーはブルバキみたいな集団ペンネームじゃなかったの? そんな感じで以下続報…

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0