計算科学

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

2
線形制約の絶対値
制約に絶対値がある次の最適化問題があります。 ましょバツ∈Rnx∈Rn\mathbf{x} \in \mathbb{R}^n及びサイズの列ベクトルであるそれぞれ。以下を解決したいと思います: f0、f1,…,fmf0,f1,…,fm\mathbf{f}_0, \mathbf{f}_1, \ldots, \mathbf{f}_mnnnmins.t.fT0x|fT1x|≤|fT2x|≤…≤|fTmx|minf0Txs.t.|f1Tx|≤|f2Tx|≤…≤|fmTx|\begin{align} \min &\mathbf{f}_0^T \mathbf{x} \notag \\ \text{s.t.} &|\mathbf{f}_1^T \mathbf{x}| \leq |\mathbf{f}_2^T \mathbf{x}| \leq \ldots \leq |\mathbf{f}_m^T \mathbf{x}| \end{align} 実行可能な空間が凸面にならないことを知っているので、おそらく問題を解決するためにMILPが必要になります。必要なバイナリ変数の最小数と、問題を解決するセットアップを探しています。 通常、不等式の片側のみに絶対値がある場合(http://lpsolve.sourceforge.net/5.1/absolute.htm)、絶対値を扱うのは簡単です。ただし、このケースはより複雑なようです。 前もって感謝します。

1
シュレディンガー方程式の数値法
強いレーザーパルスと相互作用する水素原子のシュレディンガーの方程式を解くために使用できるさまざまな数値的手法の性能を比較しています(摂動法を使用するには強すぎます)。放射状部分に離散化スキームを使用する場合、ほとんどの(すべての)人が原子を箱に入れ、半径を大きな値で切り落とし、それらの基底系を解くように見えます。これは、放射状変数を有限領域にマッピングし、その領域を離散化する(プロセスで、利用可能な基底系のほとんどを捨てる)のと比較してどうですか?誰もそうしない理由はありますか?

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)>0F(x,y)>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)

2
大規模な最適化問題を解くための分解方法
大規模な数理計画問題を解決するための分解方法(原始、双対、ダンツィッヒ・ウルフ分解など)に関するテキストや調査記事に関する提案があるのではないかと思いました。 私はスティーブン・ボイドの「分解方法に関する注意事項」が好きでした。例えば、このトピックをより詳細に扱った教科書を見つけるのは素晴らしいことです。

1
ルックアップと計算のコスト
距離基準が満たされているかどうかを確認する計算をセットアップすることに興味があります。つまり、ベクトルとanベクトルx jの間の距離は、ある値r m a xよりも小さくなければなりません。データは、座標の直交グリッドに従って分割されています。私のカットオフは最近接座標の端点間の距離よりも小さいため、「オクタント」変数を追加して、正しくセットアップされているかどうかを確認します。xixi{\bf x}_ixjxj{\bf x}_jrmaxrmaxr_{\rm max} if octant[j] in allowed_list continue 「短絡」として if dist(x[i], x[j]) < r_max 私の質問は、浮動小数点演算に対するブール検索と比較の計算効率はどれくらいですか?これは現代のアーキテクチャで行う価値がありますか?
12 efficiency 

2
Pythonで線形制約を使用して最小二乗問題を解く
解決する必要があります 秒。トン。分バツ∥ A X - B ∥22、∑私バツ私= 1 、バツ私≥ 0 、∀ 私は。分バツ‖Aバツ−b‖22、s。t。∑私バツ私=1、バツ私≥0、∀私。\begin{alignat}{1} & \min_{x}\|Ax - b\|^2_{2}, \\ \mathrm{s.t.} & \quad\sum_{i}x_{i} = 1, \\ & \quad x_{i} \geq 0, \quad \forall{i}. \end{alignat} 私はそれがCVXOPTで解決できる二次問題だと思いますが、どうやって解決するかはわかりません。

3
Blaze線形代数ライブラリ?
SIAM Journal of Scientific Computingの論文「Expression Templates Revisited:A Performance Analysis of Current Methodologies」は、「Blaze」線形代数ライブラリを参照しています。私はそれについて聞いたことがなく、オンラインの参照を見つけることができないようです。(明らかなグーグル検索は上記の論文を返している。) それでは、このライブラリとは何であり、どこで詳細について学ぶことができますか?

