問題タブ [numerical-integration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
632 参照

python - odeint <-> interp1d 相互作用の潜在的なバグ?

私はPythonとscipyに比較的慣れておらず、MATLABからの変換です。scipy.integrate の odeint 関数の簡単なテストを行っていたところ、この潜在的なバグに遭遇しました。次のスニペットを検討してください。

両方の結果の違いを示すプロットを作成しました。ここをクリックしてください

少なくとも私にとっては、不当な結果の違いについてどう思いますか? Python 2.6.6 の上で NumPy バージョン 1.5.0 と SciPy バージョン 0.8.0 を使用しています

0 投票する
3 に答える
4682 参照

python - テセレーションされた領域での数値積分のための Python パッケージを探しています

モザイク化されたドメイン(私の特定のケースでは、ボロノイセルに囲まれた2Dドメイン)で複雑な数値関数を数値的に統合するためのnumpy / scipyベースのpythonパッケージを誰かが知っているかどうか疑問に思っていましたか?過去に、matlab ファイル交換からいくつかのパッケージを使用しましたが、可能であれば現在の Python ワークフロー内にとどまりたいと考えています。matlab ルーチンは

http://www.mathworks.com/matlabcentral/fileexchange/9435-n-dimensional-simplex-quadrature

以下を使用した直交およびメッシュ生成用:

http://www.mathworks.com/matlabcentral/fileexchange/25555-mesh2d-automatic-mesh-generation

メッシュの生成とそのメッシュの数値積分に関する提案をいただければ幸いです。

0 投票する
2 に答える
808 参照

numerical-methods - 離散点で囲まれた領域上の特定の点セット (有限および離散) で既知の値を持つ関数の数値積分?

D を一連の点 {x_i,y_i} (1<=i<=N) で囲まれた領域とします (領域は凸面である必要はなく、点は境界曲線に沿っている必要があります)。

f を D で定義された関数としますが、与えられた点集合 (有限および離散) での値しか知りません。たとえば {x'_i,y'_i,f(x'_i,y'_i)} (1<= i<=N').(指定されたデータセットは、D では「密」である必要はありません。)

D 上の f の数値積分を行うにはどうすればよいですか?

これが私が思うことです:
1) まず、これらの一連の点の間のセグメントによって D の境界を近似する必要があります。
2) 次に、指定されたデータセットに対して何らかの補間を行う必要があります。ただし、2 次元での補間は常に可能であるとは限りません。それから私は立ち往生します。

助けていただけますか?ありがとうございました。

0 投票する
1 に答える
895 参照

python - Cythonのcdefステートメント内からscipy.integrate.quadを使用しますか?

PythonをCythonに変換して、Pythonを高速化しようとしています。関数scipy.integrate.quadを使用します。この関数には、引数の1つとして呼び出し可能なPythonが必要です。Cythonのcdefステートメント内から関数を定義して渡す方法はありますか?これを使用できますか?

ありがとう。

0 投票する
3 に答える
4733 参照

python - ベクトル化された関数の適応求積法による Python での数値積分

超大型の数値求積関数を探しています。次の 3 つのプロパティが必要です。

  • 適応 - 被積分関数に合うようにサンプリング ポイントの密度を自動的に調整します。私の被積分関数は非常に不均一で計算コストが高いため、これは絶対に必要です。
  • ベクトル化 - 効率のために、一度に 1 つのポイントではなく、サンプル ポイントのリストで被積分関数を呼び出します。
  • ベクトル値の関数を処理できる - ベクトル値の被積分関数のすべてのコンポーネントは、追加コストなしで同時に計算されるため、すべてのコンポーネントを個別に統合しても意味がありません。

さらに、次のようにする必要があります。

  • 2D - 計算したい積分は平面領域の二重積分であり、積分全体の全体的な (相対) 許容誤差を指定して、エラー バジェットを適切に管理できるようにしたいと考えています。

そのような機能を持つライブラリを知っている人はいますか? 4 つのプロパティのうち 2 つまたは 3 つであっても、何もないよりはましです。

私は Python と SciPy を使用しているので、すでに Python で動作する場合はボーナスです。(しかし、必要に応じて被積分関数を呼び出すためのグルー コードを作成することもできます。)

0 投票する
2 に答える
4626 参照

matlab - Trapz は否定的な結果を返します: なぜですか?

一般化正規分布を数値的に統合しようとしています。その下の面積は 1 になると予想しています。結果は -1 です。なぜこのようになっているのですか?

0 投票する
3 に答える
4339 参照

matlab - 非負の解を与えるように制約された遅延微分方程式 (DDE) 系を解く

MATLAB には、解が非負になるように制約するode45というパラメーターがあります。彼らは、このメソッドがどのように機能するか、そして y_i が負になるたびに y_i を 0 に設定することは一般的に機能しないため、愚かなことではないことについての論文を書きました。NonNegative

現在、MATLAB にはdde23遅延微分方程式を解くための機能もありNonNegativeますが、この積分器に相当するパラメーターはありません。

ode45残念ながら、私は既存のODE システムに遅延を追加する任務を負っていNonNegativeます。

どのように進めればよいですか?

編集:

これが役立つかどうかはわかりませんが...

私のシステムの DDE 部分は基本的に次のようになります。

ここでX(3 番目の式の大文字の変数) は の遅延バージョンですxx次に、との方程式にいくつかの項を追加して、この DDE システムを既存の (およびより大きな) ODE システムにリンクしz、結合したシステムをすべて統合します。

0 投票する
4 に答える
9019 参照

matlab - 数値積分で特異点を克服する方法 (Matlab または Mathematica で)

以下を数値的に統合したい:

式1

どこ

eq2

aとは定数でbβ簡単にするためにすべて に設定できます1

を使用する Matlabdblquadも、使用する Mathematica もNIntegrate、分母によって作成された特異点を処理できません。これは二重積分であるため、特異点がどこにあるかを Mathematica で指定することはできません。

この積分は摂動理論に基づいており、

ここに画像の説明を入力

以前に発見されました(私が見つけたものではないので、どのように行われたのかわかりません)。

何か案は?

0 投票する
1 に答える
1090 参照

matlab - この積分は、Matlab または Mathematica で数値的に実行できますか?

以下の積分を完全に数値的にできるようにしたいです。

方程式

ここでnイプシロンabおよびベータは、簡単にするためにすべて に設定できる定数1です。

積分はx手動または Mathematica を使用して解析的に行うことができ、次にyNIntegrate を使用して数値的に積分を行うことができますが、これら 2 つの方法では異なる答えが得られます。

分析的に:

数値法 1:

数値 2:

したがって、どちらの数値法も を与えません-0.0160323。私はその理由を理解しています - 最初の方法は分母によって引き起こされる無限大に問題があり、2 番目の方法は問題を引き起こしている積分の部分を効果的に削除します。しかし、分析的に単純化できない別の積分 ( xyおよびよりも難しいもの) を統合できるようにしたいと考えています。z上記の積分は、答えがどうあるべきかを知っているので、新しいメソッドをテストする方法を与えてくれます。

0 投票する
2 に答える
360 参照

numerical-integration - 数値積分

一般的に言えば、数値的に評価して積分する場合、MATLAB では、境界に大きな数を選択するだけですか、それとも MATLAB に「制限を取る」ように指示する方法はありますか?

さまざまなマシンがさまざまな大きさの数値を処理できるため、大きな数値を使用するだけであると想定しています。

それらが私のコードを改善する方法であるかどうか疑問に思っています。私はモンテカルロを介して多くの期待値計算を行っており、台形法を使用して自分の自由度が十分に小さいことを確認しています。