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

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つです 不等式制約のヤコビアンと同様に、等式制約のヤコビアンは密です。

2
どのライブラリがマルチグリッドを高度にサポートしていますか?
マルチグリッドを使用していくつかの固有値とベクトルを計算することを計画していますが、PETScがマルチグリッドを高度にサポートしていることに気付きました。PETScのドキュメントには、PETScのこの部分はすぐに交換されるため、使用しないでくださいと書かれています。 マルチグリッドを高度にサポートしているライブラリはどれですか?また、PETScが新しいマルチグリッドサポートをリリースするのはおよそどのくらいですか?

3
PDEを解くためのマルチグリッド法
マルチグリッド法の簡単な説明またはこれに関するいくつかの文献が必要です。 私は、BiCGStab、CG、GS、Jacobiおよび事前調整などの反復法に精通していますが、マルチグリッド法の初心者です。 非常に初心者向けの優れた文献であっても、誰かがこれを詳細に説明したり、少なくとも明確に擬似コードまたはソースコードを提供したりできますか?ありがとう!

1
クリロフ部分空間法をマルチグリッドのスムーザーとして使用できますか?
私の知る限り、マルチグリッドソルバーは、Jacobi、Gauss-Seidel、SORなどの反復スムーザーを使用して、さまざまな周波数でエラーを減衰させます。代わりに、クリロフ部分空間法(共役勾配、GMRESなど)を利用できますか?私はそれらが「スムーズナー」として分類されるとは思わないが、それらは粗いグリッド解を近似するために使用できる。標準的なマルチグリッド法の場合と同様に、ソリューションへの類似した収束を期待できますか?それとも問題に依存していますか?


1
ノイマン問題を解決し、レベル数に依存しない収束速度を持つマルチグリッドアルゴリズムはありますか?
マルチグリッド法は通常、レベル上のディリクレ問題を解決します(たとえば、ポイントヤコビやガウスザイデル)。連続有限要素法を使用する場合、小さなディリクレ問題を組み立てるよりも、小さなノイマン問題を組み立てる方がはるかに安価です。BDDC(FETI-DPなど)などの非重複ドメイン分解法は、レベルで「ピン留めされた」ノイマン問題を解決するマルチグリッド法として解釈できます。残念ながら、マルチレベルBDDCの条件数は次のようにスケーリングされます C( 1 + ログ(Hh))2 LC(1+ログ⁡(Hh))2LC \left(1 + \log \left(\frac{H}{h}\right)\right)^{2L} ここで、はレベル数、は粗化率です。対照的に、ディリクレ問題に基づくスムーザーを使用したマルチグリッド法の条件数には、レベル数に依存しない条件数があります。H / hLLLH/ hH/hH/h レベルの独立性を失うことなく、「固定された」ノイマン問題を解決する方法はありますか?
14 pde  multigrid 

1
Krylov加速マルチグリッド(MGを前提条件として使用)はどのように動機付けられますか?
マルチグリッド(MG)は、線形システム解くために使用されてもよい初期推定構築することによって、X 0とするための次の繰り返しiは= 0 、.. 1収束するまで:A x = bAバツ=bAx=bバツ0バツ0x_0i = 0、1 ...私=0、1 ..i=0,1.. 残差r i = b − A x iを計算しますr私= b − A x私r私=b−Aバツ私r_i = b-Ax_i 近似を得るためにマルチグリッドサイクルを適用、ここで、A 、E 、I = R I。ΔのX私≈ E私△バツ私≈e私\Delta x_i \approx e_iA e私= r私Ae私=r私Ae_i = r_i アップデートは、バツi + 1← x私+ Δ X私バツ私+1←バツ私+△バツ私x_{i+1} \gets x_i + \Delta ...

3
Thomasアルゴリズムは、対称対角優勢なスパース三重対角線形システムを解くための最速の方法ですか
Thomasアルゴリズムが、アルゴリズムの複雑さの観点から対称対角線上にあるスパース三重対角システムを解決するための最速の方法(おそらく?)かどうか疑問に思っています(LAPACKなどの実装パッケージを探していません)。トーマスアルゴリズムとマルチグリッドの両方が複雑さであることは知っていますが、マルチグリッドの定数因子はそれよりも少ないのでしょうか?マルチグリッドの方が速いように思えませんが、私は前向きではありません。O(n )O(n)O(n) 注:マトリックスが非常に大きい場合を考えています。直接的な方法または反復的な方法のどちらでもかまいません。

2
代数的マルチグリッド:補間と制限の積がノルム1の結果にならないのはなぜですか?
私は現在、ブリッグスらによる第8章の「マルチグリッドチュートリアル」で作業しています。 補間演算子の構成は次のとおりです。 次に、制限演算子と細かいグリッド演算子の構築は次のように与えられます: 3つのグリッドポイントx0、x1、x2があり、中央のグリッドポイントx1は細かく、他のグリッドポイントは粗いものと仮定します。真ん中のものはによって補間されx1 = x0*w0 + x2*w2ます。したがって、補間演算子は(Matlabで): I = [1, 0, 0; w0, 0, w2; 0, 0, 1] I = [ 1, 0, 0] [ w0, 0, w2] [ 0, 0, 1] 制限演算子は次のとおりです。 transpose(I) ans = [ 1, w0, 0] [ 0, 0, 0] [ 0, w2, 1] では、制限してから直接補間するとどうなるのか、Iそしてandの乗算になる結果を見てみましょうtranspose(I)。 ...

