MATLAB 线性方程与函数 M 文件的深入探究
1. 线性方程相关内容
1.1 病态条件
在处理方程组时,有时方程的系数是实验结果,可能存在误差。我们需要了解解对这些实验误差的敏感程度。例如,对于方程组:
[
\begin{cases}
10x + 7y + 8z + 7w = 32 \
7x + 5y + 6z + 5w = 23 \
8x + 6y + 10z + 9w = 33 \
7x + 5y + 9z + 10w = 31
\end{cases}
]
使用矩阵左除运算可以得出解为 (x = y = z = w = 1),并且残差恰好为零。然而,若将右侧常数改为 32.1、22.9、32.9 和 31.1,新的“解”变为 (x = 6),(y = -7.2),(z = 2.9),(w = -0.1),残差仍然很小。
像这样的系统被称为病态系统,即系数的微小变化会导致解的巨大变化。MATLAB 中的 rcond 函数可返回条件估计值,用于检测病态条件。若系数矩阵为 (A),当 (A) 病态时, rcond(A) 接近零;当 (A) 良态时, rcond(A) 接近 1。在此例中,条件估计值约为 (2\times10^{-4}),非常接近零。
部分作者提出一个经验法则:若矩阵的行列式相较于矩阵元素的值较小,则该矩阵为病态矩阵。在此例中,矩阵 (A) 的行列式为 1(可使用 det 函数验证),比矩阵的大多数元素小一个数量级。
超级会员免费看
订阅专栏 解锁全文
1491

被折叠的 条评论
为什么被折叠?



