Questions tagged «linear-algebra»

有关线性代数的算法/计算方面的问题,包括线性系统的解,最小二乘问题,本征问题和其他此类问题。

4
正交变换何时能胜过高斯消除?
众所周知,线性方程组的正交变换方法(Givens旋转和Housholder反射)比高斯消元法昂贵,但从理论上讲,它们在不改变系统条件数的情况下具有更好的稳定性。尽管我只知道矩阵的一个学术示例,但由于部分旋转而被高斯消除所破坏。而且,人们普遍认为,在实践中很难实现这种行为(请参阅本讲义[pdf])。 那么,我们应该在哪里寻找有关该主题的答案?并行实现?正在更新?

3
求解
我有矩阵AAA和GGG。AAA是稀疏的,并且是n×nn×nn\times n其中nnn非常大(可以达到几百万个数量级。)GGG是一个n×mn×mn\times m高的矩阵,其中mmm很小(1<m<10001<m<10001 \lt m \lt 1000),每列只能有一个111条目其余为的,以使得。很大,所以反转起来真的很困难,我可以求解一个线性系统,例如000GTG=IGTG=IG^TG = IAAAAx=bAx=bAx = b迭代地使用Krylov子空间方法,例如,但我没有明确地拥有。BiCGStab(l)BiCGStab(l)\mathrm{BiCGStab}(l)A−1A−1A^{-1} 我想解决以下形式的系统:,其中和是长度向量。一种实现方法是在迭代算法中使用迭代算法来为外部迭代算法的每次迭代求解。但是,这将在计算上极其昂贵。我想知道是否有一种计算上更简单的方法来解决这个问题。x b m A − 1(GTA−1G)x=b(GTA−1G)x=b(G^TA^{-1}G)x = bxxxbbbmmmA−1A−1A^{-1}

2
解决稀疏线性系统的库
有许多不同的库可以解决稀疏的线性方程组,但是我发现很难找出区别。 据我所知,主要有三个软件包: Trilinos,PETSc和Intel MKL。它们都可以做稀疏矩阵求解,它们都很快(据我所知,我还不能在其中任何一个上找到可靠的基准),并且它们都是可并行化的。我找不到的是差异。 那么,那里的不同的稀疏线性系统求解器之间有什么区别呢?

3
预计算后能否在二次时间内求解对角线加固定对称线性系统?
是否存在方法来求解形式为线性系统,其中A为固定SPD矩阵,D_i为正对角矩阵?O(n3+n2k)O(n3+n2k)O(n^3+n^2 k)kkk(Di+A)xi=bi(Di+A)xi=bi(D_i + A) x_i = b_iAAADiDiD_i 例如,如果每个DiDiD_i是标量,则足以计算A的SVD AAA。但是,由于缺乏可交换性,因此对于一般D而言,这种情况会DDD恶化。 更新:到目前为止,答案为“否”。有谁对为什么有任何有趣的直觉?没有答案意味着没有非平凡的方法来压缩两个非交换运算符之间的信息。这并不出乎意料,但是更好地理解它会很棒。

1
对称正定矩阵的对角线更新
AAA是一个 ×对称正定(SPD)稀疏矩阵。是一个稀疏对角矩阵。大( > 10000),并且的非零数通常为100〜1000 。G n nn×nn×nn \times nGGGnnnnnnGGG AAA已因式分解在乔列斯基形式。LDLTLDLTLDL^T 当变为时,如何有效地更新和?D A A + GLLLDDDAAAA+GA+GA+G

