計算科学

科学的問題を解決するためにコンピュータを使用する科学者のためのQ&A

3
のみ評価できる未知の関数を最適化しますか?
未知の関数与えられた場合、そのドメイン内の任意のポイントでその値を評価できますが、その式はありません。つまり、は私たちにとってブラックボックスのようなものです。 ff:Rd→Rf:Rd→Rf:\mathbb R^d \to \mathbb Rfff の最小化子を見つける問題の名前は何ですか?そこにはいくつかの方法がありますか?fff 方程式の解を見つける問題の名前は何ですか?そこにはいくつかの方法がありますか?f(x)=0f(x)=0f(x)=0 :二つの問題上には、Fのいくつかの評価に補間又は適合することをお勧めします関数用い既知の形態とパラメータでを決定し、最小化するか、その根を見つけますか?G θ θ G θ(xi,f(xi)),i=1,…,n(xi,f(xi)),i=1,…,n(x_i, f(x_i)), i=1, \dots, ngθgθg_\thetaθθ\thetagθgθg_\theta よろしくお願いします!

3
小さい線形システムの数値的に安定な陽解
不均一な線形システムがあります Ax=bAx=b Ax=b ここで、実数であり、N × NのマトリクスN ≤ 4。Aのヌル空間はゼロ次元であることが保証されているため、方程式には一意の逆x = A − 1 bがあります。結果はODEの右側に入りますが、これは適応法を使用して解決する予定であるため、Aおよびbの要素のわずかな変動に対して解が滑らかであることが重要です。この要件と小さな次元性のために、A − 1 bの明示的な公式を実装すると考えました。AAAn×nn×nn\times nn≤4n≤4n\leq 4AAAx=A−1bx=A−1bx=A^{-1} bAAAbbbA−1bA−1bA^{-1} b。要素は正確にゼロでも、まったく異なる値でもかまいません。私の質問は、これがあなたにとって理にかなっているか、そしてこれに対する既知の安定した表現があるかどうかです。x86システム用にCでコーディングしています。

