Code
using Plots
plot(sin,
x->sin(2x),
0,
2π,
=false,
leg=(0,:lavender)) fill
数値計算への新たな接近
司馬博文
9/05/2020
7/04/2024
A Blog Entry on Bayesian Computation by an Applied Mathematician
$$
$$
Julia は Why We Created Julia の文書と共に,2/14/2012 に公開された科学計算向けの言語である.論文 (Bezanson et al., 2017) が発表されて後,2018 年にはバージョン 1.0 がリリースされた.
現在の最新は,12/26/2023 リリースの v1.10.0
である.
Quarto は Jupyter を通じて,Pytho, R だけでなく Julia もサポートしている.1
Quarto で Julia を始めるために,最も簡便なインストール方法は こちら.
まずは Julia をインストール
すると,julia
コマンドで対話的セッションを開始できる.これを Julia では REPL (Read-Eval-Print Loop) と呼ぶ.
続いて,Quarto で julia
ブロックを動かすには,IJulia
パッケージをインストールする.次を REPL で実行する:
これで,Jupyter Notebook で Julia を使うことができる.2
Revise.jl
も追加すると,Julia セッションを再起動するためが省ける
Jupyter Cache も追加すると,ソースが変わらない限りその出力がキャッシュされ,再実行が控えられる.
Julia を始めるにあたって最も心強いのは,Julia 独自のパッケージマネジャー Pkg
の存在である.
julia
キーワードで立ち上がる対話的実行環境 REPL(第 [@-sec-REPL] 節)において,]
キーでパッケージモードに入り,add
でパッケージを追加する.
でパッケージの情報が表示される.
でアップデートが可能である.
パッケージ管理システム Pkg
が提供する環境分離システムの単位を プロジェクト という.3
generate
は新たなディレクトリと,Project.toml
と src/MyPackage.jl
を作成する.
activate .
はパスを引数に取り,そのディレクトリにある Project.toml
を有効化する.
引数なしで activate
を実行することで,デフォルトの環境に戻る.
は,working directory にプロジェクトファイル(Project.toml
と Manifest.toml
)を作成する.
何よりコードの見た目の特徴に,LaTeX コマンドと数学記号が使える ことがある.
law tex を打って tab を押すと処理されるのである!
加えて,プロットのタイトルにも使える:
これと合わせ,変数名にはUnicodeが許される.÷
, ^
などの使用が直感的に行える.
また,変数の前に数値をつけると暗黙に乗算と解釈する.
そのほかにも関数定義など,数学的にも直感的に読める,文芸的プログラミングの精神が込められている言語である.
などのコマンドが使える.
Base
クラスに属する.julia
コマンドで起動される
—project
—project=@.
の略記..
にある Project.toml
によるプロジェクトを有効化する,JULIA_PROJECT
を @.
に変更することと等価.Ctrl+D
かexit()
で終了ans
:直近の evaluated term が格納されて居る.5つのモードがある.
?
で発動.backspace で戻る.使いやすい!]
で発動.標準では GitHub のリポジトリ上の任意のモジュールがインストール可能.;
で発動Pkg
]
で package mode に入る.
st
(= status
の alias)
Status ~/.julia/environments/v1.5/Project.toml
rm
(= remove
の alias)
up
(= update
の alias)
gc
(garbage collection)
Plots
Soss
:確率的プログラミングJLD2
:数値実験の結果を保存LaTeXStrings
:LaTeX 文字列を扱うstandard library = built-in packagesであるが,Base以外は,addして依存パッケージとして逐一追加する必要がある.これがprojectという観念である.
Package management Config fileとしてはTOML形式を採用している.可読性も高い. * ディクショナリ構造に明確にマッピングされるように設計されている * Tom’s Obvious, Minimal Language * TOMLの構文は、大部分がキーと値の組 1. key = “value” 3. [テーブル名] 4. # コメント * の3種類からなる。
pkg管理モードのコマンド * activate . * > Activating environment at ~/tmp/myproject/Project.toml
* Project.tomlを読み込んで,新たなプロジェクトを実行する. * Prompt名が新たなプロジェクト名に更新される. * installされているpackageも刷新される. * これはうまくできているなぁ! * REPLじゃない時は—project=@.オプションでjuliaから実行する.
Package作成
Julia packageに必要な要素は次のとおり. * README.md * LICENSE * Project.toml * src * source code * Package名と同じ名前の.jlファイル. * test * test code * docs * documentation * deps * パッケージの依存ライブラリやビルドスクリプトを収める * 継続的インテグレーションのための設定ファイル *Manifest.tomlは開発環境に特異的で,バージョン管理ツール(GitHub)で共有しないのが一般的.
pkg管理モードのコマンド * generate MyPackage * MyPackageディレクトリを作り,その中にProject.tomlとsrc/MyPackage.jlを作る. * Project.tomlには,UUIDを毎回ランダムに生成し,versionやnameやauthorが登録される. * こうしてつくったMyPackageはすぐにusing MyPackageとMyPackage.greet()で呼べる.
Jupyter Notebook をインストールしていない場合,install Jupyter via Conda, y/n? [y]: n
の確認がなされる.これに y
で応えると,Conda.jl
パッケージを通じて,Miniconda
から最小限の Jupyter 環境がインストールされ,グローバル環境は変わらない.↩︎
正確には,Project.toml
(とManifest.toml
)により定義される写像がプロジェクトである.↩︎
to reproduce weakly informative resampling codes↩︎