タグ付けされた質問 「quadrature」

数値積分とも呼ばれる求積法は、有限数の点で被積分関数を評価することによって作成された積分の近似を指します。

17
Python用の高品質な非線形プログラミングソルバーはありますか?
解決すべきいくつかの挑戦的な非凸のグローバル最適化問題があります。現在、MATLABのOptimization Toolbox(特にfmincon()algorithm ='sqp'を使用)を使用していますが、これは非常に効果的です。ただし、私のコードのほとんどはPythonで作成されているため、Pythonでも最適化を行いたいと考えています。競合できるPythonバインディングを備えたNLPソルバーはありfmincon()ますか?ちがいない 非線形等式および不等式の制約を処理できる ユーザーがヤコビアンを提供する必要はありません。 グローバルな最適化を保証していなくても構いません(保証fmincon()しません)。私は、困難な問題や、それよりもわずかに遅い場合でも、ローカル最適にロバストに収束するものを探していfmincon()ます。 OpenOptで利用できるソルバーをいくつか試しましたが、MATLABのソルバーより劣っていfmincon/sqpます。 強調するために、私はすでに扱いやすい定式化と優れたソルバーを持っています。私の目標は、ワークフローをより合理化するために、単に言語を変更することです。 Geoffは、問題のいくつかの特性が関連している可能性があると指摘しています。彼らです: 10-400の決定変数 4〜100の多項式等式制約(1〜8の範囲の多項式次数) 決定変数の数の約2倍に等しい合理的な不等式制約の数 目的関数は決定変数の1つです 不等式制約のヤコビアンと同様に、等式制約のヤコビアンは密です。

4
困難な振動積分の数値積分の方法
以下の積分を数値的に評価する必要があります。 ∫∞0s i n c′(x r )r E(r )−−−−√dr∫0∞sinc′(xr)rE(r)dr\int_0^\infty \mathrm{sinc}'(xr) r \sqrt{E(r)} dr ここで、、と。ここで、は第2種の修正ベッセル関数です。私の特定のケースでは、、およびです。のx∈R+λ、κ、ν>0Kλ=0.00313κ=0.00825ν=0.33E(r )= r4(λ κ2+ r2−−−−−−√)- ν- 5 / 2K- ν- 5 / 2(λ κ2+ r2−−−−−−√)E(r)=r4(λκ2+r2)−ν−5/2K−ν−5/2(λκ2+r2)E(r) = r^4 (\lambda\sqrt{\kappa^2+r^2})^{-\nu-5/2} K_{-\nu-5/2}(\lambda\sqrt{\kappa^2+r^2})X ∈ R+x∈R+x \in \mathbb{R}_+λ 、κ 、ν> 0λ,κ,ν>0\lambda, \kappa, \nu >0KKKλ = 0.00313λ=0.00313\lambda = 0.00313κ = 0.00825κ=0.00825\kappa = 0.00825ν= …


4
微分を含む数値求積法
求積法のほとんどの数値的手法は、被積分関数をブラックボックス関数として扱います。さらに情報がある場合はどうなりますか?特に、もしあれば、被積分関数の最初の数個の導関数を知ることからどんな利益が得られますか?他にどのような情報が価値があるのでしょうか? 特に導関数の場合:基本的な求積法(長方形/台形/シンプソンの規則)の誤差推定値は密接に関連しています。おそらく、動的適応性に依存する代わりに、サンプリング解像度を事前に選択する方法がありますか? 私は単変量と多次元の両方の場合に興味があります。

3

1
転換ん
数値的に形式の積分を行おうとしているとき、私は逸話的に聞いたことがあります ∫∞0f(x )J0(x )d x∫0∞f(バツ)J0(バツ)dバツ\int_0^\infty f(x) J_0(x)\,\mathrm{d}x (例えば、それ自体高い振動、正則、等)を滑らかにし、行儀、それはとしてそれを書き換える精度を助けますf(x )f(バツ)f(x) 1π∫π0∫∞0f(x )cos(x sinθ )d xD θ1π∫0π∫0∞f(バツ)cos⁡(バツ罪⁡θ)dバツdθ\frac{1}{\pi}\int_0^\pi \int_0^\infty f(x) \cos(x\sin\theta) \,\mathrm{d}x\,\mathrm{d}\theta そして、最初に内部積分を数値的に実行します。これが機能すると期待すべき理由はわかりませんが、数値メソッドの精度はほとんど明らかではありません。 もちろん、実際にそれを行う最良の方法は、このような振動積分に最適化された方法を使用することです。この変換を行うと積分の精度が向上する傾向があることを誰もが確認または反論できますか?そして/またはそれを説明する情報源に私を向けますか?

