2019-12-26

Jupyter notebook でサイクロイド曲線をいじってみる

info
  • この記事はもともと 「Jupyter notebookの記事を投稿してみた」というタイトルで投稿していましたが、 需要がなさそうなのでタイトルを変えました。

ちなみにこのブログは Nikola という静的サイトジェネレータで作成しましたが、NextJSに引っ越しました。 NextJSでJupyterを表示するいいライブラリがなかったので自作しました。 GitHub - righ/react-ipynb-renderer: ipynb renderer for ReactJSipynb renderer for ReactJS. Contribute to righ/react-ipynb-renderer development by creating an account on GitHub.https://github.com/righ/react-ipynb-renderer

というわけで、この記事はそのライブラリを使って表示してみたというデモ的なものです。

図形描画

描画ライブラリは色々ありますが、割と一般的な matplotlib を使います。

面積と体積

SymPy を使って、(上記で描画した図形の)面積と体積を求めます。

ニュートン法

最後に先程の塗りつぶした部分(一番最初の図形)の面積の近似値を求めます。

info
  • 近似解を求めるためにニュートン法というものを使います。
  • 簡単に言うと 接線の X切片が解に近づいていく性質を利用するということだそうです。

汎用的なコードが見つからなかったので自作しました。

pandas も使いたいので DataFrame を使って値の遷移を表してみます。

なんとか求めることができました。

参考

matplotlibで領域の図示 - 気ままに宙をみるmatplotlibで領域に色を付けてみたのでメモ。 fill_between関数fill関数を使うと大体できます。 sin(x)とcos(x)の間の領域に色を付ける。 まずはsin(x)とcos(x)の間に色を付けてみます。 fill_betweenは3つの変数を取ります。 x: x軸の範囲指定 y1,y2: この2つの間を塗りつぶすあとはオプションでfacecolorは色、alphaは透過度なんかを指定できます。 import numpy as np import matplotlib.pyplot as plt from math import * x = np.arange(0,10,…https://cranethree.hatenablog.com/entry/2015/07/25/204608 サイクロイドの面積・回転体の体積・長さ定期試験・大学入試に特化した解説。置換積分を要する。試験頻出度トップクラスの図形。https://examist.jp/mathematics/sum-volume-length2/cycloid-svl/ ニュートン法とは何か??ニュートン法で解く方程式の近似解 - Qiitaニュートン法とはニュートン法とは、f(x)=0になるようなxを求めるアルゴリズムの1つで、方程式の解を近似的に求めることができる方法です。ニュートン法を用いると、√2の値やsin(x)=0.5に…https://qiita.com/PlanetMeron/items/09d7eb204868e1a49f49