【初心者向け】「泳ぐ」数理について。

そもそも「**泳ぐ**」とはどういう現象なのでしょうか。クロールや平泳ぎなどの経験からすると…

* まず進行方向に向けて体表面や体積を**最大値**に到達させる。
* 進行方向に向けて（<font color=blue>流線型を意識して</font>）体表面や体積を**最小限**に変形させつつ体を前方に押し出し、後方に送り出せる限りの水を送り出す。 

クラゲの泳ぎ方の場合…

* まず「**傘を広げ**」正面に向けての体表面を最大化させる。
* 次いで「**傘を閉じ**」ドーム型の前半身を正面に押し出しつつ、後方に送り出せる限りの水を送り出す。

その途中過程で顕現する「**体積を最大化させた状態**」は微分計算で求める事が出来たりもするのです。

[神永 正博「超」入門 微分積分 (ブルーバックス) 「微分は下心をもってせよ」](https://www.amazon.co.jp/%E3%80%8C%E8%B6%85%E3%80%8D%E5%85%A5%E9%96%80-%E5%BE%AE%E5%88%86%E7%A9%8D%E5%88%86-%E5%AD%A6%E6%A0%A1%E3%81%A7%E3%81%AF%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%82%8C%E3%81%AA%E3%81%84%E3%80%8C%E8%80%83%E3%81%88%E6%96%B9%E3%81%AE%E3%82%B3%E3%83%84%E3%80%8D-%E3%83%96%E3%83%AB%E3%83%BC%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9-%E7%A5%9E%E6%B0%B8%E6%AD%A3%E5%8D%9A-ebook/dp/B00JA05KI8)

>とりあえず「**最もアイスクリームを詰め込める理想の円錐**」の半径を<font color=green>x</font>(<font color=blue>cm</font>)と置く。
>
>**三平方の定理**より「**コーンの深さ**＝<font color=green>sqrt(100(10^2)-x^2)</font>(<font color=blue>cm</font>)」が求まる。なお、ここでは話を単純化する為にコーンの厚みは無視して体積と同じとする。底面積は<font color=green>πx^2</font>(<font color=blue>cm2</font>)。
>
>円錐の体積の公式「**底面積**（<font color=blue>πx^2</font>）×**高さ**＝**コーンの深さ**（<font color=blue>sqrt(100-x^2)</font>）<font color=green>×1/3</font>」から「<font color=green>y=1/3*π*x^2*sqrt(100-x^2)</font>」。グラフ化するとおよそ**半径**<font color=green>8cm</font>辺りに**最大値**がくる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/87b1fb85-2511-85fd-6865-dc06ad265d05.png)
<font color=purple>統計言語Rでのグラフ化例</font>

```R
#最もアイスクリームを詰め込める理想の円錐
Icecream_corn<-function(x){1/3*pi*x^2*sqrt(100-x^2)}
plot(Icecream_corn,xlim=c(0,10),ylim=c(0,400),type="l",main="The volume of Icecream corn", xlab="x", ylab="y")
```
>こうして問題は「<font color=green>y</font>**が最大値となる様な**<font color=green>x</font>**を求める**」という方向に整理される。
>
>式中にルートが含まれるのが煩雑。「**容積が最大**」という事は「**容積の**<font color=green>2乗</font>**も最大**」だし、「**容積の**<font color=green>2乗</font>**が最大**」なら「**容積も最大**」なので<font color=green>2乗</font>して「<font color=green>y^2=1/9*pi^2*x^4(100-x^2)</font>」とする。
>
>このうち<font color=green>1/9*pi^2</font>は**定数**なので<font color=green>x</font>が変化しても変わらない。すなわち<font color=green>f(x)</font>=<font color=green>x^4(100-x^2)</font>=<font color=green>100*x^4-x^6</font>における<font color=green>x</font>の**最大**、すなわち<font color=green>f'(x)</font>=<font color=green>0</font>(<font color=blue>微分=0、接線の傾きが0)となるx</font>を求めればいい。

<font color=purple>統計言語Rでの検証例</font>

```R
#微分（Differential）x^4=4x^3
D01_01<-expression(x^4)
D(D01_01,"x")
4 * x^3

#微分（Differential）x^6=6x^5
D01_02<-expression(x^6)
D(D01_02,"x")
6 * x^5
#すなわちf'(x)=400*x^3-6*x^5=x^3*(400-6*x^2)
x^3*(400-6*x^2)=0 つまり 400-6*x^2=0
つまり 6*x^2=400 つまりx^2=400/6
#x=sqrt(400/6)
sqrt(400/6)
[1] 8.164966
#高さ＝コーンの深さはsqrt(100-x^2)）=sqrt(100-sqrt(400/6)^2)）=sqrt(100/3)
sqrt(100/3)
[1] 5.773503
```
<font color=purple>統計言語Rでのグラフ化例</font>

```R
#体積が最大化されたアイスクリームコーン
f0<-function(x){sqrt(100-x^2)}
plot(f0, xlim=c(-10,10),ylim=c(0,10),type="l",main="Ice Cream Cone Problem", xlab="x", ylab="y")
polygon(c(0,sqrt(400/6),-sqrt(400/6)), #x
c(0,sqrt(100/3),sqrt(100/3)), #y
density=c(30), #塗りつぶす濃度
angle=c(45),　 　　　#塗りつぶす斜線の角度
col=rgb(0,1,0)) 　#塗りつぶす色
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1a8b7102-4498-db0a-262b-88aa44cbff96.png)
全体的に逆さ菅笠の様な形となる。まさしく「**傘を開いたクラゲ？**」

>強引に感じた読者も多いと思う。なぜ積分では細部に意味があり、微分では細部を無視しても良いのか。何を無視して何を無視してはいけないか判然としないじゃないか。
>
>この強引さは微積分が「**目的**」を持っている事からくる。微積分で最も重要なのは目的をかなえられる程度に細部を無視し、近似する事にある。下心を持ちながら、何らかの成果を狙ってやっている事なのだ。
>
>微積分は純粋な興味だけで発展してきた数学ではない。そこに登場する様々な概念や計算技術は理由もなく出てきたものではなく、必ず目的意識が付帯する。体系化された学問とはいえ、実際のところそれは「**こう考えたらうまくいった**」試行錯誤の結果得られた知恵を編集したものに過ぎないのである。細かい部分が重箱の隅として無視出来るかどうかは「**そこからポジティブな成果物が出てくるか**」で判断される。要するに成果主義なのである。

正直、学生時代には全く理解出来なかった微積分の概念に、この一言で開眼しました。
[【初心者向け】半径・直径・円周長・円の面積・球の表面積・球の体積の計算上の往復](https://qiita.com/ochimusha01/items/e180451a210227bb19a5)
そんな感じで以下続報…