j********3 发帖数: 560 | 1 【 以下文字转载自 Computation 讨论区 】
发信人: johnlee123 (no), 信区: Computation
标 题: 请教一个大规模且系数矩阵病态的方程组的求解
发信站: BBS 未名空间站 (Tue Jun 12 21:37:17 2007)
一个线性方程组,系数矩阵很病态,条件数大于10^18,规模也很大,至少是50,000×
50,000。 系数矩阵倒是稀疏的,只不过除了五对角外,其它地方也有不少非零元素。
现在的问题是,如果系数矩阵是良态的但是大规模稀疏,用LU分解可以解决问题;如果
系数矩阵是病态的但是规模不大,那么用SVD也可以解决问题。但是两个问题合在一起
,我就不知道该怎么处理了。如果用SVD的话,存在计算时间和存储空间的问题,计算
时间不好估计,但是肯定很长,存储问题可以至少估计一个下限。即使系数矩阵本身能
够用sparse方式存储,经过SVD分解之后生成的矩阵U和V通常都不是稀疏的,采用双精
度浮点的话,其中任何一个都至少需要50,000×50,000×8(大约2G)的存储空间,更
不用说计算过程中的存储了。我也尝试过用截断奇异值的方法,但 | c******s 发帖数: 20 | 2 没有完全理解你的问题。
但是建议对于这样的大型稀疏矩阵是否应该采用Krylov子空间的方法。
不知道你的系数矩阵是否对称或者接近对称,这样不同对应着特征值问题的Lanczos 算
法和块Lanczos算法。
另外Krylov子空间迭代算法的收敛的优点避免了你上面担心的问题。 | j********3 发帖数: 560 | 3 谢谢。我的系数矩阵是不对称的,也不是接近对称。我的方程组来源于一个非线性偏微
分方程(扩散-复合方程)组的有限差分近似,但是因为边界条件比较复杂,所以最后
得到的系数矩阵不对称。
【在 c******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 没有完全理解你的问题。 : 但是建议对于这样的大型稀疏矩阵是否应该采用Krylov子空间的方法。 : 不知道你的系数矩阵是否对称或者接近对称,这样不同对应着特征值问题的Lanczos 算 : 法和块Lanczos算法。 : 另外Krylov子空间迭代算法的收敛的优点避免了你上面担心的问题。
|
|