• ベストアンサー

マクスウェル-ボルツマン分布関数のグラフについて

「温度tをパラメータとしてマクスウェル-ボルツマン速度分布関数のグラフを描画せよ」という課題をgnuplotを用いて行ったところ、温度が上がるにつれ最大値が減少するという性質が表れませんでした。 続いて、同じ関数のグラフをExcelを用いて描画したところ、今度は正しくマクスウェル-ボルツマン分布の性質を示していると思われるグラフが描画されました。 どういった理由でこのような差異が生じたのでしょうか? また、gnuplotを用いてExcelと同様のグラフを描画するためにはどのようにすればよかったのでしょうか? 以下にその時に用いた関数、パラメータ、出力されたグラフを記します。 f(x,t)=4/sqrt(pi)*(m/2/k/t)**(3/2)*(x**2)*exp((-m*(x**2))/(2*k*t)) x:速度 m:原子質量 2.3e-26 [kg] k:ボルツマン定数 1.38e-23 t:温度 300,500,1000 [K] 添付グラフ 左:gnuplotによる出力 右:Excelによる出力

質問者が選んだベストアンサー

  • ベストアンサー
  • eatern27
  • ベストアンサー率55% (635/1135)
回答No.3

gnuplotでは整数/整数はその商を返すので3/2が1.5ではなく1になるのが原因です。 3./2のように一方(or両方)に少数点を追加すれば1.5になります。最初から1.5と書いてしまってもいいでしょう。

meaningless_141
質問者

お礼

ありがとうございます。そういう重要な特徴が合ったのですね。早いうちに把握できて助かりました。

その他の回答 (2)

回答No.2

#1です。間違えました。 maximaを使ってしまいました。

回答No.1

特に問題ないです。 コードはつぎのとおり [m:2.3e-26,k:1.38e-23]; f(x,t):=4/sqrt(%pi)*(m/(2*k*t))**(3/2)*(x**2)*exp((-m*(x**2))/(2*k*t)); plot2d([f(x,300), f(x,500),f(x,1000)], [x,0,3000]);

関連するQ&A