2
最適化におけるニュートンベースの方法対非線形方程式の解法
私はminpackに関する最近の質問について説明を求め、次のコメントを得ました: 方程式系はいずれも最適化問題に相当します。そのため、最適化におけるニュートンベースの方法は、非線形方程式システムを解くためのニュートンベースの方法によく似ています。 このコメント(およびminpackのような特殊な非線形最小二乗ソルバーに関する関連する否定的な意見)について私を混乱させるものは、共役勾配法の例で最もよく説明されるかもしれません。この方法は、対称正定行列Aを持つシステム適用できます。一般的な最小二乗問題min x |を解決するためにも使用できます。| A x − b | | 任意の行列Aの場合は2A x = bAバツ=bAx=bAAA分バツ| | Ax−b | |2分バツ⁡||Aバツ−b||2\operatorname{min}_x||Ax-b||^2AAA、しかし、そうすることは推奨されません。これを行わない理由の1つは、システムの条件数が大幅に増加することです。 しかし、連立方程式を最適化問題に変換することが線形の場合でも問題があると考えられる場合、なぜ一般的な場合では問題が少ないのでしょうか?少し経年劣化した非線形最小二乗ソルバーを使用するのではなく、最先端の最適化アルゴリズムを使用することに何らかの関係があるようです。しかし、問題は、情報の破棄とシステムの条件数の増加に関連しており、実際に使用されている最適化アルゴリズムとは比較的無関係ではないでしょうか?

4
分子エディター/ビジュアライザーの作成:オブジェクト指向プログラミング、データ構造、分子
私はプログラミングが初めてで、最初の大きな問題を解決し、最初の大きなプログラムを作成しようとしています。私は学習するコードのオープンソースの例を探しましたが、これまでのところ、私が完全に理解していない言語、または関連するがまだあまりにも遠い言語のコードのみを見つけました。ここでいくつかの概念的な手順を実行するのに問題があります。 私は、小さな有機分子を構築し、修正し、後で表現するための簡単なソフトウェアを作りたいです。これは主に学習課題です。ユーザーは、SMILES文字列を指定するか、スターター分子の基本セットから選択し、グラフィカルに、またはテキスト入力構文を介してその分子を構築できます。しかし、私はまだ複雑さのその時点ではありません。クラス/オブジェクトを作成して分子を保存する方法を完全に理解することすらできません。だから、私の質問は簡潔に:すべてのレベルの情報を保持しながら分子を構築するためにクラス/オブジェクトをどのように使用し、どのオブジェクトの属性としてどのデータ構造を使用する必要がありますか?また、オブジェクトを他のオブジェクトの属性にすることはできますか? これまでの私の思考の流れは次のとおりです。「分子」クラス、次に「アトム」クラス/サブクラス、「ボンド」サブクラス、そしておそらく「FunctionalGroup」サブクラスも考えていました。始めるには良い場所のように思えますが、OOPを誤解しているのかもしれませんが、これは悪いことです。しかし、その後、私の問題は本当に混乱します(私にとって)。これらの概念/アイデア/クラスはすべてありますが、分子を表現するためにどのデータ構造が必要かを完全には把握していません。原子のリストがあればいいでしょう。そのリストはAtomオブジェクトのリストですか?接続性を保存する方法も必要です。2Dマトリックスは、結合位置がマトリックス位置の整数であるため、良いアイデアのようです。 この時点で、私は仕事に圧倒され始めています。これまでにやっていることはすべて理にかなっていますか?この上に表示/描画アスペクトを追加することは、これらの多くのことを書き直し/再作業する必要があることを意味するかもしれませんが、少なくとも関連するデータで分子を保存してからアクセスできるポイントに到達しようとしていますチェック/変更するデータ。Pythonでこれを行うことを考えていたので、コード/クラスはおそらく次のようになります:http : //pastebin.com/uUi1BMzr おそらくこれはStackOverflowのプログラミングの質問かもしれませんが、ここに行くのに十分具体的だと思いました。私が概念的な失敗をした場所を指摘しただけでも、どんな援助も大歓迎です。前もって感謝します。

2
タンパク質の表現の「漫画」タイプを数学的にどのように説明できますか?
タンパク質は通常、漫画の形で表され、βシートが矢印、αヘリックスがコイルになります。 私は、この表現の構築を説明する参照がどこかにあるのだろうか?つまり、これらのグラフィックスを構築するためにどの数学オブジェクトが使用され、どの原子/方向に構築されますか?

