Questions tagged «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
哪些库对多网格有良好的高级支持?
我打算使用多重网格来计算一些特征值和向量,并且我注意到PETSc对多重网格提供了高级支持。PETSc文档说不应使用PETSc的这一部分,因为它将很快被替换。 哪些其他库对多网格提供了高级支持,并且PETSc大约多久后将发布新的多网格支持?


3
解决PDE的多重网格方法
我需要对Multigrid方法的简单解释或有关此的一些文献。 我熟悉BiCGStab,CG,GS,Jacobi和预处理等迭代方法,但是我是使用多网格方法的初学者。 有人可以详细解释这一点,或者至少提供清晰的伪代码或源代码,即使对于初学者来说,也有很好的文献资料?谢谢!

1
Krylov子空间方法可以用作多网格的平滑器吗?
据我所知,多网格求解器使用迭代平滑器(例如Jacobi,Gauss-Seidel和SOR)来衰减各种频率下的误差。可以使用Krylov子空间方法(例如共轭梯度,GMRES等)代替吗?我不认为它们被归类为“平滑剂”,但是它们可以用于近似粗网格解决方案。我们可以期望看到与标准多网格方法类似的解决方案收敛吗?还是取决于问题?

1
是否有一种多网格算法可以解决Neumann问题,并且收敛速度与级别数无关?
多重网格方法通常可以在水平上解决Dirichlet问题(例如,点Jacobi或Gauss-Seidel)。当使用连续有限元方法时,组装小诺伊曼问题比组装小Dirichlet问题要便宜得多。诸如BDDC之类的非重叠域分解方法(如FETI-DP)可以解释为在层次上解决“固定”诺伊曼问题的多网格方法。不幸的是,多级BDDC的条件数缩放为 C( 1 + 日志(高H))2 升C(1个+日志⁡(HH))2大号C \left(1 + \log \left(\frac{H}{h}\right)\right)^{2L} 其中是能级数,是粗化率。相反,基于Dirichlet问题的带有平滑器的多网格方法的条件数具有与层数无关的条件数。大号大号LH/小时H/HH/h 有没有办法解决“固定”的诺伊曼问题而又不失去层次独立性的方法?
14 pde  multigrid 

