計算科学

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

3
2つの間隔の交点を見つける最も簡単な方法
今、私は問題を抱えています。ささいなことのようですが、それでも適切な解決策を見つけるのは難しいです。問題は次のとおりです。1つには2つの間隔があり、それらの交点を見つけることです。 例えば: 交差点[0,3] - [2,4]されている[2、3] 交差点[-1、34]&[0,4]されている[0,4] [0、3]&[4、4]の交差が空のセットです 考えられるすべてのケースのテストを使用することで問題を解決できることは明らかですが、時間がかかり、間違いを起こしやすい傾向があります。問題に取り組む簡単な方法はありますか?あなたが解決策を知っている場合は、私を助けてください。とてもありがたいです。

2
OSの選択は、科学計算コードのパフォーマンスにとってどれほど重要ですか?
Linuxの方が高速であると言うのはよくあることですが、それには正当な理由があります。しかし、タイトルで述べたように、OSの選択は科学計算コードのパフォーマンスにとってどれほど重要ですか?オペレーティングシステムがより直接的に関与しているもの(ゲームのプレイやビデオレンダリングなど)の場合、違いがある可能性があります。しかし、MATLABでコードを実行したり、JuliaでPDEを解いたり、CUDAを使用してGPUで線形代数を実行したりする場合、実際にはWindows、MacOS、Linuxの間に測定可能なパフォーマンスの違いがあるのでしょうか。 そのような違いが存在するかどうかを確認するために誰かがベンチマークを実行したかどうか疑問に思っています。使用するコンパイラーが異なるため、MATLABなどの一部のソフトウェアを使用するときに違いがあるのでしょうか。または、CUDAドライバーは、あるOSの方が他のOSよりもかなり高速ですか?または、OSがWDDM CUDAの問題のように干渉することはありますか? 注:この質問の範囲を超えるオペレーティングシステムを選択する理由は他にもあります。特にパフォーマンスについて疑問に思っています。

