
Juliaでフィボナッチ数列/ビネの公式を表現してみたい
Juliaとは
Juliaは何やら数学向きな言語らしく、チラホラと名前を見る機会があったので、触ってみました。
「フレキシブルな動的プログラミング言語であり、科学分野や計算処理におけるプログラミングに適し、これまでの静的プログラミング言語に匹敵するパフォーマンスを提供」するとのこと。
https://hshindo.github.io/julia-doc-ja-v0.6/manual/introduction.html
ダウンロード
https://julialang.org/downloads/
公式サイトから任意のバージョンのJuliaをダウンロードしてください。今回は1.5を使用してます。
dmgファイルを実行し、appファイルをApplicationフォルダに入れれば準備完了。
appファイルを実行すると、ターミナルが起動し、Juliaが起動した状態となります。
算術演算式
Juliaでは数式を書くように算術演算式を記載することができます。
julia> x = 10
10
julia> y = 2x+1
21例えば、一辺を10,8とする直角三角形があった場合、(単位は考慮しない)
xはピタゴラスの定理を用いつつ、平方根を計算するsqrtを使って算出することができます。
julia> a = 10
10
julia> b = 8
8
julia> x = sqrt((a^2) - (b^2))
6配列
表題とはあまり関係ないのですが、慣れが必要だと感じたのは配列。
配列を定義すると入れた値によって何の配列なのか出力されます。
julia> a = \[1, 2, 3\]
3-element Array{Int64,1}:
1
2
3julia> a = \["anti", "pat", "tern"\]
3-element Array{String,1}:
"anti"
"pat"
"tern"ここまではいいのですが、antiを参照する際には a[1] と入力します。
0番目というものに慣れてしまった人には逆に分かりにくい!
フィボナッチ数列にトライ
ではやってみます。
sqrtのようにJuliaには様々数学に使う関数がデフォルトで定義されています。また、定数も珍しいものがあります。
julia> Base.MathConstants.golden
φ = 1.6180339887498...
julia> 1\*(Base.MathConstants.golden)
1.618033988749895黄金数φですね。
折角なのでこれを使ってフィボナッチ数列をビネの公式を使い解いてみようとします。

画像はwikipediaより参照
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0
julia> n = 6
6
julia> φ = Base.MathConstants.golden
φ = 1.6180339887498...
julia> Fn = ((φ^n) - (-φ)^-n) / sqrt(5)
8.0結構そのままスッキリ書けますが、当然nが大きなると丸め誤差が起きてしまいます。
julia> n = 10
10
julia> φ = Base.MathConstants.golden
φ = 1.6180339887498...
julia> Fn = ((φ^n) - (-φ)^-n) / sqrt(5)
54.99999999999999ふむふむ、、、使いどころが難しそうです。
こちらからは以上です。
YukiOzasa