1
如何激发Krylov加速的Multigrid(使用MG作为前提条件)?
通过构造初始猜测值并对重复以下步骤,直到收敛为止,可以使用Multigrid(MG)求解线性系统:X 0我= 0 ,1 ..甲X = bAx=bAx=bX0x0x_0我= 0 ,1 ..i=0,1..i=0,1.. 计算残差[R一世= b - A x一世ri=b−Axir_i = b-Ax_i 应用多重网格周期以获得近似值,其中。甲é 我 = - [R 我Δ X一世≈ è一世Δxi≈ei\Delta x_i \approx e_iAei=riAei=riAe_i = r_i 更新xi+1←xi+Δxixi+1←xi+Δxix_{i+1} \gets x_i + \Delta x_i 多重网格周期是应用于以产生的平滑,内插,约束和精确的粗网格求解操作的序列。这通常是一个V周期或W周期。这是一个线性运算,因此我们写成。 Δ X 我 Δ X 我 = 乙ř 我ririr_iΔxiΔxi\Delta x_iΔxi=BriΔxi=Bri\Delta x_i = B …

3
Thomas算法是求解对称对角占优稀疏三对角线性系统的最快方法吗
我想知道托马斯算法是否是解决算法复杂性(不寻找像LAPACK之类的实现包)方面最快的方法(可证明?)来解决对称对角占优的稀疏三对角线系统。我知道,托马斯算法和多重网格都为复杂度,但是多重网格的常数因子可能较小吗?在我看来,Multigrid可能不会更快,但我并不乐观。O(n)O(n)O(n) 注意:我正在考虑矩阵很大的情况。可以采用直接方法或迭代方法。

2
代数多重网格:为什么插值和约束的乘积不会导致范数为1?
我目前正在使用Briggs等人的“ A Multigrid Tutorial”(第8章)。 插值运算符的构造为: 然后给出了约束算子和精细网格算子的构造: 假设我们有三个网格点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, …

3
在Multigrid中通常不进行收敛检查吗?
我刚刚阅读了Briggs / Henson / McCormick的“ A Multigrid教程”中的第3章, 链接。 文本是关于Multigrid循环的,例如V循环,mu循环,FMG。引起我注意的是:在大多数迭代过程中,需要检查是否已收敛到所需的公差/精度,如果是,则过程停止。但是Briggs / Henson / McCormick在提出的方案中不使用任何收敛性检查。迭代和递归的数量只是硬编码的,因此必须相信该方案会收敛。 那么通常如何在Multigrid中完成此操作?通常迭代次数/递归次数只是硬编码的吗?我真的担心我会因为过于精确而浪费大量计算时间,或者另一方面,当我选择较少数量的迭代/递归时,准确性在很多情况下会很差。
12 multigrid 

1
* full *多重网格算法如何运行?
因此,我了解(或至少我相信我知道)V周期的运行方式。我已经在Matlab中编写了V周期的一维递归版本。但是,当我为FMG运行代码时,我的解决方案并未收敛。我相信我的麻烦在于我对FMG实际部分的理解。我目前所知道的是: 只是之前FMG插值,我放松了我的解决方案üuu 插值两个错误和 (?)üuu 执行2网格v循环,将错误传递到v循环(?) 放宽错误(在第二个最粗网格上) 插值和错误üuu 通过添加错误来更新。üuu 运行一个v周期,然后从步骤4开始重复。 我不确定顺序,但是我插值并传递给v周期的确切信息也可能是错误的。如果我在算法中缺少任何内容,请告诉我。
12 multigrid 

3
在哪些应用案例中加性预处理方案优于乘法式预处理方案?
在域分解(DD)和多网格(MG)方法中,可以将块更新或粗略校正的应用组合为加法或乘法。对于逐点求解器,这是Jacobi和Gauss-Seidel迭代之间的差异。为乘法平滑充当小号(X ø 升d,b )= X Ñ ë 瓦特当施加甲X = bAx=bAx = b小号(xÒ 升d,b )= xñ Ë W ^S(xold,b)=xnewS(x^{old}, b) = x^{new} X我+ 1= Sñ(Sn − 1(。。。,小号1个(x一世,b )。。。,b ),b )xi+1=Sn(Sn−1(...,S1(xi,b)...,b),b) x_{i+1} = S_n(S_{n-1}( ..., S_1(x_i, b) ..., b), b) 然后将添加剂平滑剂应用为 X我+ 1= x一世+ ∑ℓ = 0ñλℓ(Sℓ(x一世,b )− x一世)xi+1=xi+∑ℓ=0nλℓ(Sℓ(xi,b)−xi) x_{i+1} = x_{i} …


3
如何构造代数多重网格求解器的延长和限制算子?
我正在尝试求解一个稀疏但缺少任何带状结构的线性方程组。我听说,有一种方法可以将隐式有限差分方案的多网格求解器的原理扩展到一般的线性问题(如果我没记错的话,它称为代数多网格求解器)。在阅读了一些有关它的文献之后,我仍然很困惑如何在粗网格和精网格之间进行插值(即延长和限制),而没有像有限差分方案那样利用带状矩阵的精细结构。有启发式吗?谁能举个例子?

2
在“非完美矩形”网格上的多重网格
多重网格介绍通常使用矩形网格。值的插值就很简单了:只需在粗网格的两个相邻节点之间的边缘上线性插值,即可找到该边缘上的细网格节点的值。 对于FEM应用程序,我有一个“拓扑”为矩形的网格,因此节点连接与矩形网格相同。但是,节点在网格上的排列不是完美的,但可能会移动很短的距离以更好地适应几何形状,同时仍保持与理想矩形网格中的连接。 网格看起来像这样:网格示例。您会看到:连接是“规则矩形”,但节点位置不是。 我可以为这种设置想象几种“合理的”几何插值方案。 普遍的问题是:只要插值是“良好”的,多重网格是否需要一个完美对齐的矩形网格,或者它也可以在上述情况下工作?还是在这种情况下使用代数多重网格更好?(我不喜欢它,因为它不像几何多重网格那样直观。)
9 multigrid 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.