2
Matlabの積分がScipyでintegrated.quadより優れているのはなぜですか?
matlabが数値積分とScipyを処理する方法に不満を感じています。以下のテストコードで次の違いを観察します。 Matlabのバージョンは、私のPythonの同等バージョンよりも平均で24倍高速に動作します! Matlabのバージョンは警告なしで積分を計算することができますが、Pythonは nan+nanj 上記の2つの点に関して、Pythonで同じパフォーマンスが得られるようにするにはどうすればよいですか?文書によると、両方の方法は、積分を近似するために「グローバル適応求積法」を使用する必要があります。 以下は、2つのバージョンのコードです(かなり似ていますが、Pythonでは複雑な被積分関数を処理できるように積分関数を作成する必要があります)。 Python import numpy as np from scipy import integrate import time def integral(integrand, a, b, arg): def real_func(x,arg): return np.real(integrand(x,arg)) def imag_func(x,arg): return np.imag(integrand(x,arg)) real_integral = integrate.quad(real_func, a, b, args=(arg)) imag_integral = integrate.quad(imag_func, a, b, args=(arg)) return real_integral[0] + 1j*imag_integral[0] vintegral = np.vectorize(integral) def …

5
不適切な積分をどのように近似できますか?
が有限であるような関数があり、この積分を近似したいです。 ∫ R 3、F (X 、Y 、Z )のD Vf(x,y,z)f(x,y,z)f(x,y,z) ∫R3f(x,y,z)dV∫R3f(x,y,z)dV\int_{R^3} f(x,y,z)dV 私は求積規則と積分のモンテカルロ近似に精通していますが、無限領域でそれらを実装するのは困難です。モンテカルロの場合、無限の領域をサンプリングするにはどうすればよいですか(特に積分に大きく寄与する領域が不明な場合)。直角位相の場合、どのようにして最適なポイントを見つけるのですか?原点を中心とする任意の大きな領域を単純に修正し、スパース直交ルールを適用する必要がありますか?この積分をどのように近似できますか?

2
ノイズの多いデータや微細構造のデータの場合、ミッドポイントルールよりも優れた求積法がありますか?
この長い質問の最初の2つのセクションのみが必須です。その他は、単に説明のためのものです。 バックグラウンド 高次複合ニュートン・コート、ゴース・レジェンドレ、およびロンバーグなどの高度な求積法は、主に、関数を細かくサンプリングできるが分析的に統合できない場合を対象としています。ただし、サンプリング間隔(例については付録Aを参照)または測定ノイズよりも細かい構造を持つ関数については、中間点や台形規則(デモについては付録Bを参照)などの単純なアプローチと競合することはできません。 これは、例えば、シンプソンの複合ルールが基本的に情報の4分の1に低い重みを割り当てることで「破棄」するため、やや直感的です。このような求積法が十分に退屈な関数に適している唯一の理由は、境界効果を適切に処理することは、破棄される情報の効果を上回ることです。別の観点から、微細な構造またはノイズのある関数の場合、統合ドメインの境界から離れたサンプルは、ほぼ等距離であり、ほぼ同じ重みを持たなければならないことは直感的に明らかです(多数のサンプルの場合) )。一方、このような関数の直角位相は、(中間点の方法よりも)境界効果の処理を改善することから恩恵を受ける場合があります。 質問 ノイズの多い、または微細構造の1次元データを数値的に統合したいとします。 サンプリングポイントの数は固定されています(関数の評価に費用がかかるため)が、自由に配置できます。ただし、I(またはメソッド)は、他のサンプリングポイントの結果に基づいて、対話的にサンプリングポイントを配置することはできません。また、潜在的な問題領域を事前に知りません。したがって、Gauß–Legendre(非等距離サンプリングポイント)のようなものは問題ありません。適応求積法は、インタラクティブに配置されたサンプリングポイントを必要とするため、そうではありません。 そのような場合、中間点の方法を超える方法が提案されていますか? または:そのような条件下で中点法が最適であるという証拠はありますか? より一般的に:この問題に関する既存の作業はありますか? 付録A:微細構造化関数の具体例 私は推定したいの場合: F (T )= k個のΣ iは= 1つの罪(ω I T - φ I)∫10f(t)dt∫01f(t)dt\int_0^1f(t)\, \mathrm{d}t とφI∈[0、2π]とログωI∈[1、1000年]。典型的な関数は次のようになります。f(t)=∑i=1ksin(ωit−φi)ωi,f(t)=∑i=1ksin⁡(ωit−φi)ωi, f(t) = \sum_{i=1}^{k} \frac{\sin(ω_i t-φ_i)}{ω_i},φi∈[0,2π]φi∈[0,2π]φ_i∈ [0,2π]logωi∈[1,1000]log⁡ωi∈[1,1000]\log{ω_i} ∈ [1,1000] 次のプロパティにこの機能を選択しました。 制御結果を分析的に統合できます。 私が使用しているサンプル数()ですべてをキャプチャすることを不可能にするレベルの微細構造を持っています。&lt;102&lt;102<10^2 微細構造に支配されていません。 付録B:ベンチマーク 完全を期すために、Pythonのベンチマークを次に示します。 import numpy as np from numpy.random import uniform from scipy.integrate …

