pythonでガンマ関数とその近似積分計算




現在「 Rによるモンテカルロ法入門」とpythonを使ってモンテカルロ法について勉強しているのですが、pythonの積分計算を本格的にやったことないなと改めて気づく。

>>Rによるモンテカルロ法入門
   

モンテカルロ法の勉強とは別でpythonで詰まったところのメモも記録していく。

 

今回は「integrate関数とガンマ関数を使う場合の数値計算結果を比較する」例題。

以下のコードを動かす。

 

ValueError: setting an array element with a sequence.

 

って言われたけど、このエラーは基本的に配列の長さが一致してない時に表示されるもの。

試しにfor文を抜け出した後に、print(len(配列),len(配列))で長さが違うかどうか確認

一緒。今回グラフ表示しようと計算している範囲は0〜1000の1001個。

 

どうやら、integrate関数はarray型のリストを返すらしい。なぜかというと、デフォルトでは近似計算による誤差も表示する。そのため

という形式になっている。

試しに簡単な例を示す。

とこんな感じ。

なのでグラフ表示するデータを配列の中から指定してやれば良いだけ。

以下が表示される。

 

Rを使って描画されている著書の結果と同じものができました!

 


まとめ

  • integrate関数はarray型のリストを作成する
  • itnegrate関数は数値計算による誤差も表示する



記事が役に立ったらシェア!

投稿者:

中村 俊

中村 俊

1993/09/04生まれ。機械系大学院を休学し、ベンチャーでインターンしている最中。直近では、デカルトの「方法序説」に感銘を受けた。 趣味:読書、web開発の勉強、異分野の論文読んだり、記事書いたり。 最終的には経営者か研究者になりたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA