[数学] 黄金比の循環調和曲線

黄金比を適用した、循環調和曲線の数式を説明します。また、複数の循環調和曲線の図を作成する、SageMath スクリプトも公開します。

(There is the English(英語) page.)

(最終更新日: 2021年2月21日)

前書き

循環調和曲線とは、“cyclic-harmonic curve” 1 2 3 のことです。 まだ、一般的に通用する日本語訳がないようなので、個人的に訳してみました(直訳です)。

Web で、バラ曲線 (または、正葉曲線) の勉強をしているときに、循環調和曲線のことを知りました。

この曲線を描いた図の中に、大小の花びらで構成されたような図があります。先に示した図もその一つです。今回は、このような図の、大小の花びらの長さに、黄金比 を適用してみました。その数式を、以下 に説明します。

また、黄金比を適用した、複数の循環調和曲線の図を作成する、SageMath スクリプトも作成しました。そのスクリプトは、このページの 後半 で公開します。

黄金比の循環調和曲線

循環調和曲線の数式

循環調和曲線は、以下の極座標の方程式で表されます。

r=acos(ndθ)+b

  • nd は、正の整数です。
  • ab は、正の実数です。
  • θ は、0 から 2dπ まで、変化します。

ちなみに、この式の b0 にした場合が、バラ曲線 に該当します。

循環調和曲線を描いた図は、以下の条件のときに、大小の花びらで構成されたような図になります。

  • nd
  • a>b

このとき、大小の花びらの枚数は、同じ数で、以下の式で求められます。

ngcd(n,d)

また、大小の花びらの長さは、以下の式で求められます。

  • 大きな花びらの長軸の長さ (下図の l ) は、a+b です。
  • 小さな花びらの長軸の長さ (下図の s ) は、ab です。
大小の花びらの長さ

黄金比の適用

今回は、大小の花びらの長さの比率を、以下のように、黄金比 にします。

s:l=(ls):s=1:1+52

この式に、花びらの長さの式を代入すると、以下のようになります。

(ab):(a+b)=1:1+52

循環調和曲線の式の変数 a は、図の倍率に相当します。 そこで式を単純にするために、a=1 とします。すると、前述の式は、以下のようになります。

(1b):(1+b)=1:1+52

(1b)×1+52=1+b

この式を b について解くと 4 、以下のようになります。

b=520.236>0

ab が決定したので、大小の花びらの長さを計算してみると、それぞれ、以下のようになります。 5

l=1+(52)1.236s=1(52)0.764

最後に、循環調和曲線の式に、決定した ab の値を代入すると、以下のようになります。

r=cos(ndθ)+52

あとは、この式の nd に、いろいろな数値を代入すれば、黄金比で構成された、様々な図を描くことができます。

以下に、例を示します。

例1 :   n=1 ,   d=1

nd は、n=1d=1 の組み合わせが、一番簡単な例になります。

以下に、使用した数式と、SageMath version 9.0 での実行結果を、順に示します。

r=cosθ+52

sage: var('θ') # シンボリック変数 θ を作成します。一回だけ実行すれば良いです。
sage: polar_plot(cos(θ)+sqrt(5)-2, (θ, 0, 2*pi), plot_points=200)
黄金比の循環調和曲線 (n=1, d=1)

上図で、大小の花びらの長さが、計算した値と等しいことを、確認できます。

例2 :   n=3 ,   d=1

r=cos3θ+52

sage: polar_plot(cos(3*θ)+sqrt(5)-2, (θ, 0, 2*pi), plot_points=200)
黄金比の循環調和曲線 (n=3, d=1)

例3 :   n=5 ,   d=3

r=cos(53θ)+52

sage: polar_plot(cos((5/3)*θ)+sqrt(5)-2, (θ, 0, 2*3*pi), plot_points=200*3)
黄金比の循環調和曲線 (n=5, d=3)

例4 :   n=12 ,   d=7

前述の3つの例で、花びらの長さが、計算した値と等しいことを、確認できたと思います。そこで、これ以降の例では、図形の美しさを楽しめるように、座標軸を表示しないことにします。

r=cos(127θ)+52

sage: polar_plot(cos((12/7)*θ)+sqrt(5)-2, (θ, 0, 2*7*pi), plot_points=200*7, axes=False)
黄金比の循環調和曲線 (n=12, d=7)

