[数学] 黄金比の循環調和曲線
黄金比を適用した、循環調和曲線の数式を説明します。また、複数の循環調和曲線の図を作成する、SageMath スクリプトも公開します。
(There is the English(英語) page.)
(最終更新日: 2021年2月21日)
前書き
循環調和曲線とは、“cyclic-harmonic curve” 1 2 3 のことです。 まだ、一般的に通用する日本語訳がないようなので、個人的に訳してみました(直訳です)。
Web で、バラ曲線 (または、正葉曲線) の勉強をしているときに、循環調和曲線のことを知りました。
この曲線を描いた図の中に、大小の花びらで構成されたような図があります。先に示した図もその一つです。今回は、このような図の、大小の花びらの長さに、黄金比 を適用してみました。その数式を、以下 に説明します。
また、黄金比を適用した、複数の循環調和曲線の図を作成する、SageMath スクリプトも作成しました。そのスクリプトは、このページの 後半 で公開します。
黄金比の循環調和曲線
循環調和曲線の数式
循環調和曲線は、以下の極座標の方程式で表されます。
と は、正の整数です。 と は、正の実数です。 は、 から まで、変化します。
ちなみに、この式の
循環調和曲線を描いた図は、以下の条件のときに、大小の花びらで構成されたような図になります。
このとき、大小の花びらの枚数は、同じ数で、以下の式で求められます。
また、大小の花びらの長さは、以下の式で求められます。
- 大きな花びらの長軸の長さ (下図の
) は、 です。 - 小さな花びらの長軸の長さ (下図の
) は、 です。
黄金比の適用
今回は、大小の花びらの長さの比率を、以下のように、黄金比 にします。
この式に、花びらの長さの式を代入すると、以下のようになります。
循環調和曲線の式の変数
この式を
最後に、循環調和曲線の式に、決定した
あとは、この式の
以下に、例を示します。
例1 : ,
以下に、使用した数式と、SageMath version 9.0 での実行結果を、順に示します。
sage: var('θ') # シンボリック変数 θ を作成します。一回だけ実行すれば良いです。
sage: polar_plot(cos(θ)+sqrt(5)-2, (θ, 0, 2*pi), plot_points=200)
上図で、大小の花びらの長さが、計算した値と等しいことを、確認できます。
例2 : ,
sage: polar_plot(cos(3*θ)+sqrt(5)-2, (θ, 0, 2*pi), plot_points=200)
例3 : ,
sage: polar_plot(cos((5/3)*θ)+sqrt(5)-2, (θ, 0, 2*3*pi), plot_points=200*3)
例4 : ,
前述の3つの例で、花びらの長さが、計算した値と等しいことを、確認できたと思います。そこで、これ以降の例では、図形の美しさを楽しめるように、座標軸を表示しないことにします。
sage: polar_plot(cos((12/7)*θ)+sqrt(5)-2, (θ, 0, 2*7*pi), plot_points=200*7, axes=False)
例5 : ,
sage: polar_plot(cos((25/6)*θ)+sqrt(5)-2, (θ, 0, 2*6*pi), plot_points=200*6, axes=False)
例6 : ,
sage: polar_plot(cos((49/6)*θ)+sqrt(5)-2, (θ, 0, 2*6*pi), plot_points=200*6, axes=False)
複数の循環調和曲線の図を作成するスクリプト
前述した、循環調和曲線の式から、複数の図を、まとめて作成するための、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.")
このスクリプトを実行するには、スクリプトのコピーをファイル (例えば、make_figures.sage
) に保存し、端末で、以下のコマンドを実行してください。
$ sage make_figures.sage
このスクリプトは、
例えば、以下の3つの循環調和曲線の式は、同じ形になります。
このスクリプトでは、一番目の図のみ出力し、それ以降の同じ形の図は、出力しません。 そのため、このスクリプトで出力される図は、全て違う形になります。
スクリプト内の、
作成される図の数 | |
---|---|
30 | 270 |
50 | 754 |
100 | 3004 |
また、このスクリプトでは、図を SVG 形式で出力していますが、出力されるファイル名の拡張子を変更することで、図を別の形式で出力することもできます。例えば、図を PNG 形式で出力するときは、スクリプト内でコメントアウトしている箇所を変更してください。
以上、興味のある方は、お試しください。
追記
色を塗った、循環調和曲線の例を、別のページ に掲載しています。
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↩︎Sonja Gorjanc, Ema Jurkin, Generalized Rose Surfaces and their Visualizations. 2013.
Documentation on arXiv↩︎計算手順を以下に示します。
検算手順を以下に示します。
コメント
コメントを投稿