問題タブ [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.
python - 数値積分の根を見つける
私はこのMathematicaプログラムをPythonで再現しようとしています:
数値積分の根を見つけ、これらの値のプロットを形成します。しかし、実行しようとはできません。
現在の試み:
from scipy.integrate import quad from scipy import integer from scipy.optimize import fsolve import pylab as pl import numpy as np
r - コーシー主値数値積分
R の積分関数を使用していますが、被積分関数が問題を引き起こしています (特異点があります)。このことを考慮、
カットオフパラメータをいじって結果が得られるまで手動で調整するよりも、Rでそのような主要な値を計算するより良い方法はありますか(必ずしも正確ではありません)
matlab - integer2 の関数をベクトル化する
\int_{-\infty}^a \int_{-infty}^b sum_{i,j}^K a_i*a_j*x^i*y^j*exp(- x^2 - y^2 + x*y)dx dy
a_i と a_j は定数です。積分は線形なので、和と積分を入れ替えることができますが、この場合は K^2 積分を評価する必要があり、時間がかかりすぎます。その場合、私は次のことを行います。
時間がかかりすぎるので積分を一つだけ評価したいのですが、sum_{i,j}^K a_i*a_j*x^i*y^j*exp(-x^2 - y^2 + x*y)、つまり、integral2 への供給方法です。| | どんな助けにも非常に感謝します。
matlab - integer2 の関数をベクトル化する方法は?
$$\int_{-\infty}^a \int_{-\infty}^b \sum_{i,j}^K a_ia_jx^iy^j\exp(-x^ 2 - y^2 + xy)dx dy $$
$a_i$ と $a_j$ は定数です。積分は線形であるため、和と積分を入れ替えることができますが、この場合、$K^2$ 積分を評価する必要があり、時間がかかりすぎます。その場合、私は次のことを行います。
時間がかかりすぎるので積分を一つだけ評価したいのですが $\sum_{i,j}^K a_ia_jx^iy^j\exp(-x^2 - y^2 + xy)$、つまり、integral2 への供給方法です。どんな助けにもとても感謝しています。
c++ - C++. テンプレートと実行時のユーザー情報
ジェネリック プログラミングについては、十分にわかっていないと思うので、もっと学ぼうとしています。そこで、自分のプログラムの 1 つのテンプレート バージョンをどのように実装するかを考えています。私がこれを行おうとしているプログラムは、ユーザーが使用する積分器 (Euler、Runge Kutta など) を選択し、選択した関数を積分する数値積分プログラムです。これを行う私の現在の方法は、Integrator と呼ばれる抽象基本クラスと、統合メソッドを実装するいくつかの派生クラスを用意することです。したがって、コードは次のようになります (さらに多くのことが行われますが、これは方法論を示すためのものです)。これには Qt を使用し、Integrator *integrator; を宣言していることに注意してください。MainWindow クラスで。
基本的にファクトリメソッドを使用する getIntegrator を使用
したがって、この方法はうまく機能し、インテグレーター プログラムは非常にうまく動作します。テンプレート関数はコンパイル時に生成されることがわかりました。実行時の情報を使用しているとしたら、テンプレートを使用してこれをどのように実装しますか? 質問が明確でない場合、私が求めているのは... 実行時にユーザーが選択した場合、どのインテグレーターを使用するか、テンプレート メソッドを使用して正しい統合関数を呼び出すにはどうすればよいですか?
matlab - Integral2 のループを避ける
次のコードがあります。
Og
のさまざまな値と のさまざまな値について評価したいと思いますxmax
。ymax
この特定のケースではOg = [4 3;3 4]
、xmax = 3
、ymax = 3
です。ループなしでそれを行う方法はありますか? 速度に問題があるのでループを避けたい。試してみcellfun
ましたが、役に立ちません。
python - 関数行列、SymPy および SciPy 上の数値積分
SymPy の出力から、以下に示すマトリックスを取得しました。これを 2D に統合する必要があります。現在、以下に示すように要素ごとに実行しています。この方法は機能しますが、実際のケースでは( と の両方sympy.mpmath.quad
で)遅すぎます (と その関数ははるかに大きくなります (以下の編集を参照)。scipy.integrate.dblquad
A
私はそれを一発でやろうと考えていましたが、これが正しいかどうかはわかりません:
編集: 実際のケースは、このリンクで利用できるようになりました。解凍して実行するだけshadmehri_2012.py
です (この例の著者は、Shadmehri et al. 2012から取得したものです)。私は、次のことができる人のために 50 のバウンティを開始しました。
- 提案された質問よりもかなり速くする
- いくつかの用語
m=15
やn=15
コードでもメモリエラーを発生させることなく実行できます)、32ビットまで管理しm=7
ましn=7
た
現在のタイミングを以下に要約できます (m=3 および n=3 で測定)。そこから、数値積分がボトルネックであることがわかります。
試行関数の構築 = 0%
微分方程式の評価 = 2%
k1 のラム化 = 22%
k1 の統合 = 74%
k2 のラム化と統合 = 2%
固有値の抽出 = 0%
関連する質問: lambdify について