2010/11/01

準位を描くスクリプト

エネルギー固有値を準位っぽく描くには,エネルギーを点ではなく,線分で描きたい.
そこで以下のようなスクリプトを作った.

open(FPLOT, ">plot.gp");
printf(FPLOT "plot ");
open(FIN, "EIGENVAL");
$inc=0;
while($line=){
$inc++;
$outfile=sprintf("%02d-%02d",$finc,$inc);
open(FOUT, ">$outfile");
@tmp = split(' ',$line);
printf(FOUT "%f %f \n",-0.25,$tmp[1]);
printf(FOUT "%f %f \n",+0.25,$tmp[1]);
close(FOUT);
printf(FPLOT "\"%s\" w l lt %d notitle, \\ \n",$outfile,$finc);
}
close(FIN);
printf(FPLOT "pause -1\n");

これは結局,一つの固有値に幅を持たせたファイルを無数に生成してgnuplotで描くだけ.

同時にgnuplotスクリプトを生成しているのがミソ.

0 件のコメント: