ゴミのやま

完全自分向け雑記

Jupyter Notebookの導入メモ

pipでインストール

qiita.com

拡張機能を入れる

www.pynote.inf

とりあえず上のサイトから適当につっこむ。vimmerなので"jupyter-vim-binding"は必須。

 

リモートのスクリプトをいじる

  1. sshfsでマウントしていじる方法。この場合, スクリプトはローカルで実行される。sshfsはそれ以外にも便利なのでスパコンとファイルのやり取りを頻繁に行うシミュレーション屋はぜひ入れたい。リモートにあるデータをJupyter Notebookで扱うには [計算化学Wiki]
  2. リモートサーバでjupyterを動かす方法。
    この場合, スクリプトはリモートサーバ上で実行される。重い計算などはこっち。

qiita.com

t検定ってなんやねん

まず仮設をたてる

参考:

best-biostatistics.com

 

帰無仮説(Null hypothesis):差がない

対立仮説(Alternative hypothesis):差がある

帰無仮説の否定:差がないわけではない⇒差がある

 

t検定する

  1. 帰無仮説を立てる
    (差がないのではという仮設)
  2. p値を算出し有意水準(0.05にすることが多い)以下であることを示す
    (差がない可能性は非常に小さい)
  3. 帰無仮説を棄却
    (差がないわけではなさそう)
  4. 対立仮説を採択
    (差がある)

t-検定について

参考

best-biostatistics.com

 

母集団の分布

確率密度関数 (probablity density function)

母集団が分散δ2, 平均μの正規分布のとき, n個のサンプルを取り出した分布はt分布となる(確率密度関数f(t)は以下のwikiを参考)

ja.wikipedia.org

標本数

  • データが1種類:1群
  • データが2種類:2群

1群のT検定におけるNull hypothesis:(データと任意の値の差分が0と違いがない)

1群のT検定におけるNull hypothesis:(データ1とデータ2の差分が0と違いがない)

自由度

  • サンプル数 - 群 

t値 

  • 正規分布におけるz tableのように, 標準化したt分布?(自信なし)
  • 標準化されている(?)のでt tableから任意の確率区間を与えるt値が用意に計算できる
  • t分布の形は自由度による

t値とp値について - Qiita

Jupyter Notebookってなんやねん

目的

同僚がJupyter Notebookを使っていたのだが何が便利なのかわからないので全体像を掴む

参考:

ここを参考にしました

blog.tsurubee.tech

要は

  • Pythonスクリプト内部にLatexやmatplotlibを用いた色々な形式でメモができたり
  • それをチームとシェアできたりして便利

ということらしい。イメージとしてはインタラクティブPython実行環境+Evernoteって感じですかね(同僚に聞いたところチームとのシェア機能は使ってないらしい)

次にどうする

  • 調べたところ皆が便利便利言っているし, Pythonスクリプトを書く機会は多いのでとりあえず使ってみようかと思います
  • gitのようにリモートでアクセスできるらしい。慣れてきたらやる

    starpentagon.net

 

 

Pymol 便利なコマンド集

目的

自分用によく使うコマンドを整理しておく


ファイルのリストを得る

cmd.get_names()

ファイルの名前を書きかえる

cmd.set_name("fileA", "fileB"))

[応用]"filename A"を含むファイル名のみ抽出し, 一部を書き換える

for a in [file for file in cmd.get_names()  if "filenameA " in file]: cmd.set_name(a, a.replace("filenameA","filenameB"))

オブジェクトの色を変える

color blue, objectname*

GUIで選択された(=enable)なオブジェクトだけmesh表示にする

show mesh, enabled

背景色変更

bg_color silver

線形代数はなぜ便利なのか?

ここを参考にしました

qiita.com

 

なぜ便利か?

  1. 時間発展の運動方程式が解ける
    nstepにおける任意のベクトルに時間発展行列をかけてやることでn+1stepの結果が得られる
    特にベクトルを時間発展行列の固有ベクトルの線形結合で示してやることにより, 時間発展行列をかけた解が行列計算せずに得られる(なぜなら
    v_1 = Av_0 = λ_1\vec{e_i} + ....
    だから)
    従って, 0 < λ < 1の場合何度も乗算するとその項は消える(固有値の範囲は正規化されている?よくわからなかった)

  2. 離散化手法の妥当性チェックに使える
    時間発展行列Aの行列式を調べてやることで, 計算が発散するかわかる
    det|A| > 1の場合, Aによる写像が面積増加をもたらす⇒発散 

まとめ

  • 時間発展に限らず微分方程式を解くのに便利(但し離散化処理が必要)

次にどうする

線形代数を再学習する

背景

応用数学分野において行列計算のために線形代数の知識は必須。しかし著者は大学の基礎教養でやって以来ご無沙汰なので基礎計算はできるものの概念は未だによくわかっていない。

 

目的

 

現在持ってる知識

  • 行列に対する基礎計算(和積, 行列式, 掃き出し法etc)

わからないこと(随時追加)

このブログについて

目的

  1. アウトプットすることで理解を深める
  2. アウトプットすることで間違いを(望ましくはやさしく)正してもらう
  3. 基本的にゴミの山と思っているが, アウトプットしておくことで皆様に有用なものを適宜見つけて貰えるかもしれない

お題目(頻度順…のはず)

  1. 応用数学
  2. プログラミング
  3. 物理
  4. 生物(主に構造シミュレーション)
  5. 薬学
  6. 化学
  7. 英語