女子の手よりも
ダンベルを握りたい
乙pyです。

さて
今回は
素敵な関数を見つけてしまいました。

おっぱい関数って知ってますか?


すんごい大変な数式ですが
頑張ってPythonプログラムで再現できるようにしました。

動画はこちら



さて
まずは関数ですが


関数自体はものすごーく長いです
式は

スクリーンショット 2019-07-20 17.15.29

yは-3から3までの間の数とした時に
xの値はこのようなものすごい長いものになり
4つの部分を足し合わせたものになります。

tは動的に変えることで
揺れを表現できると言うものです。

この式を実装したコードはこちら
numpyとmatplotlibで
数値を作って可視化しています。

ipywidgetsで動的な可視化をしています。

import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact, FloatSlider, IntSlider
%matplotlib inline
 
def oppai(y,t):
    x_1 = (1.5 * np.exp((0.12*np.sin(t)-0.5) * (y + 0.16 *np.sin(t)) ** 2)) / (1 + np.exp(-20 * (5 * y + np.sin(t))))
    x_2 = ((1.5 + 0.8 * (y + 0.2*np.sin(t)) ** 3) * (1 + np.exp(20 * (5 * y +np.sin(t)))) ** -1)
    x_3 = (1+np.exp(-(100*(y+1)+16*np.sin(t))))
    x_4 = (0.2 * (np.exp(-(y + 1) ** 2) + 1)) / (1 + np.exp(100 * (y + 1) + 16*np.sin(t)))
    x_5 = (0.1 / np.exp(2 * (10 * y + 1.2*(2+np.sin(t))*np.sin(t)) ** 4))
    x = x_1 + (x_2 / x_3) + x_4 + x_5
    return x

t = FloatSlider(min=0.1, max=5.0, step=0.1, value=0)
y = np.arange(-3, 3.01, 0.01)

@interact(t=t)
def plot_oppai(t):
    x = oppai(y,t)
    plt.figure(figsize=(10,9))
    plt.axes().set_aspect('equal', 'datalim')
    plt.grid()
    plt.plot(x, y, 'black')
    plt.show()

さてこの関数を実行すると
スクリーンショット 2019-07-20 17.21.29

こんな感じになり
ウィジェットを動かすと揺れます!!!!

そもそもの
こんな関数を考えた人間に拍手!!!

xの値をうまく生成すると
理想の形に近づけるのではなかろうかと
思われますので

色々試してみてはいかがでしょうか!!!

今回はここまでです

それでは