例5 :   n=25 ,   d=6

r=cos(256θ)+52

sage: polar_plot(cos((25/6)*θ)+sqrt(5)-2, (θ, 0, 2*6*pi), plot_points=200*6, axes=False)
黄金比の循環調和曲線 (n=25, d=6)

例6 :   n=49 ,   d=6

r=cos(496θ)+52

sage: polar_plot(cos((49/6)*θ)+sqrt(5)-2, (θ, 0, 2*6*pi), plot_points=200*6, axes=False)
黄金比の循環調和曲線 (n=49, d=6)

複数の循環調和曲線の図を作成するスクリプト

前述した、循環調和曲線の式から、複数の図を、まとめて作成するための、SageMath スクリプトと、その作成例を、以下に示します。

stop_int = 50 # >= 2

file_ext = "svg"
#file_ext = "png"

var('θ') # Create a symbolic variable 'θ'

for numer in range(1, stop_int):        # Numerator
    for denom in range(1, (numer + 1)): # Denominator

        if gcd(numer, denom) != 1:
            continue

        c_h_curve = polar_plot( cos((numer/denom)*θ)+sqrt(5)-2, \
            (θ, 0, 2*denom*pi), plot_points=200*denom)

        file_name = "c_h_curve_" + str(numer) + "_" + str(denom) + \
            "_gold." + file_ext

        c_h_curve.save(file_name, axes=False)

        print(file_name + " saved.")
黄金比の循環調和曲線 (n=29, d=13)
ファイル名: c_h_curve_29_13_gold.svg

このスクリプトを実行するには、スクリプトのコピーをファイル (例えば、make_figures.sage) に保存し、端末で、以下のコマンドを実行してください。

$ sage make_figures.sage

このスクリプトは、nd の値の、1 から (stop_int1) までの範囲の、全ての組み合わせの図を作成します。 ただし、同じ形の図になる、一部の nd の値の組み合わせの図は、出力しないようにしています。

例えば、以下の3つの循環調和曲線の式は、同じ形になります。

r=cos(32θ)+52r=cos(64θ)+52r=cos(96θ)+52

このスクリプトでは、一番目の図のみ出力し、それ以降の同じ形の図は、出力しません。 そのため、このスクリプトで出力される図は、全て違う形になります。

スクリプト内の、stop_int 変数の値を変更すれば、作成される図の数を変更することができます。 以下に例を示します。

stop_int の値 作成される図の数
30 270
50 754
100 3004

stop_int=100 の時に、作成された図を確認したところ、n=50 以上の循環調和曲線の図は、どれも似たような図になりました。よって、このスクリプトを試すときは、stop_int=50 で、十分だと思います。

また、このスクリプトでは、図を SVG 形式で出力していますが、出力されるファイル名の拡張子を変更することで、図を別の形式で出力することもできます。例えば、図を PNG 形式で出力するときは、スクリプト内でコメントアウトしている箇所を変更してください。

以上、興味のある方は、お試しください。

追記

色を塗った、循環調和曲線の例を、別のページ に掲載しています。


  1. Robert E. Moritz, The General Theory of Cyclic-Harmonic Curves. Annals of Mathematics Second Series, Vol. 23, No. 1 (Sep., 1921), pp. 29-39 (11 pages).
    DOI: 10.2307/1967779
    Documentation on JSTOR↩︎

  2. Sonja Gorjanc, Ema Jurkin, Generalized Rose Surfaces and their Visualizations. 2013.
    Documentation on arXiv↩︎

  3. Cyclic-harmonic curves on mathcurve.com↩︎

  4. 計算手順を以下に示します。

    (1b)×1+52=1+b(1b)(1+5)=2(1+b)(1+5)(1+5)b=2+2b(1+5)b2b=2(1+5)(1+5)b+2b=2+(1+5)(3+5)b=1+5b=1+53+5=(1+5)(35)(3+5)(35)=3+5+35595=8+454=2+5=52↩︎

  5. 検算手順を以下に示します。

    ls=1+(52)1(52)=1+535=(1+5)(3+5)(35)(3+5)=35+35+595=2+254=1+52=φ↩︎

コメント

このブログの人気の投稿