今回はJuliaの関数を扱います🐜
開発環境
開発環境は以下の通りです。
項目 | 内容 |
---|---|
OS | Windows 10 Home 64bit |
Julia | 1.6.3 |
Cmder | 1.3.14 |
※Cmderは必須ではありません
解説
ここでは、関数の書き方についてスクリプトを見ながら解説します。 以下をコピペしてcos.jlとし、動かしながら確認してください。
<スクリプト例>
function calccos1(a, b, c) numerator = a^2 + b^2 - c^2 # 分子 denominator = 2 * a * b # 分母 ret = numerator / denominator return ret end function calccos2(a, b, c) numerator = a^2 + b^2 - c^2 denominator = 2 * a * b numerator / denominator end calccos3(a, b, c) = (a^2 + b^2 - c^2) / (2 * a * b) function main() # 3辺の長さ a, b, c = 5, 3, 4 # cosを計算 cosC = calccos1(a, b, c) println(cosC) cosC = calccos2(a, b, c) println(cosC) cosC = calccos3(a, b, c) println(cosC) end if abspath(PROGRAM_FILE) == @__FILE__ main() end
<出力結果>
C:\ari23\dev\julia λ julia cos.jl 0.6 0.6 0.6
余弦定理
Juliaは数値計算でよく用いられるプログラミング言語なので、題材として余弦定理を扱います。1
余弦定理の詳細はこちらに譲って、ここでは公式の確認です。
上記の三角形において、は次式で求めることができます。
これをJuliaで求めてみましょう。
関数
Juliaでの関数の書き方は、基本的に他のプログラミング言語と同じような形です。
function 関数名(引数)
~計算~
return 戻り値
end
function
のあとに関数名を書いて、()
内に引数が続きます。そして、関数内での計算を書いたら、値をreturn
で戻します。最後に、end
で囲ってあげればOKです。
前述のスクリプト例のcalccos1()
はこの形式で書いたものです。計算結果も正しいですね。
しかし、Julia言語では一般的な言語と異なる点が2つあります。
まず、Julia言語ではreturn
文を使わなくても、「最後に計算された結果が戻り値として戻される」という仕様があります。前述のcalccos2()
は、calccos1()
のreturn
だけを除いた関数ですが、同じ計算結果を出力しています。
また、Julia言語ではいわゆる数式のように、という形式で関数を書くことができます。それが前述の
calccos3()
です。
どちらも簡単な計算式であれば重宝しそうですね。2
詳細は公式ドキュメントを参照してください。
問題|sin∠C
今度はを求めてみましょう。条件は上記と同じです。念のため、ヒントを載せておきますね。
回答はこちら。
おわりに
Juliaの関数を簡単にまとめました。
上記以外にもご紹介したい仕様はありますが、それはまた別の機会に解説します。
以上、参考になれば幸いです(^^)
次はこちら。
参考文献
参考文献は以下の通りです。
Julia Documentation
Julia公式のドキュメントです。英語ですが、とても丁寧に書かれていて、疑問はだいたい解消されるのではと思います。読み応えも十分。1から始めるJuliaプログラミング
公式ドキュメントの分量があまりに多くて、もう少しまとまったものが欲しいと思って購入しました。基本から応用まで幅広くカバーされつつ、量も丁度良いです。