2
オクターブ:ベクトルの2つの行列間の距離を計算します
N、M 2dベクトルをそれぞれ表す2つの行列Nx2、Mx2があるとします。各ベクトルペア(n、m)間の距離を計算する簡単で良い方法はありますか? もちろん、簡単ですが非効率な方法は次のとおりです。 d = zeros(N, M); for i = 1:N, for j = 1:M, d(i,j) = norm(n(i,:) - m(j,:)); endfor; endfor; 私が見つけた最も近い答えはbsxfun、次のように使用されています: bsxfun(inline("x-y"),[1,2,3,4],[3;4;5;6]) ans = -2 -1 0 1 -3 -2 -1 0 -4 -3 -2 -1 -5 -4 -3 -2

3
特異値分解のアルゴリズムに関する最新技術は何ですか?
私は可能な限りシンプルなパッケージである程度の線形代数機能を提供するためにヘッダーのみのマトリックスライブラリに取り組んでおり、現在の最先端が何であるかを調査しようとしています:SVDの計算複雑なマトリックス。 私は、2相分解、2重対角化とそれに続く特異値計算を行っています。今、私はbidiagonalization(私はLAPACKは同様にこれを使用すると信じて)、と私は考えるために世帯主の方法を使用していることについての、現在につれて良いとして(誰かがを知っているしない限り、そのためのアルゴリズム...) 。 O(N2)O(N2)\mathcal{O}(N^2) 特異値の計算は私のリストの次にあり、私はこれを行うための一般的なアルゴリズムが何であるかについてのループからやや外れています。ここで、研究は複雑性との直交性を保証する逆反復法に向かっていることを読みました。私はそれまたは他の進歩について聞いてみたいです。O(N)O(N)\mathcal{O}(N)

2
三角形と四面体の積分点と重みの自動生成
通常、紙または本を調べて、単位三角形と四面体の積分点と重みを見つけます。このような点と重みを自動的に計算する方法を探しています。次のMathematicaコード例は、単位線(四面体/六面体)要素の積分の重みと点を計算します: unitGaussianQuadraturePoints[points_] := Sort[x /. Solve[Evaluate[LegendreP[points, x] == 0], {x}], ! OrderedQ[N[{#1, #2}]] &]; unitGaussianQuadratureWeights[points_] := Module[{gps, f, int, integr, vars, eqns}, gps = unitGaussianQuadraturePoints[points]; f[0, 0] := 1; f[0., 0] := 1.; f[x_, n_] := x^n; int = Integrate[f[x, #], x] & /@ Range[0, points - 1]; integr = …

1
3DでのDelaunayテッセレーションから派生したグラフの列挙
3Dの点のいくつかのDelaunayテッセレーションに対応するグラフを列挙するアルゴリズムはありますか? ある場合、「Delaunay graph」に対応するジオメトリの効率的なパラメーター化はありますか? 結合などの先験的な知識がなくても、指定された組成の分子のすべての安定したジオメトリを体系的に列挙したいと考えています。 編集:をN個の頂点を持つグラフのセットとします。LET D :R 3 N → G NはマップであるN個の点R 3GNGNG_NNNND:R3N→GND:R3N→GND: \mathbb{R}^{3N} \to G_NNNNR3R3\mathbb{R}^3次元における前記点のドロネーテッセレーションに対応するグラフです。 D (R 3 N)を列挙する方法D(R3N)D(R3N)D(\mathbb{R}^{3N})(効率的に)ですか? さらに、Aグラフ所与、どのようにパラメータ化することができD - 1(グラム)g∈Gng∈Gng\in G_nD−1(g)D−1(g)D^{-1}(g)(効率的に)? 編集:2Dの例:4ポイントの場合、2つのドロネーグラフがあります。 1−╲2|4−╱3 and 1|3−×−2|41−2−3╲|╱4 and 1−2|×|3−4 \begin{matrix} 1 & - & 2 & - & 3 \\ &\diagdown &| & \diagup\\ &&4 \end{matrix}\mbox{ and } \begin{matrix} …

4
高速フーリエ変換(FFT)のスケーラビリティ
たとえばPDEソルバーに関連して、均一にサンプリングされたデータに対して高速フーリエ変換(FFT)を使用するには、FFTが)アルゴリズムであることはよく知られています。(つまり非常に大きい)で並列処理された場合、FFTはどれくらいうまくスケールしますか?O(nログ(n )O(nログ⁡(n)\mathcal{O}(n\log(n)n → ∞n→∞n\to\infty

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