3
在寻找针对特定问题的良好预处理方法时,应使用哪些准则?
对于使用迭代方法求解大型线性系统,通常需要引入预处理,例如,求解,其中用于系统的左预处理。通常,与原始系统的解决方案相比,我们应该使并提供(更多)有效解决方案或减少计算资源(例如内存存储)的基础(即当。但是,我们应该使用什么准则来选择预处理器?从业者如何针对他们的特定问题呢?中号- 1(甲X = b )中号中号- 1 ≈ 甲- 1中号= 甲甲X = bAx=bAx=b中号− 1(A x = b )M−1(Ax=b)M^{-1}(Ax=b)中号MM中号− 1≈ 一− 1M−1≈A−1M^{-1}\approx A^{-1}中号= AM=AM=A

5
出色的软件设计会降低20%的性能
我正在编写一个用于稀疏矩阵计算的小型库,以此来教自己充分利用面向对象的编程。我一直在努力建立一个不错的对象模型,其中各部分(稀疏矩阵和描述其连接结构的图形)之间的耦合非常松散。我个人认为,该代码具有更大的可扩展性和可维护性。 但是,它也比我使用钝器要慢一些。为了测试具有此对象模型的权衡,我编写了一个新的稀疏矩阵类型,该类型打破了基础图的封装,以查看运行的速度有多快。 起初,它看起来很暗淡。我曾经为之骄傲的代码比没有任何精美软件设计的版本慢60%。但是,我能够进行一些低级的优化-内联一个函数并稍微改变一个循环-完全不需要更改API。有了这些更改,现在它仅比竞争对手慢20%。 这使我想到一个问题:如果这意味着我有一个不错的对象模型,我应该接受多少性能损失?

2
矩形稠密矩阵的零空间
给定的致密基质A∈Rm×n,m>>n;max(m)≈100000A∈Rm×n,m>>n;max(m)≈100000A \in R^{m \times n}, m >> n; max(m) \approx 100000 什么是找到一定误差内的零空间基础的最佳方式ϵϵ\epsilon? 基于这个基础上我可以说以一定的cols是线性相关的内ϵϵ\epsilon?换句话说,以零空间为基础计算,为了获得非奇异矩阵,必须删除哪些列AAA? 参考被赞赏。

4
为什么Householder反射不能对角化矩阵?
在实践中计算QR因式分解时,人们使用Householder反射将矩阵的下部归零。我知道,要计算对称矩阵的特征值,您对Householder反射所做的最大努力就是将其变为三对角形式。有什么明显的方法可以看出为什么不能以这种方式完全对角线化吗?我只想简单地解释一下,但无法给出清晰的介绍。

2
应用于近似奇异系统的迭代线性求解器的停止准则
考虑与甲几乎奇异这意味着有一个本征值λ 0的一个,这是非常小的。迭代方法的通常停止准则基于残差r n:= b − A x n,并认为当“ r n ” / “ r 0 ” <t o l且迭代次数为n时,迭代可以停止。但是在我们正在考虑的情况下,可能会有较大的误差vAx=bAx=bAx=bAAAλ0λ0\lambda_0AAArn:=b−Axnrn:=b−Axnr_n:=b-Ax_n∥rn∥/∥r0∥&lt;tol‖rn‖/‖r0‖&lt;tol\|r_n\|/\|r_0\|<tolnnnvvv住在与该小特征值有关的本征空间赋予小的残余阿v = λ 0 v。假设初始残差r 0大,则可能发生在“ r n ” / “ r 0 ” <t o l处,但误差x n − x仍然很大。在这种情况下,更好的错误指示符是什么?是`` x n − x n − 1 ''λ0λ0\lambda_0Av=λ0vAv=λ0vAv=\lambda_0vr0r0r_0∥rn∥/∥r0∥&lt;tol‖rn‖/‖r0‖&lt;tol\|r_n\|/\|r_0\|<tolxn−xxn−xx_n-x∥xn−xn−1∥‖xn−xn−1‖\|x_{n}-x_{n-1}\| 好候选人?

2
有什么办法可以做“双重预处理”
题: 假设您对对称正定矩阵有两个不同的(分解的)前置条件: 和 其中的逆是容易申请。一种一种A一≈ 乙Ť乙一种≈乙Ť乙A \approx B^TB一≈ ÇŤC,一种≈CŤC,A \approx C^TC,乙,乙Ť,C,CŤ乙,乙Ť,C,CŤB, B^T, C, C^T 什么时候可以使用的信息来自两个 和建设比任何一个更好的预处理器或一个人吗?乙乙BCCC乙乙BCCC

3
矩阵平方根逆的高效计算
统计中的一个常见问题是计算对称正定矩阵的平方根逆。什么是最有效的计算方式? 我碰上了一些文献(我还没有读),以及一些附带的R代码里面在这里,我将在这里重现为了方便 # function to compute the inverse square root of a matrix fnMatSqrtInverse = function(mA) { ei = eigen(mA) d = ei$values d = (d+abs(d))/2 d2 = 1/sqrt(d) d2[d == 0] = 0 return(ei$vectors %*% diag(d2) %*% t(ei$vectors)) } 我不能完全确定我了解这条线d = (d+abs(d))/2。有没有更有效的方法来计算矩阵平方根逆?R eigen函数调用LAPACK。

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


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

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.