1
数値求積法のメソッド選択
数値求積法にはいくつかのメソッドファミリがあります。特定のクラスの被積分関数がある場合、理想的な方法を選択するにはどうすればよいですか? 被積分関数(例:滑らかですか?特異点がありますか?)と計算問題(例:誤差許容度、計算予算)の両方に関連する質問は何ですか? これらの質問への回答は、さまざまな方法のファミリーをどのように除外または促進しますか?簡単にするために、単一または低次元の積分だけを考えてみましょう。 たとえば、QUADPACKに関するWikipediaの記事には、かなり一般QAGS的なルーチンが、「ピーターウィンのイプシロンアルゴリズムによる加速を使用して、各部分区間内で21点のガウスクロンロッド求積法に基づくグローバル適応求積法を使用する」 この決定はどのように行われましたか?より多くのことがわかっている場合、どのようにして同様の決定を下すことができますか?
12 quadrature 

2
数値統合-NaNの処理(C / Fortran)
私は、ゼロに近い特定の値でNaNを示すトリッキーな積分を扱っており、現時点では、これが発生したときに被積分関数をゼロに設定するISNANステートメントを使用して非常に大雑把に扱っています。FORTRANのNMSライブラリ(q1daルーチン-q1daxも同じです)とCのGSLライブラリ(QAGSルーチンを使用)でこれを試しました。 被積分関数でNaNとINFを処理するように特別に設計されたCQUAD(CのGSLライブラリの一部)を調べましたが、リファレンスには有用な情報がほとんどなく、オンラインのサンプルプログラムは見つかりませんでした。誰かが仕事をすることができるCまたはFORTRANのその他の数値積分ルーチンを知っていますか?
12 quadrature 

1
3D 4ノード要素に多項式表現を統合する方法は?
3次元の4ノード要素上の多項式を統合したい。FEAに関するいくつかの書籍では、任意のフラットな4つのnoned要素に対して積分が実行される場合について説明しています。この場合の通常の手順は、ヤコビ行列を見つけ、その行列式を使用して積分基底を正規化されたものに変更することです。 換言すれば∫Sf(x,y) dxdy∫Sf(x,y) dxdy\displaystyle\int_S f(x,y)\ \mathrm{d}x\,\mathrm{d}y\,∫−11∫−11f~(e,n) |det(J)|dedn∫1−1∫1−1f~(e,n) |det(J)|dedn\displaystyle\int^{-1}_{1}\int^{-1}_{1} \tilde{f}(e,n)\ \left|\det(J)\right|\,\mathrm{d}e\,\mathrm{d}n しかし、2Dの場合、任意のフラット要素を2×2のフラットな平面要素に変更します。 3D 4節点要素は一般に平坦ではありませんが、それでも何らかの方法でデカルト座標系に関連する2D座標系でマッピングできると思います。{x、y、z}を{e、n}で表現する方法と、この場合のヤコビ行列のサイズ(正方形であると想定されている)はどうなるかわかりません。