1
同じソリューションで2つの逆問題を解決する
私には2つの逆問題があります、 あ1 x = b1あ2 x = b2あ1 バツ=b1あ2 バツ=b2A_1 ~ x = b_1 \qquad A_2 ~ x = b_2 これまでのところ、Tikhonov正則化を使用してそれらを個別に解決し、 2つの推定値を取得していバツバツxます。ただし、私の場合、バツバツxは両方の方程式で同じ解を表します。「同時に」解決することは可能ですか?理想的には私は答えを見つけるでしょう 分( ∥ A1x − b1∥2+ ∥ A2x − b2∥2+ ∥ Γ X ∥2)分(‖あ1バツ−b1‖2+‖あ2バツ−b2‖2+‖Γバツ‖2)\min \left( \lVert A_1 x - b_1 \rVert^2 + \lVert A_2 x - b_2 \rVert^2 + …

2
凸問題が最適化しやすいのはなぜですか?
質問に対するこのトップアンサーに動機付けられた:最適化において、凸性は準凸性よりもなぜ重要なのですか?、私は今、なぜ凸問題が最適化しやすい(または少なくとも準凸問題より簡単である)かを理解したいと思っています。 凸最適化の最も効率的なアルゴリズムにはどのようなものがありますか?それらは準凸問題で効果的に使用できないのはなぜですか?

6
2つのフロートの等価性のテスト:現実的な例
2つの浮動小数点数の等価性をテストすることは、プログラミングで通常どのような意味がありますか? すなわち a == b ここで、aとbはどちらも浮動小数点数です。 私の素朴な印象は、ある程度の耐性イプシロンに対して常に違いをテストするということです。 私が間違っている?フロートの等価性をテストすることは、特定のコンテキストで意味がありますか? 野生の例はありますか?つまり、実際のコードベースまたはアプリケーションから、gitなどにあります。 PS。floatで等値演算子を使用することは、一部のコンテキストでは実際に意味があると想定しています。そうでなければ、ほとんどのプログラミング言語がそれを許可する理由。

5
ボックス内の領域のボロノイ図を計算する
私は次のような問題に直面しています。特定の未知の分布を持つポイントでいっぱいのボックスがあり、そのボロノイ図を計算したいと思います。問題は、ポイントの数が非常に多いため、完全な配布ではこれを実行できない場合があることです。 そのため、ポイント数がそれほど多くないボックス内の領域のみにそれを行うことを計画しました。そのためには、そのボックス内の特定の小さな領域のボロノイ図に影響を与える可能性のある最小領域を計算する方法を知る必要があります。 言い換えれば、以下の図の小さな立方体の内側の点のボロノイ図を計算し、メモリ上で可能な最小のボロノイ図を格納するフルボックスの点を持つボロノイ図に適合するようにします。


3
ODE対DAE対ADE?
私がよく知っているODEと微分代数方程式(DAE)と代数微分方程式(ADE)の間で完全に混乱しています。それらは同じですが、名前が異なるだけですか、それらの主な違いは何ですか(それらの性質と解決方法)。よろしくお願いします

1
N体シミュレーションの最適化、名前または既存の作業の検索
WebGLで視覚化したN体シミュレーションの開発中に、最適化を考案しましたが、名前があるかどうか疑問に思っています。これまでに行われたことがない可能性は低いと思います。 これは次のように機能します。最初のタイムステップで、すべてのペアの反復を作成します。その反復中、各パーティクルについて: すべての密接な相互作用をリストに保存します-この相互作用に近いすべての粒子を表します。これらの相互作用は、それ以降、タイムステップごとに評価されます。このリストには通常、少数のエントリが含まれます。 他のすべてのパーティクルで反復し、パーティクルと一緒に保存する正味のフォースを計算します。したがって、この正味の力はタイムステップ間で記憶され、継続的に粒子に適用されます。 次に、シミュレーションが最初のタイムステップを過ぎてラウンドロビン方式で続行されると、各タイムステップは、少数の粒子の近接相互作用と正味の遠方力のリストを更新します。そのため、特定の数のタイムステップ(たとえば1000)を超えると、すべてのパーティクルの密接な相互作用と正味の遠方の力が更新されます。更新しないものは、それらの密接な相互作用をチェックし、正味の遠方の力を適用します。この例では、各時間ステップの計算の複雑さのようなものであるの代わりにN 2。N2/ 1000N2/1000N^2 / 1000N2N2N^2 これをある程度正確にするための秘訣は、「密接な相互作用」をよりよく識別することです。近接性が最適な指標ではない場合もあります。質量や相対速度なども考慮できます。「最も重要な相互作用」の方がいいかもしれません。または、「変更の可能性が最も高い、すぐに相互作用」。 この最適化により、すべてのペアの方法よりも相互作用する粒子が多くなりますが、 O()で表現する方法がわかりません。これは、タイムステップごとに完全なソリューションを作成するのではなく、古いものを(わずかに正しくない)再利用するためです。情報を収集し、時間の経過とともに計算量を分散させます。 (免責事項:私のwebglシミュレーションにも影響を受けるだけの「vfx」パーティクルがあります、重力のて効果を往復しないため、表示されるほど高速ではありません) この最適化手法には名前がありますか?

2
可変スペースのサイズを削減するための最適化アプローチの名前
過剰に最適化する変数が多数ある最適化問題を扱っています。たとえば、これらの変数を、y、zと呼び、関数f (x 、y 、z )を最小化したいとします。私が使用している最適化方法では、すべての変数の最適化を一度に処理できません。代わりに、他の変数を固定したまま、一度に1つの変数を最適化することで問題を単純化しています。xxxyyyzzzf(x,y,z)f(x,y,z)f(x,y,z) つまり、とz = z 0を修正し、xに対してのみ関数を最適化します。この1D最適化により、いくつかの最適値x ∗が得られます。次に、x = x ∗、z = z 0を修正し、yで最適化します。これは必ずしもグローバルに最適なソリューションを提供するわけではありませんが、ローカルミニマムを生成するはずです。y=y0y=y0y=y_0z=z0z=z0z=z_0xxxx∗x∗x^*x=x∗x=x∗x=x^*z=z0z=z0z=z_0yyy このメソッドの名前が何であり、それに関する情報がどこにあるかを知りたいのですが。また、より適切なコミュニティがある場合は、お知らせください。ありがとう 編集:解が収束するまで、最適化は、次にy、次にz、次にxと続きます。xxxyyyzzzxxx

1
積分を数値的に反復することはいつ有利ですか?
ある場合には(n+1)(n+1)(n+1)の形の次元積分は 通常1は、ドメイン全体にわたって多次元統合ライブラリを使用してこれを評価するであろう [ 0 、1 ] のn + 1。∫[0,1]n+1f(x,y)dnxdy,∫[0,1]n+1f(x,y)dnxdy, \int_{[0,1]^{n+1}} f(x, y)\,\mathrm{d}^n x \,\mathrm{d}y,[0,1]n+1[0,1]n+1[0,1]^{n+1} しかし、1次元の求積法を使用して積分を個別に実行し、多次元積分ライブラリを使用して他のn座標で被積分関数を評価することが理にかなっている条件はありますか? ∫ [ 0 、1 ] nは G (X )yyynnn∫[0,1]ng(x)dnx,g(x)=∫10f(x,y)dy.∫[0,1]ng(x)dnx,g(x)=∫01f(x,y)dy. \int_{[0,1]^n}g(x)\,\mathrm{d}^nx, \qquad g(x) = \int_0^1 f(x,y)\,\mathrm{d}y. これは、たとえば、がyの関数として特に滑らかであるがxの関数としては滑らかでない場合に意味があります。しかし、この場合、正確にどれほどスムーズでなければならないのでしょうか。1-d求積法の評価点が多すぎると「無駄」になるため、ほとんど意味がないと思いますが、これが常に当てはまるとは思いません。これは、高次元の統合方法の設計によって保証されますか?fffyyyxxx 自分の場合、ブラックボックスであるが、に区分平滑Y、およびキンクの未知量を有しにジャンプX未知の位置で、かつnは極めて高い(N ≥ 4)の積分にxが有しています特に多くの次元のために何かを行うために。yの積分は、のような通常の方法で実行できます。この例では、関数はyで十分滑らかであり、ほとんど機能しているように見えますが、繰り返しの積分は最終的に30倍遅くなるため、アプローチが誤っているのではないかと思います。fffyyyxxxnnnn≥4n≥4n\geq 4xxxyyyquadgkyyy これが文献のどこですでに議論されているかを知っているなら、それも役に立ちます。 例。 (これが簡単ではない理由です)私が本当に興味を持っているものとは異なり、非常に滑らかな「簡単な」積分を考えてみましょう: 被積分関数で ナイーブ n次元モンテカルロを実行するか、または積分された被積分関数でナイーブ(n − 1 )次元モンテカルロを x 1について一度積分すると、 g (x 2 :n)= …

2
l2ノルムとL2ノルムの違い
ノルムとL 2ノルムの違いは何ですか。明確なリファレンスが見つかりません。 ウィキペディアはそれらを互換的に使用しています。l2l2l^2L2L2L^2

2
Intel Knights LandingのワークロードとNVIDIA GeForce
新しく発売されたIntel Xeon Phiが競合他社からHPC \ Super Computerの市場シェアを奪う方法について書かれた記事はたくさんあります。Intel Knightsには72コアと4ソケットが搭載されており、288コアシステムとなっています。一方、単一のGtx980には2048のCUDAコアがあります。これら2つはどのようにしてコンピューティング能力の点で競争できますか(GTXがはるかに進んでいるように見えます)?または、それらは完全に異なる作業負荷を対象としていますか?その場合、いくつかの例は何ですか? ありがとう。

2
共役勾配がこの非対称前提条件子で機能するのはなぜですか?
で、この前スレッド対称予備調整組み合わせる以下乗法方法及びP 2対称システムのためのA 、X = Bが示唆された: P - 1つのコンボ:= P - 1 1 + P - 1 2(I - A P - 1 1)= P − 1 1 + P − 1 2 − P −P1P1P_1P2P2P_2あx = bあバツ=bAx=bP− 1コンボ:==P− 11+ P− 12(私− A P− 11)P− 11+ P− 12− P− 12A P− …

1
どの数値法が時間反転対称性を維持しますか?
私は時間反転対称性を含む物理システムがある場合(たとえばハミルトニアンとV (X )実数)とIは、微分方程式を解くしたいですこのシステムについて説明してください。時間反転の対称性を維持するために、ODEのどのソルバーを使用すればよいですか(たとえば、mathematica)。この対称性を破るソルバーはどれですか?H(x 、p )= p2/ 2m+V(x )H(バツ、p)=p2/2メートル+V(バツ)H(x,p)=p^2/2m + V(x)V(x )V(バツ)V(x) 編集:私はこの質問を拡張したいと思います。私たちが結合された第一次微分方程式のシステム考える 基盤となるシステムは、時間反転対称性が含まれている場合、どのように統合する方法が最もよく使用されていますか?a˙1(t )= f1(a1、a2、a3、… 、aん; t )a˙2(t )= f2(a1、a2、a3、… 、aん; t )a˙3(t )= f3(a1、a2、a3、… 、aん; t )⋮a˙1(t)=f1(a1、a2、a3、…、aん;t)a˙2(t)=f2(a1、a2、a3、…、aん;t)a˙3(t)=f3(a1、a2、a3、…、aん;t)⋮\dot{a}_1 (t) = f_1(a_1,a_2,a_3,\ldots,a_n;t) \\ \dot{a}_2(t) = f_2(a_1,a_2,a_3,\ldots,a_n;t) \\ \dot{a}_3(t) = f_3(a_1,a_2,a_3,\ldots,a_n;t) \\ \vdots

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