🐣

Windows11でJuliaに入門しよう!

2022/10/27に公開

このノートでは, JuliaをインストールしてJupyter Notebookの環境構築や, 各種パッケージの使い方を学びます. Windows11の端末をセットアップにあたり, まずは下記の手順に従って隠しファイルや拡張子を表示するなどの設定を済ませておきましょう.

https://zenn.dev/ohno/books/356315a0e6437c/viewer/5412fb

Juliaのインストールから起動まで

JuliaはMicrosoft Storeからインストールできます. いい時代になりましたね.

https://www.microsoft.com/store/productId/9NJNWW8PVKMN

  1. 上記のリンクにアクセスして, 右上のGet in Store appをクリックします.
  2. 小さいウィンドウが開くのでインストールをクリックするとそのままインストールされます. 自動でインストールは終了しますので, 最後に開くを押して下さい.


  3. 初回だけインストールが入ります(一瞬なので気づかないかもしれません)が, その後に勝手にJuliaが起動します.

  4. 以上が「起動するまで」でした. ついでにHello, World!しましょう.

Jupyter Notebook

Juliaユーザーには作業のほとんど全てをJupyter Notebook上で行っている人も少なくありません. まずは使ってみましょう.

インストール

  1. 先ほどの画面で]を押すとpkgモードに変わります.

  2. pkgモードでadd IJuliaを押すとIJulia.jlがインストールされます. 他のパッケージも同じようにadd ~~~としてインストールするので, 覚えておきましょう.

  3. インストールが終わったらバックスペースを押します. すると, pkgモードが終了して, 通常のREPLモードに戻ります.

  4. REPLにusing IJulia; notebook(detached=true)を入力するとJupyter Notebookが起動します. 初回だけinstall Jupyter via Conda, y/n?と表示されるのでyと打ってEnterを押します.

  5. するとインストールが始まり, 自動的にJupyter Notebookが起動します.



REPLは過去の命令を覚えている

これを知っているのと知らないのでは作業効率, 成長速度に雲泥の差が出ますので, 早めに教えるべきだと考えています. 一度, Juliaのウィンドウの×ボタンを押して閉じて, 起動しなおしましょう.

  1. REPLで↑キーを押すと過去のコマンドの履歴が表示されます.

  2. Enterを押して再びJupyter Notebookを起動しましょう.

ノートブック上でのHello World!

  1. 適当なディレクトリに移動します. 今回はデスクトップにしましょう.
  2. 適当なディレクトリに移動した後, 右上のNewをクリックし, Juliaのバージョンを選択してノートブックを作成します.
  3. ノートブックファイルが作成され, 自動的に新しいタブでノートブックが開きます. 左上のUntitledをクリックし, ノートブックの名前を変えましょう.
  4. ノートブックのタイトルを入力してRenameを押します.
  5. 真ん中に表示されているボックスにprintln("Hello World!")を入力し, 上の再生ボタン▷をクリックします.
  6. 出力としてHello World!が表示されます.

Juliaとノートブックの使い方

  1. 下記のコードをノートブックのセルに入力してみてください. このxyのことを変数といいます. x = 1は「xに1を代入する」という意味です. 数学とは違い「等しい」という意味ではないので気を付けてください. Jupyter Notebookでは最後の行を評価した値が出力されます. 今回は最後のxの値が評価されます.
代入
x = 1
y = 2
x = y
  1. 次は簡単な計算をしてみましょう. 最後にzの値が評価されますので, 3が出力されます. 単にzだけでも同じ結果となります. println(z)とした場合は, コードの途中でも出力されます.

簡単な計算
x = 1
y = 2
z = x + y
  1. 三角関数や指数関数などは特に準備なく使えます. 円周率はπpiで使えます. π/2はπ÷2という意味です.
関数や定数
sin(π/2)
  1. Markdown記法やLaTeX記法を使うこともできます. セルを選択した状態で上のCodeと書いてあるプルダウンをクリックします. そこにMarkdownという選択肢があるので, これをクリックしましょう. すると, セル左側が少し変わります.

  2. このセルに, 次の内容を入力しましょう. 見出しは#や##での後に半角空白を入れて# タイトルのように書きます. 数式は$$で囲むとLaTeXのように使えます. Markdown記法についてはこちらなどを参照してください. そして, 再生ボタン▶を押すと見出し, テキスト, 数式に置き換わります.

Markdown記法の例
# マークダウンの例

例えば加法定理は以下のように書く.

$$
    \sin(\alpha+\beta) = \sin\alpha \cdot \cos\beta + \cos\alpha \cdot \sin\beta
$$
  1. 最後に, 加法定理を数値的に検証しましょう. 変数にはギリシャ文字を使うこともできます. Juliaに限らず, コンピュータの計算では, 異なる方法で計算した結果が最後の1桁まで一致することはほとんどないので, 最後の1桁は気にしなくても問題ありません. どうしても気になる方はほかのプログラミング言語で同じ計算をしてみてください.
加法定理の検証
α = 1
β = 2
println( sin(α+β) )
println( sin(α)*cos(β)+cos(α)*sin(β) )

いろいろなパッケージの使い方

グラフを描写する

  1. Juliaでは, Plots.jlというパッケージを用いて関数や配列をプロットすることができる. CSVファイルなどをプロットしたい場合は, 一旦, 配列に格納する必要がある.
初回だけ必要なインストール作業
using Pkg
Pkg.add("Plots")
毎回必要な宣言
using Plots
実行例
plot(sin)

https://zenn.dev/ohno/articles/3101433fbe9231

最適化問題を解く

  1. Optim.jlでは様々な方法で最適化問題を解くことができる. 最急降下法を用いてf(x)=(x+2)^2+1の最小値・最小点を求める.
初回だけ必要なインストール作業
using Pkg
Pkg.add("Optim")
毎回必要な宣言
using Optim
実行例
f(x) = (x[1] + 2.0)^2 + 1
x0 = [5.0]
optimize(f, x0, method=GradientDescent())

https://zenn.dev/ohno/articles/2a1dc7d609e5bc

固有値問題を解く

  1. LinearAlgebra.jlを使えば簡単に行列の固有値や固有ベクトルを求めることができる. LAPACKが裏で動いているので, 安心感がある. LinearAlgebra.jlは最初からインストールされている.
毎回必要な宣言
using LinearAlgebra
実行例
A = [-4 0 6;
     -3 2 3;
     -3 0 5]
eigen(A)

https://zenn.dev/ohno/articles/cb10dc5b3f5bbc

特殊関数を使う

  1. Juliaには様々な特殊関数を利用するためのパッケージが用意されている.
初回だけ必要なインストール作業
using Pkg
Pkg.add("SpecialFunctions")
毎回必要な宣言
using SpecialFunctions
実行例
gamma(1/2)^2

https://zenn.dev/ohno/articles/f352f354e5cf96

他の記事の紹介

  1. 他にも様々なノートが公開されているので, 気になるものを勉強しましょう.

ノートを終了する

  1. 左上の File > Close and Halt から終了しましょう. タブを閉じるだけだとカーネルが生きています.

今回, 作成したノートブックはこちらのリンクからダウンロードできます.
https://gist.github.com/ohno/1291f2b167e665ec4c04886e4cf0e8fd

Discussion