贡献者: addis
这里给出一个简单的程序演示高斯消元法的基本步骤。注意在实际应用中,我们解线性方程组一般使用 Matlab 的反斜杠算符:x=A \ y
,其中
与 “高斯消元法” 中的步骤略有不同的是,该程序在处理每一行 A(ii,:)
时都会试图做一个行交换使系数 A(ii,q(ii))
的绝对值尽可能大。这是为了减小数值误差:试想如果 A(ii,q(ii))
的解析值为 0,但由于数值误差,计算出来是一个很小的数(例如 1e-15
),那么用其消元时就可能需要将第 ii
行乘以一个很大的系数(例如 1e15
)再加到另一行上,导致程序不稳定。
用例 2 中的增广矩阵测试程序如下:
友情链接: 超理论坛 | ©小时科技 保留一切权利