nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

プログラミング

立体角積分 - Lebedev quadrature

数値計算で立体角積分をしたいとき、安直に二重積分するよりも、Lebedev求積法を使った方が効率が良い。 Lebedev quadrature - Wikipedia http://people.maths.ox.ac.uk/beentjes/Essays/QuadratureSphere.pdf効率が良いという意味は、メッシュ数が少なくて…

行列要素を視覚的にチェックする方法

行列要素をなんとか可視化したくて、三次元プロット散布図で表現してみた。 Pythonでデータを可視化するmatplotlib初級(3D散布図編) - しぷぜん from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np N = 20 row …

Legendre多項式の直交性を python (scipy) で確かめる

いつもnumpyの多項式の使い方を忘れるので、Legendre多項式の直交関係式で練習する。 ルジャンドル多項式 - Wikipediascipy.special.legendreでLegendre多項式を作ると、poly1dというタイプの関数が帰ってくるので、そのままxを代入できる(下記リンク or サ…

sympyの虚数単位を通常に戻してnumpyが使えるようにする

sympy moduleを一部使ってゴニョゴニョ計算させて、それを元にnumpy moduleで処理(例えば逆行列計算)させようとした時に虚数単位が引っかかって怒られることがあった。 sympyの代数表記を数値表記に戻す方法として"N()"や"~.evalf()"があるが、これではsym…

Sympyを使って平方完成をする。

Sympyはpythonモジュールの一つで、Mathematicaっぽく数式記号そのままで式を扱えるものである。 しかし、どうも式変形をゴリゴリ進めるノート的な使い方をするよりかは、ややこしい項が出て来た時に展開が合ってるかとか手計算が合っているかサッと電卓的に…

ASE: 構造クラスターを得るスクリプト

半径Rの構造クラスターをASEで作る。 例として単体アルミニウムを使う。 import math from ase.spacegroup import crystal from ase.visualize import view # parameters LC = 4.05 R = 7. NSL = math.ceil( 2. * R / LC ) # make bulk structure aluminium …

ASE: 窒素分子のCu(111)の二原子層における吸着構造の最適化

Python module のASE を使って、吸着構造を最適化。 ここでは簡単な有効媒質理論を使うが、calculatorを選ぶことで、AbinitとかVASPとかも使えるらしい。 Introduction: Nitrogen on copper — ASE documentation 元サイトのチュートリアルに少し追加して、吸…

PythonのLaguerre陪関数について

Wikipediaには日頃からよくお世話になっているが、自分で確認するのは大事だなと感じた事件。水素原子の波動関数の可視化とかカッコイイなぁと思い、ネットサーフィン中に以下のサイト様を訪問。 scipyの特殊関数 - 篠突く雨の日記自分も早速コピーしてやっ…

モンテカルロ積分で水素原子のエネルギー期待値を確認

「スレーター型軌道の数値積分は大変」と呪文のように聞かされて続けて心にハードルが出来てしまったので、ここらで打破することを試みた。 前回、多次元のモンテカルロ積分をまとめた。 koideforest.hatenadiary.com 今回はスクリプトを組んで、どれくらい…

ラグランジュの未定乗数法と等高線プロット

ラグランジュの未定乗数法を直感的に非常に分かりやすく描いてあるサイト様を発見。 ラグランジュの未定乗数法の解説と直感的な証明せっかくなので、実際に等高線プロット使って図示してみた。 図で考えているのは、 のような、何かポテンシャル的な場がで与…

matplotlibの等高線プロットでCDのジャケットを作る

等高線プロットを練習してたら何かカッコイイのが出来たので、CDジャケット風にしてみた。 import numpy as np import matplotlib.pyplot as plt N = 5 x = y = np.arange( N ) X, Y = np.meshgrid( x, y ) z = np.random.rand( N * N ) Z = z.reshape( N, N…

python: matplotlib.pyplot: インスタンスを使わない一通りのまとめ

いつも忘れるので、個人的なメモ参考にしたサイトの皆様 グラフの体裁を整える — matplotlib 1.0 documentation matplotlibでの凡例(ラベル)の表示場所・形式を変更する - ゆるふわめも matplotlibで忘れがちな文法まとめ - Qiita 【Python】matplotlibによ…

MacPortsを使ってMacBook AirにPOV-Rayをインストールしてみた

第一原理計算に必要な原子座標を作るのに便利なpython module "ASE"でPOV-Rayが使われていたので、MacPorts経由でインストールしてみた。sudo port -install povrayここまでで、特にエラーメッセージは出ず。 気になるメッセージとしては、pythonのバージョ…

PyQt: トップダウンで作るラーメンタイマー

下記サイト様を参考にラーメンタイマーを作成する。 PyQtではじめるGUIプログラミング 非常に分かり易く説明されていて、個人的にかなり気に入っている。 基本的にはボトムアップ(端っこの部品から作っていく)で記述して行くので、トップダウンを意識して…

PyQt: ボタンの解決の順番

下記サイト様を参考に練習中 PyQtではじめるGUIプログラミングPyQt5 & python2.7 では、QApplication等の主要なmoduleはQtGuiではなく、QtWidgetsに入っている。 ややこしいことに、QWidgetというmoduleも同時に存在している。 #!/usr/bin/env python import…

MacにPyQt5をインストール:SIPが入らない。

下記のサイトを参考に、PyQt5をインストールする。 MacとLinuxでPyQtを準備する - Qiita Qt5.9.2をonline installerでインストール。容量24GBを持って行かれる。MacBook Airには些かキツイが仕様がない。SIPを入れようとしたところ、"make install"で"Operat…

try/except文を用いた欠損データの読み込み

データのフォーマットやらなんやらで、読み込めないデータが混ざっている時、その部分だけをNoneで欠損させて読み込ませたい。 データの区切りが空白" "を場合を想定すると、 f= open( filename, "r" ) lines = f.read().split("\n") f.close() for line in …

テイラー展開、パデ近似をpythonで簡単に表せる日が来た

mpmathというモジュールの中にテイラー展開をしてくれmpmath.taylorがいらっしゃる。 Function approximation — mpmath 1.0.0 documentation mpmath.taylorは展開係数の入ったリストを返してくれる。リストの中身は昇べきの順で並んでいる。一方、mpmath.pol…

化学シフト等、メッシュを変えずにグラフをシフト

グラフをただシフトさせるだけだったら、x軸のデータにシフト量を足し引きすればすぐに出来る。 問題は、例えばシフトさせる前と後で差を取りたい場合に、x軸が揃っていないと差が取れない点である。 つまり、横軸のメッシュは固定したまま、グラフだけ並行…

yield (generator) の有り難みとは?: python

fortran77及び90・95上がりからすると、昨今のモダンな言語のノリになかなかついて行けないでやんです(バカでごめんなさい)。そもそもファイルのreadに関して一行ずつ読むのがデフォルトのfotran脳的には、python様がどこでどうメモリを消費しているか、ま…

VASPでEMAXを増やして計算したらcore dumpする件について(Ubuntu12.0.4)

VASPのコンパイルの問題ではなく、Linux側でデフォルトの設定だとstackの上限が8MB程度と小さいことが原因(あくまで自分のケースでは)。オーバーフローとか別のエラーを吐いて欲しかった。。。ulimit -aでいろんな上限が見れる。 一時的にはulimit -s unli…

MKL11.3:逆行列計算ルーチンの罠

自分の今の環境では、MKL11.3を使ってfortran90でプログラムを弄っている。違う環境では、ここで言うことは当てはまらないかも知れない。逆行列を計算したい。私の願いはそれだけであった。一般の行列に対して対応可能なsubroutineは、GETRF (LU分解)とGETRI…

fortranとpython(読み込み)

fortranユーザーからpythonに移って来ると、ただテキスト編集したいのにも関わらず、fortranの癖に慣れてしまったが故にpythonがなかなか使えるようにならんかったのでちょっと整理。「ファイルを開いて中身を読んで閉じる」までをfortranとpythonで比較。 f…

2GBの壁

*.f90に対して、64bit対応でcompileする分には問題無いが、それを32bitでcompileしたり、*.fの場合には静的メモリに2GBの制限が付くらしい。relocation truncated to fit: R_X86_64_32S against *... additional relocation overflows omitted from the outp…