3
Multigridで収束チェックを行わないのは普通ですか?
Briggs / Henson / McCormickによる「A Multigrid Tutorial」の第3章、linkを読みました 。 テキストは、Vサイクル、ミューサイクル、FMGなどのマルチグリッドサイクルに関するものです。私の目を引いたもの:ほとんどの反復手順では、目的の許容誤差/精度に収束したかどうかを確認し、収束した場合は手順を停止します。ただし、Briggs / Henson / McCormickは提示されたスキームで収束チェックを使用しません。反復と再帰の数はハードコーディングされているだけであり、スキームが収束することを信頼する必要があります。 それでは、これはマルチグリッドで通常どのように行われますか?反復/再帰の数が単にハードコーディングされているのは普通ですか?私は非常に正確であるために多くの計算時間を浪費するか、逆に反復/再帰の数を少なくすると多くの場合精度が低下することを本当に恐れています。
12 multigrid 

1
* full *マルチグリッドアルゴリズムはどのくらい正確に実行されますか?
だから私は、Vサイクルがどのように実行されるかを理解しています(少なくとも、私はそう信じています)。Matlabで、Vサイクルの1-D、再帰バージョンを作成しました。ただし、FMGのコードを実行したとき、解決策は収束していませんでした。私の問題は、実際のFMGパーツの理解にあると考えています。私が現在知っていることはこれです: FMG補間の直前に、私は私の解決策を緩和しましたuuu エラーとuの両方を補間します(?) uuu 2グリッドvサイクルを実行し、エラーをvサイクルに渡します(?) エラーを緩和する(2番目に粗いグリッド上) とエラーを補間するuuu エラーを追加してを更新します。uuu vサイクルを実行し、ステップ4から繰り返します。 順序についてはわかりませんが、正確に補間してvサイクルに渡すものについても間違っている可能性があります。アルゴリズムに何か足りない場合はお知らせください。
12 multigrid 

3
加法的な事前調整スキームは、どのような場合に乗法的なものより優れていますか?
ドメイン分解(DD)とマルチグリッド(MG)の両方の方法で、ブロック更新または粗補正のアプリケーションを加算または乗算のいずれかとして構成できます。点ごとのソルバーの場合、これはヤコビ反復とガウスザイデル反復の違いです。S (x o l d、b )= x n e wとして機能するの乗法スムーザーは、A x = bAバツ=bAx = bS(xO l d、b )= xN E WS(バツold、b)=バツnewS(x^{old}, b) = x^{new} バツi + 1= Sn(Sn − 1(。。。、S1(x私、b )。。。、b)、b )バツ私+1=Sn(Sn−1(。。。、S1(バツ私、b)。。。、b)、b) x_{i+1} = S_n(S_{n-1}( ..., S_1(x_i, b) ..., b), b) 加法平滑剤は次のように適用されます バツi + 1= x私+ ∑ℓ = 0nλℓ(Sℓ(x私、b )− ...

1
線形連立方程式を解くためのマルチグリッド法をどのように並列化できますか?
私が理解しているように、マルチグリッド法は、同じ問題のより粗いバージョンを解決することで線形システムを解決し(低周波誤差を除去することにより)、高精度誤差を滑らかにするために細かいグリッドに投影し直します。大規模なシステムの場合、各グリッドレベルで反復法を並列に実装する方法を確認できます。このアプローチは並行してうまく拡張できますか?アルゴリズムに並行して利用できる並行性の他のソースはありますか?

3
代数的マルチグリッドソルバーの延長および制限演算子の作成方法は?
私は、スパースであるが連帯構造のない線形連立方程式を解こうとしています。暗黙の有限差分スキームのマルチグリッドソルバーの原理を一般的な線形問題に拡張する方法があると聞いたことがあります(誤解しない限り、代数的マルチグリッドソルバーと呼ばれます)。それに関するいくつかの文献を読んだ後、私は有限差分スキームからのもののような縞模様の行列の素晴らしい構造を利用せずに、粗いグリッドと細かいグリッドの間を補間する方法(つまり、延長と制限)にまだ混乱しています。ヒューリスティックなものはありますか?誰でも例を挙げられますか?

2
「完全に長方形ではない」グリッド上のマルチグリッド
マルチグリッドの導入では、通常、長方形のグリッドを使用します。次に、値の補間は単純です。粗いグリッドの2つの隣接するノード間のエッジを直線的に補間して、そのエッジ上の細かいグリッドノードの値を見つけます。 FEMアプリケーションの場合、「トポロジー的に」長方形のグリッドがあるので、ノード接続は長方形グリッドと同じです。ただし、ノードはグリッド上で完全に整列しているわけではありませんが、ジオメトリをより適切にフィットさせるために短い距離を移動する一方で、完全な長方形グリッドのように接続を維持します。 メッシュは次のようになります。メッシュの例。コネクションは「通常の長方形」ですが、ノードの位置はそうではありません。 このような設定で、いくつかの「妥当な」幾何学的補間スキームをイメージできます。 一般的な質問は次のとおりです。マルチグリッドは完全に整列した長方形グリッドを必要としますか、それとも補間が「良好」である限り、上記の状況でも機能しますか?それとも、その場合は代数的マルチグリッドを使用する方が良いですか?(幾何学的なマルチグリッドほど直感的ではないので、私は好みません。)
9 multigrid 

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