这听起来像是一个简单的问题,但我想知道为什么有这么多内置的Matlab方法来求解线性方程组。我已经遍历了所有的定义: Bicg,Bicgstab,Bicgstabl,Cgs,Gmres,Lsqr,Minres,Pcg,Qmr,Symmlq,Tfqmr, 虽然有些差异,但似乎所有人都做的完全一样?
这是否有特定目的?对于特定的方程组,是否更准确/更快?
谢谢
答案 0 :(得分:1)
线性方程组由各种各样的实际文件问题引起,例如,物理现象的数学模型,例如可变形固体的机械行为,电路中电压和电流的分析等。问题是每种问题类别都会导致具有特定属性的矩阵。有些条件不佳,有些非常大(数以百万计的行/列),有些是正定的,有些则不是。有些矩阵是对称的,有些不是。有些矩阵是正方形的,有些矩阵可以是矩形的(例如,对于超定系统),等等。通常情况下,某些求解器(例如,在MATLAB中实现)对于某些类型的问题是有好处的,但是“不好”对于其他用户,例如:收敛速度可能很差,或者矩阵太大,因此无法完全存储在随机存取存储器中,依此类推。因此,要求用户进行一系列数值实验,针对他/她的问题类别尝试不同的方法,以便找到最适合他/她的情况的方法。最快,最精确,最可靠等等。这就是为什么他/她可以选择多种解决方法进行试验的原因。