本文主要是介绍Matlab --- 用Matlab求解线性方程组Ax=b的计算流程(叹为观止),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
众所周知,在求解矩阵的线性方程Ax=b时。我们往往会先求出矩阵A的逆,然后再根据公式Ax = b ~~~> 求出x。(这是求解线性方程组的方法之一)
但是,如果你要是在matlab中,用这种方法计算x(即,调用matlab自带函数inv(A)),matlab就会提醒你,建议你用x=A\b来计算x,而不是先求逆,因为如果先求逆再求解线性方程组的话,会极大的增加计算误差。那么Matlab中的A\b究竟是什么呢?
Matlab的做法
首先,Matlab会优先判断矩阵A是稠密矩阵也叫满矩阵(dense matrix),还是稀疏矩阵(sparse matrix)?然后,matlab会基于这一判断的结果分出两条主线。
A:求解稠密矩阵线性方程组的计算流程
B:求解稀疏矩阵线性方程组的计算流程
补充知识点:
1,稀疏矩阵和稠密矩阵
2,三角矩阵
注:点击图片看大图
三角矩阵的性质
注:点击图片看大图
3,伴随矩阵
注:点击图片可放大
4,置换矩阵(permutation matrix)
5,埃尔米特矩阵(Hermitian)
6,黑森贝格矩阵(Hessenberg matrix)
注:点击图片可放大
最后:
首先,要设计不同矩阵类型的线性方程组的解法,本身就不是一件容易的事情。更加难得的是,matlab还设计了一系列的自动判断矩阵类型的算法,我觉得这又是一件难事。
(全文完)
作者 --- 松下J27
2021年9月22日
格言摘抄:
心怀二意的人哪,要清洁你们的心。--- 《圣经》雅各书4章8节
Cleanse your hands, ye sinners; and purify your hearts, ye double minded.(KJV)
参考文献:
1,求解关于 x 的线性方程组 Ax = B - MATLAB mldivide \- MathWorks 中国此 MATLAB 函数 对线性方程组 A*x = B 求解。矩阵 A 和 B 必须具有相同的行数。如果 A 未正确缩放或接近奇异值,MATLAB 将会显示警告信息,但还是会执行计算。https://ww2.mathworks.cn/help/matlab/ref/mldivide.html
2,维基百科
(配图与本文无关)
版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27
这篇关于Matlab --- 用Matlab求解线性方程组Ax=b的计算流程(叹为观止)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!