モンテカルロ法の積分教えてください。検索モンテカルロ法の積分教えてください。1オス豚モンテカルロ法の積分教えてください。4x^2+9y^2≦36}という問題です。Rというのは∫∫の右下に小さく書いてあるものです。f(x)はなんとか自分でも作れるんですが、2重積分の計算ができません。ページトップ管理人Re:モンテカルロ法の積分教えてください。13年前2重積分は、2重ループで計算できますよ。普通の積分はとけますか?小さくきって、四角形を作っていき、その合計を出す方法。2重積分は、1方向をとめて、1方向ずつ、加算していきます。出かける用事がありますので、帰宅後、お答えします。ページトップオス豚Re:モンテカルロ法の積分教えてください。13年前ある枠内に一様に乱数の点を発生させて、その図形の内部に入る割合によって面積を求める方法なんです。普通の積分は何とかできます。ページトップ管理人Re:モンテカルロ法の積分教えてください。13年前う、、モンテカルロ法昔やったんですけど、すっかり忘れてしまいました・・。いまや部分積分すら危うい予感・・;調べてみてhttp://momonga.t.u-tokyo.ac.jp/~ooura/intde-j.htmlこの辺が近いかな?と思うんですけど、どうでしょうか。_||)ページトップオス豚Re:モンテカルロ法の積分教えてください。何とかできるかがんばって見ます。ありがとうございました。ページトップkuzRe:モンテカルロ法の積分教えてください。初めまして、kuzといいます。最近Cから離れてしまっていて、あっている自信はありません(というか間違えてる可能性が高いです)しかもスマートじゃありません・・・・ただ、お答えがない様ですので投稿いたします。なるのでこれは楕円の方程式をあらわします。ここから-3<=X<=3,-2<=Y<=2であることがわかります。この範囲内の乱数の組み合わせでRを満たすものの組をf(x)に代入した結果の総計を組数で割った値が近似値となります。//試行回数で割るprintf("ans=%f",ans);}ページトップboxRe:モンテカルロ法の積分教えてください。2001);randXは0~3000、randYは0~2000の範囲の値をとります。次の、10000または100000で割っている理由がよくわかりません。いずれにせよ、randXは高々0.3、randYは高々0.2です。後で2乗しているので不要だと思います。break;randXの2乗は高々0.09、randYの2乗は高々0.04です。したがって、ここは必ずbreakします。forループを回る回数は、常に1回です。//試行回数分集計ansの値は、3にひじょうに近くなります。ページトップkuzRe:モンテカルロ法の積分教えてください。13年前すいません説明不足でした。R(範囲)が楕円の方程式になっているというこです。ここでRというのはx,yが満たすべき条件です。満たした場合f(x)に代入し、その総計(TRY_CNT分)を取得します。集計をTRY_CNTで除算した値が結果となります。Rが楕円であることから発生させるべき乱数の範囲がそれぞれ-3<x<3,-2<y<2ということなのです。そこでその範囲内の乱数を発生させるために、randXの場合では2000までの値を1000または10000で除算することで0.001~2.000での乱数を発生させています。Cで少数の乱数を発生させる方法が他に考えつかなかったので、こんな、見苦しいことをしています、申し訳ありません負についは確かに不要ですね。範囲内の乱数という意味で負もあるほうが良いかと思ったのですが、蛇足でした。わかりにくい点多々ありそうですが、あくまで参考程度ということで、ご容赦くださいページトップオス豚Re:モンテカルロ法の積分教えてください。13年前ありがとうございます。レベルの高い話しであまりついていけませんけども笑、参考にさせてもらってできました。ミクプラは自由にリンクできます。