プログラミング/julia のバックアップの現在との差分(No.1)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

* 噂の julia を入れてみる? [#ecc00f6e]
* 目次 [#y14e9ee5]

* jupyter も入れる [#zfda9658]
#contents

http://jupyter.org/install.html を見ながら
* 噂の julia をやってみる [#d16d96b0]

 LANG:console
 $ python3 -m pip install --upgrade pip
  /usr/bin/python3: No module named pip
 $ sudo apt-get install python3-pip
  以下の追加パッケージがインストールされます:
    libpython3-dev libpython3.4 libpython3.4-dev python3-colorama python3-dev 
    python3-distlib python3-html5lib python3-requests python3-setuptools python3-urllib3
    python3-wheel python3.4-dev
  提案パッケージ:
    python3-genshi python3-lxml python3-ndg-httpsclient python3-openssl python3-pyasn1
  以下のパッケージが新たにインストールされます:
    libpython3-dev libpython3.4 libpython3.4-dev python3-colorama python3-dev python3-distlib 
    python3-html5lib python3-pip python3-requests python3-setuptools
    python3-urllib3 python3-wheel python3.4-dev
  アップグレード: 0 個、新規インストール: 13 個、削除: 0 個、保留: 2 個。
  42.0 MB のアーカイブを取得する必要があります。
  この操作後に追加で 62.8 MB のディスク容量が消費されます。
 $ sudo python3 -m pip install --upgrade pip
  Downloading/unpacking pip from https://pypi.python.org/packages/ac/95/a05b56bb975efa78d3557efa36acaf9cf5d2fd0ee0062060493687432e03/pip-9.0.3-py2.py3-none-any.whl#md5=d512ceb964f38ba31addb8142bc657cb
    Downloading pip-9.0.3-py2.py3-none-any.whl (1.4MB): 1.4MB downloaded
  Installing collected packages: pip
    Found existing installation: pip 1.5.6
      Not uninstalling pip at /usr/lib/python3/dist-packages, owned by OS
  Successfully installed pip
  Cleaning up...
 $ python3 -m pip --version
  pip 9.0.3 from /usr/local/lib/python3.4/dist-packages (python 3.4)
 $ python3 -m pip install jupyter
 $ jupyter notebook
  [I 16:57:56.316 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
  Traceback (most recent call last):
    File "/usr/local/bin/jupyter-notebook", line 11, in <module>
      sys.exit(main())
    File "/usr/local/lib/python3.4/dist-packages/jupyter_core/application.py", line 266, in launch_instance
      return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
    File "/usr/local/lib/python3.4/dist-packages/traitlets/config/application.py", line 657, in launch_instance
      app.initialize(argv)
    File "<decorator-gen-7>", line 2, in initialize
    File "/usr/local/lib/python3.4/dist-packages/traitlets/config/application.py", line 87, in catch_config_error
      return method(app, *args, **kwargs)
    File "/usr/local/lib/python3.4/dist-packages/notebook/notebookapp.py", line 1507, in initialize
      self.init_webapp()
    File "/usr/local/lib/python3.4/dist-packages/notebook/notebookapp.py", line 1297, in init_webapp
      self.http_server.listen(port, self.ip)
    File "/usr/local/lib/python3.4/dist-packages/tornado/tcpserver.py", line 144, in listen
      sockets = bind_sockets(port, address=address)
    File "/usr/local/lib/python3.4/dist-packages/tornado/netutil.py", line 163, in bind_sockets
      sock.bind(sockaddr)
  OSError: [Errno 99] Cannot assign requested address
 $ jupyter notebook --ip=127.0.0.1
julia を Mathematica 代わりに使うと便利なのかどうか、試してみようと思います。

* jupyter 環境を用意する [#yf1b65f6]

jupyter は多言語対応の [[REPL (Read-eval-print loop)>https://yyyank.blogspot.jp/2015/01/web-repl.html]] 環境で、
ブラウザからアクセスできるのでかなり便利。

julia を jupyter から使うとグラフなども見やすく表示できるし、
結果を Gist などに保存して、履歴を管理したり一般に公開することもできる。

** juliabox [#s1ed00de]

まずは自分でインストールするよりも juliabox で試すのが良いみたい。

https://juliabox.com/

&ref(juliabox.png,,25%);

サイト上部の "Log in with XXX" のところからログインしないと何もできないので始め面食らうけれど、
ログインしてしまえばすぐに使える julia on jupyter が手に入ってとても便利。

自前で jupyter & julia を容易するのは思った以上に面倒で、
人の jupyter notebook を再現しようとしてもやれアレが足りない、
これが足りない、となって凹む。

公開する jupyter notebook はなるべく juliabox 標準に合わせるのが吉なのだと思う。

どういう原理で動いているのかとか、どういう制限があるのかとか、まだよく分かってない。。。


** 自分で julia を入れてみる? [#ecc00f6e]

結構いろいろそこそこ大変。

&ref(julia-on-jupyter.png,border,50%);

*** 環境 [#xede4477]

Debian と Ubuntu で試しています。

*** 内容 [#le5b87df]

- [[インストール>プログラミング/julia/インストール]]
- [[jupyterの使い方>プログラミング/julia/jupyterの使い方]]
- [[juliaの文法>プログラミング/julia/juliaの文法]]
- [[グラフの書き方>プログラミング/julia/グラフの書き方]]
- [[Gist との連携>プログラミング/julia/gist との連携]]

* 情報源 [#z2d915b9]

- Juliaの関数について : https://qiita.com/phigasui/items/0f1becf4555d7f1fe728
- Julia練習帳 : https://gist.github.com/t-nissie/261896dfc388da246ce3
- りんごがでている - julia : http://bicycle1885.hatenablog.com/archive/category/Julia

* julia on jupyter の使い方 [#l51fd946]

インストール方法と使い方との記事を分けよう(意気込み

- ノートに目次を追加する -> nbextention の Table of Contents を使う

* 各種ライブラリ [#j4790879]

- 線形代数 https://docs.julialang.org/en/release-0.4/stdlib/linalg/
- 数値積分 [[Cubature>https://github.com/stevengj/Cubature.jl]]
-- 使用例: https://gist.github.com/osamutake/69ba5614e96d70b3b1644c240db4ba73
- 関数を最小化するパラメータを求める [[Optima>https://github.com/JuliaNLSolvers/Optim.jl]]

https://github.com/JuliaNLSolvers とか
* Mathematica でやった計算の後追いをやってみた [#ffbc741a]

[[プログラミング/平方根を使わずに距離を求める]]

と同じ計算を julia でやってみます。

#gist(osamutake/9cf0a93ebd9c4b443aa2565ae336791a)

** 雑感 [#yb4375bd]

- plotfunc2d のようなヘルパーを用意することで、julia でもかなり楽に「関数のグラフ」を書ける
- ただ、普通にやったのではグラフ描画時にメッシュ間隔が一定になってしまうため、グラフのクオリティを上げようとすると計算時間が非常に長いことかかってしまう
-- Mathematica は複雑な形状の部分のみメッシュを細かくするような最適化が働くので有利だ~
&attachref(mathematica-mesh-optimization2.png,,50%);
&attachref(julia-constant-mesh.png,,50%);~
Mathematica では「カド」にメッシュ点が来るけれど、何も考えずに julia でやるとメッシュ点が「カド」を外してしまうので、必要以上にメッシュを細かくしないとキレイなグラフにならない。
- それ以外にもいろいろ、まあ、julia でもできなくはない。できなくはないけど、、、Mathematica が使えるなら Mathematica を使うかなあ・・・
- julia の Plots を使っている限り、ちょっと表現力不足を感じる
-- PyPlot を直接呼び出せば違うのかもしれない???
* コメント・質問 [#e54e314b]

#article_kcaptcha


Counter: 5217 (from 2010/06/03), today: 1, yesterday: 0