3
既知の境界を持つ多次元積分の数値積分
(2次元)不適切な積分があります I=∫AW(x,y)F(x,y)dxdyI=∫AW(x,y)F(x,y)dxdyI=\int_A \frac{W(x,y)}{F(x,y)}\,\mbox{d}x\mbox{d}y ここで、積分領域AAAは、よりも小さいですが、によってさらに制限されてい。以来および滑らかであり、x=[−1,1]x=[−1,1]x=[-1,1]y=[−1,1]y=[−1,1]y=[-1,1]F(x,y)&gt;0F(x,y)&gt;0F(x,y)>0FFFWWWW≠0W≠0W \ne 0境界では、後者の関係は、被積分関数が境界で特異になる可能性があることを意味します。ただし、被積分関数は有限です。私はこれまでのところ、ネストされた数値積分を使用してこの積分を計算します。これは成功しますが、遅いです。積分に対処するために、より適切な(より高速な)メソッド、おそらくモンテカルロメソッドを検索します。しかし、非立方体領域Aの境界に点を配置せず、不適切な積分の制限を正しく取るものが必要です。積分変換は、この一般的な表現に役立ちますか?私は解決することが可能であるするためのの関数としてとも計算いくつかの特別な重み関数のための。F(x,y)F(x,y)F(x,y)yyyxxxIIIW(x,y)W(x,y)W(x,y)

3
高度に振動する積分の数値評価
で複素関数論のアプリケーションでは、この上級コースの演習の高い振動不可欠で1ポイントで I(λ)=∫∞−∞cos(λcosx)sinxxdxI(λ)=∫−∞∞cos⁡(λcos⁡x)sin⁡xxdxI(\lambda)=\int_{-\infty}^{\infty} \cos (\lambda \cos x) \frac{\sin x}{x} d x 複素平面で点法を使用して、λλ\lambda大きな値に対して近似する必要があります。 振動性が高いため、この積分は他のほとんどの方法を使用して評価するのは非常に困難です。これらは、異なるスケールでのλ=10λ=10\lambda = 10被積分関数のグラフの2つのフラグメントです。 一次漸近近似は I1(λ)=cos(λ−14π)2πλ−−−√I1(λ)=cos⁡(λ−14π)2πλI_{1}(\lambda) = \cos \left(\lambda-\frac{1}{4} \pi\right) \sqrt{\frac{2 \pi}{\lambda}} そして、さらに(はるかに小さい)改良が用語を追加します I2(λ)=18sin(λ−14π)2πλ3−−−√I2(λ)=18sin⁡(λ−14π)2πλ3I_2(\lambda)=\frac{1}{8} \sin \left(\lambda-\frac{1}{4} \pi\right) \sqrt{\frac{2 \pi}{\lambda^{3}}} λλ\lambda関数としての近似値のグラフは次のようになります。 ここで質問が来ます。近似がどれほど良いかを視覚的に見るために、積分の「実際の値」と比較するか、より正確には独立したアルゴリズムを使用して同じ積分の良い近似と比較したいと思います。サブリーディング補正の小ささにより、これは非常に近いものになると予想されます。 λλ\lambdatanh(sinh)tanh⁡(sinh)\tanh(\sinh) 最後に、実装した重要度サンプルを使用してモンテカルロインテグレーターで運を試しましたが、安定した結果を得ることができませんでした。 λ&gt;1λ&gt;1\lambda > 1

1
四面体上の調和関数の積分
セイ私は機能してい Iは、正四面体の上に統合したいというT ⊂ R 3を。fが任意である場合、ガウス求積法は良い解決策ですが、たまたまfが高調波であることを知っています。この情報を使用して、ガウス求積法をどれだけ加速できますか?f:R3→Rf:R3→Rf : \mathbf{R}^3 \to \mathbf{R}T⊂R3T⊂R3T \subset \mathbf{R}^3ffffff たとえば、が代わりに球であった場合、球の中心でfを 1回評価すると、平均値プロパティによって正確な答えが得られます。TTTfff 検索により次の論文が見つかりましたが、興味深いですが、球体の場合を異なる方向に一般化します(球体から離れるのではなく、ポリハーモニックに): ボヤノフとディミトロフ、ポリハーモニック関数のガウス拡張立方体式
11 quadrature 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.