0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ブラマンジェ曲線の面積

Last updated at Posted at 2022-04-04

ブラマンジェ曲線

ブラマンジェ曲線は高木曲線(Wikipedia)とも呼ばれる中点を再帰的に分割してできるフラクタル曲線の一種とのこと。

image.png

その定義は以下のようにかなり難しい式で表されるますが、

\large T(x) = \sum_{n=0}^{\infty} \frac{s(2^nx)}{2^n} \\
ここで \large s(x)=min_{n \in Z}|x-n|

Wikipediaにもあるように三角波関数を波長・高さを半分にしていき足し合わせることで近似値を得ることが出来ます。n=1,2,4,10の結果を図にすると以下のようになります。

image.png

ブラマンジェ曲線の面積

そこでこのブラマンジェ曲線とX=0に囲まれた部分の面積です。三角波関数の面積が1/2の等比数列になっていることから0.5になりそうなことは容易に想像できまが、実際にプログラムで求めてみます。プログラムは三角波関数を再帰呼び出しで実装しています。

# ブラマンジェ曲線の面積
def blan(x1, dx, y1, y2):
  dx1, y0 = dx/2, (y1+y2)/2
  if dx <= TH:  
    return dx * y0
  ret = blan(x1, dx1, y1, y0+dx1) + blan(x1+dx1, dx1, y0+dx1, y2)
  return ret

TH = 1/(2**10)
area = blan(0, 1.0, 0, 0.0)  # x1, dx, y1, y2
print(f"Answer = {area:0.3f}")
# Answer = 0.500

となり予想どおりの結果が得られました。

このアルゴリズムはEuler Project: Problem 226に役に立ちます。

(開発環境:Google Colab)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?