3
ポアソン方程式:ラグランジュ乗数による境界条件として完全勾配を課す
私は、2次元のポアソン方程式によって支配物理的な問題を有していて 私は2つの勾配成分の測定値を有する ∂ U / ∂ X及び ∂ U / ∂ Y境界の一部に沿って、 ΓのMよう課すしたい、 ∂ uと−∇2u=f(x,y),inΩ−∇2u=f(x,y),inΩ -\nabla^2 u = f(x,y), \; in \; \Omega ∂u/∂x∂u/∂x\partial{u}/\partial{x}∂u/∂y∂u/∂y\partial{u}/\partial{y}ΓmΓm\Gamma_m あり、遠方界に伝播します。∂u∂xi0=gm,onΓm∂u∂xi0=gm,onΓm \frac{\partial{u}}{\partial{x_i}}_0 = g_m, \; on \; \Gamma_m 接線方向の傾き成分、、私は統合することができ、次いで、ディリクレ条件を介して強制よう ∫ΓM∂U∂あなたは∂バツ(t 、0 )∂u∂x(t,0)\frac{\partial{u}}{\partial{x}}_{(t,0)} 同時に法線成分を課すために、 ∂ U∫Γm∂あなたは∂バツ(t 、0 )ds = u0∫Γm∂u∂x(t,0)ds=u0 \int_{\Gamma_m}\frac{\partial{u}}{\partial{x}}_{(t,0)} \, ds = u_0 、私はラグランジュ乗数を経由する必要があります集まりました。∂あなたは∂バツ(n 、0 …


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 

1
HPCのローカルメモリ/計算、ネットワーク遅延、および帯域幅ジッターの統計モデル
並列計算は、確定的なローカル計算速度、レイテンシオーバーヘッド、およびネットワーク帯域幅を使用して頻繁にモデル化されます。実際には、これらは空間的に可変であり、非決定的です。Skinner and Kramer(2005)などの研究ではマルチモーダル分布が観察されていますが、パフォーマンス分析では常に決定論的分布またはガウス分布のいずれかが使用されているようです(不正確なだけでなく、負のレイテンシの正の確率により一貫性がありません)。 より忠実な統計モデルが開発されましたか?ローカルコンピューティング/メモリ、レイテンシ、および帯域幅の変動における相互相関の説明はありますか?

6
計算科学のためにどの言語を学ぶべきですか?
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細がない回答は、編集または削除できます。 私は計算科学の概念にまったく慣れていないので、良い出発点を探しています。 客観的に最良の言語はないことは理解していますが、計算科学に関しては間違いなく強力で目立つ存在を持つ言語を学びたいと思っています。 まず、グラフィカルな表現/シミュレーションが必要な原子結合と相互作用に関連するモデリングに傾倒していました。 一部の言語は他の分野よりも優れている傾向がありますか(つまり、物理学と純粋数学)。または、他の要因に基づいて言語を選択していますか? Fortranという名前がたくさん出回っているのを聞きました。 提案?
11 languages 

2
コレスキー因子の計算
したがって、コレスキー分解の定理は、任意の実対称正定行列がコレスキー分解持っていると述べています。ここで、は下三角行列です。M = L L ⊤ LMMMM= L L⊤M=LL⊤M= LL^\topLLL 与えられた場合、コレスキー因子を計算する高速アルゴリズムがあることはすでにわかっています。LMMMLLL ここで、長方形の行列が与えられ、が正定であることを知っていたとします。明示的に計算してからコレスキー分解アルゴリズムを適用せずに、のコレスキー因子を計算する方法はありますか?A A ⊤ A L A ⊤ A A ⊤ Am×nm×nm\times nAAAA⊤AA⊤AA^\top ALLLA⊤AA⊤AA^\top AA⊤AA⊤AA^\top A が実行する非常に大きな長方形行列である場合、は明らかに非常に高価であるため、問題になります。A ⊤ AAAAA⊤AA⊤AA^\top A


3
C ++の並列動的グラフライブラリを探しています。
こんにちは、scicompコミュニティ、 NetworkX(Python)、JUNG、YFiles(Java)などのフレームワークを使用して、グラフアルゴリズムの分野で働いてきました。現在、並列コンピューティングと高性能コンピューティングの分野に参入しています。新しいプロジェクトでは、次の機能を備えたC ++グラフライブラリを探しています。 アルゴリズム開発を可能にする直感的なインターフェースを備えています 動的な操作をサポートします。たとえば、任意のノード/エッジの挿入と削除 並列化をサポートします。たとえば、マルチスレッドで発生する問題からプログラマを保護します メモリオーバーヘッドが低く、高性能コンピューティングに適しています いくつかのライブラリを提案し、これらの基準と賛否両論について議論してください。

1
計算方法が改善されていますか?
ほとんどの数学ライブラリには、対数関数の多数のバージョンがあります。ほとんどの場合、それらは完璧であると仮定しますが、実際にはかなりの数の精度が一定の桁数で提供されています。 一部の関数には、数値的に安定したバリアントがあります。たとえば、Fortran、R、Java、Cの両方にはMath.log1p、計算用にlog(1.0+x)(xの小さな値に対してより高い精度を提供する)と、対応するがありexpm1ます。ここで、数値の問題は精度の低下から発生します- x本当に小さい場合1.0 + x、先頭の1を保持するために桁が失われます。 私は、多くの状況で精度を高めるためのそのような関数を見てきました。これは、高い数値精度で分布関数(ガンマ、ベータ、ポアソンなど)を実装する場合によくあるようです。たとえば、ガンマ関数はほとんどの場合、として使用されlogGammaます。一般に、「ログスペース」に移動すると精度が大幅に向上する可能性があるため、ほとんどの関数にはRに「ログスペース」フラグが設定されているようです。 別の例では、Rは、存在log1mexpのためにlog(1 - exp(p)): http://cran.r-project.org/web/packages/Rmpfr/vignettes/log1mexp-note.pdf エントロピーと情報理論的手段で遊んでいます。非常に一般的な用語があります p * -log(p) 通常、対数の底はeではなく2になります。しかし、これは多くの場合、これは線形要因に過ぎず、自然対数も使用できます(したがって、これは私にとって重要ではありません)。とにかく、この用語をより速く/より直接的に/より正確に計算する方法があるかどうか知っていますか?私はあちこちでそれを持っているので、それをもう少し正確かつ高速にするために本当に成果を上げることができます(通常の「時期尚早な最適化」のものをありがとう、ありがとう)。 精度の低下を引き起こす明白な理由は見当たりません。そのため、この計算を高速化するための素晴らしいトリックがあるかどうかに主に興味があります。それはおそらく私がp=0コーナーケースを処理することを節約することもあります(これは存在し0ますlog(0)が、存在しませんが)、ベース2を無料で提供します(ただし、定数との単一の乗算は明らかに高価ではありません)。ありがとう。

2
CVXOPTVS。OpenOpt
CVXOPT:http ://abel.ee.ucla.edu/cvxopt/index.html OpenOpt:http ://openopt.org/Welcome それらの間の関係は何ですか? それぞれの長所/短所は何ですか? ところで、Python / C ++用の高品質の汎用凸最適化ライブラリは他にありますか?

4
高次元データ用の最速のPCAアルゴリズム
約40 000個のサンプルで構成されるデータセットに対してPCAを実行します。各サンプルには約10,000個の特徴が表示されます。 Matlab princomp関数を使用すると、一貫して30分以上かかり、その時点でプロセスを強制終了します。10分以内に実行される実装/アルゴリズムを見つけたいです。最速のアルゴリズムは何でしょうか?i7デュアルコア/ 4GB RAMにかかる時間はどれくらいですか?

2
GPUシステムでのBLAS / LAPACKまたはその他の線形代数ルーチンの最速の実装は何ですか?
たとえば、nVidiaにはCUBLASがあり、7-14倍の高速化が約束されています。簡単に言えば、これはnVidiaのGPUカードの理論的なスループットに近いものではありません。GPUでの線形代数の高速化における課題は何ですか?また、より高速な線形代数のルーティングが既に利用可能ですか?

5
コードのアーカイブの寿命を延ばす
再現可能な科学的結果に目を向けて、コードの寿命を確保するためのベストプラクティスの公開リストはありますか?(例えば、オープンソース、ドキュメント作成、依存関係の選択、言語の選択、仮想マシンなど)。 典型的な科学的コードまたは他のソフトウェアの半減期を推定しようとした研究(またはそれが欠けている例/逸話)

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