![](https://csdnimg.cn/release/download_crawler_static/85566186/bg4.jpg)
如果矩阵 A 不是方阵,其维数是 m×n,则有:
m=n 恰定方程,求解精确解;
m>n 超定方程,寻求最小二乘解;
m<n 不定方程,寻求基本解,其中至多有 m 个非零元素。
针对不同的情况,MATLAB 将采用不同的算法来求解。
一.恰定方程组
恰定方程组由 n 个未知数的 n 个方程构成,方程有唯一的一组解,其一般形式
可用矩阵,向量写成如下形式:
Ax=b 其中 A 是方阵,b 是一个列向量;
在线性代数教科书中,最常用的方程组解法有:
(1)利用 cramer 公式来求解法;
(2)利用矩阵求逆解法,即 x=A-1b;
(3)利用 gaussian 消去法;
(4)利用 lu 法求解。
一般来说,对维数不高,条件数不大的矩阵,上面四种解法所得的结果差别不
大。前三种解法的真正意义是在其理论上,而不是实际的数值计算。 MATLAB
中,出于对算法稳定性的考虑,行列式及逆的计算大都在 lu 分解的基础上进行。
在 MATLAB 中,求解这类方程组的命令十分简单,直接采用表达式: x=A\b。
在 MATLAB 的指令解释器在确认变量 A 非奇异后,就对它进行 lu 分解,并最
终给出解 x;若矩阵 A 的条件数很大,MATLAB 会提醒用户注意所得解的可靠
性。
如果矩阵 A 是奇异的,则 Ax=b 的解不存在,或者存在但不唯一;如果矩阵 A
接近奇异时,MATLAB 将给出警告信息;如果发现 A 是奇异的,则计算结果为
inf,并且给出警告信息;如果矩阵 A 是病态矩阵,也会给出警告信息。
注意:在求解方程时,尽量不要用 inv(A)*b 命令,而应采用 A\b 的解法。因为
后者的计算速度比前者快、精度高,尤其当矩阵 A 的维数比较大时。另外,除
法命令的适用行较强,对于非方阵 A,也能给出最小二乘解。
评论16
最新资源