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

3

1
C ++でのMathematicaのQuasiMonteCarlo統合の置き換え
QuasiMonteCarloメソッドを使用して3次元または4次元で積分を実行するMathematicaプログラムがあります。問題は、これらの計算の一部がHPCクラスターで利用可能な最大ジョブ時間で完了できない点まで、実行するのに非常に長い時間がかかることです。だから私はプログラムをC ++で書き直すことを考えています。 GSLのドキュメントを見て、準ランダムシーケンスと通常のMC統合に関するセクションはありますが、それらをまとめるものは見当たりません。また、1つか2つのGoogle検索では、広く信頼されている実装のように見えるものは何も見つかりませんでした。C ++でのQMC統合の十分にテストされた実装のオプションは何ですか? 一貫性を保つために、Mathematicaが実装するHalton-Hammersley-Wozniakowskiメソッドに近いものを使用することをお勧めします(オプションの場合)。

1
実部からの分析継続の虚数部の数値回復
私の状況。 複雑な積分を通じて定義された複素変数関数があります。私が興味を持っているのは、虚軸上のこの関数の値です。次のリボンのこの関数に数値でアクセスできます:。正式には、積分式はこのドメインの外で発散するため、分析の継続が必要です。写真で私の状況を要約すると、Z = (X 、Y )∈ (- ∞ 、∞ )× [ - 1 、1 ]f(z)f(z)f(z)z= (x 、y)∈ (- ∞ 、∞ )× [ - 1 、1 ]z=(x,y)∈(−∞,∞)×[−1,1]z=(x,y)\in (-\infty,\infty)\times[-1,1] 数値からこのリボンのについて知っていることは次のとおりです。f(z)f(z)f(z) 虚軸と実軸を同時に対称にします。 ゼロに減衰します。R e (z)→ ∞Re(z)→∞Re(z)\rightarrow\infty 近くで爆発します。ポールまたは分岐ポイントの可能性がありますが、わかりません。この特異点(および分析継続のその他すべての孤立した特異点)の性質は、この関数の特定のパラメーター化に依存していると思われます(詳細については、以下の積分を参照してください)ξz= ± iz=±iz=\pm iξξ\xi 実際、または非常によく似てい。実部のプロットは次のとおりです。1 /(1 + z 2 )2 nセク2(z)sech2(z)\text{sech}^2(z)1 /(1 + z2)2 n1/(1+z2)2n1/(1+z^2)^{2n} 私の質問は、私が関数について持っている膨大な量の情報(そのリボン上のそれへの合計数値アクセス)を考えると、虚数軸に沿ってこの関数の近似を数値的に計算する方法はありますか?ところでMathematicaを使用しています。 虚軸に沿った値に興味があるのは、この関数の次のフーリエ変換を評価する必要があるためです。 …

1
これらの振動は何ですか?
ガウス関数とローレンツ関数の中間の関数数値で定義しています。ガウス分布よりもはるかに遅く減衰しますが、単純な逆指数よりも高速です。g(x)g(x)g(x) フーリエ変換を大きなに対して計算する必要があります。への関数呼び出しは計算コストが高いため、補間を定義します-これをと呼び -いくつかの巨大な範囲、、それを私の積分に使用します。T G (X )G (X )G INT(X )X - 40 &lt; X &lt; 40f(t)≡F[g(x)](t)f(t)≡F[g(x)](t)f(t)\equiv \mathcal{F}[g(x)](t)tttg(x)g(x)g(x)g(x)g(x)g(x)gint(x )gint(x)g_{\text{int}}(x)バツxx− 40 &lt; x &lt; 40−40&lt;x&lt;40-40<x<40 f(t )= ∫∞- ∞cos(t x )g(x )dバツ⟶≈∫L− Lcos(t x )gint(x )dバツf(t)=∫−∞∞cos⁡(tx)g(x)dx⟶≈∫−LLcos⁡(tx)gint(x)dxf(t)=\int_{-\infty}^{\infty}\cos (tx)g(x)\,dx\,\,\underset{\approx}{\longrightarrow}\,\,\,\int_{-L}^{L}\cos(tx)g_{\text{int}}(x)\,dx しかし、フーリエ変換の近似を計算すると、最初は予期していなかった奇妙な振動が発生します。 上の図で示したように、振動の「周期」は約15.7です。私の最初の推測は、これは積分の相殺の交互の性質のアーティファクトであるかもしれないが、それは15.7の観察された「期間」を説明しないでしょう。 T推測= 2 πL≈ 0.157 ...Tguess=2πL≈0.157…T_{\text{guess}}=\frac{2\pi}{L}\approx 0.157\ldots これは、私が観察するものとはまったく異なる100の因数です(はい、積分と水平軸を正しく定義したことを確認しました)。これはどうやってできるの? 編集#1:補間の詳細 私は、Mathematicaの組み込みInterpolationで補間しています。これは、3次曲線で連続するポイント間を補間します(したがって、各ポイントで2導関数まで定義されます)。具体的には、関数を範囲でステップで補間しています。 G(X)-40&lt;X&lt;40DX=40 / 100=0.4ndnd^{\text{nd}}g(x )g(x)g(x)− …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.