24小时热门版块排行榜    

查看: 3252  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

mathstudy

金虫 (正式写手)


[交流] matlab 求解线性方程组Ax=b

x=inv(A)*b;和x=A\b;和迭代法  有什么区别? 前面两个求 A逆 的是基于什么?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tiancanrong

金虫 (小有名气)



小木虫: 金币+0.5, 给个红包,谢谢回帖
我大致看了一下matlab help,A\b 根据A的情况用到几种不同的算法,如果A是一个方阵,b是一个列向量,此时Ax=b就是你说的线性方程组,\用的算法就是Gauss消去法;如果A不是方阵,那么Ax=b就是一个矩阵方程,其实这时候精确解不一定存在,matlab中的\就用了最小二乘法的思想求了一个近似的x(也可称为广义解),算法是QR分解。

可以这个简单理解,inv(A)*b是A\b的一种特殊情况(线性方程组时),但是A\b更强大,可以求出广义解。
在计算线性方程组Ax=b时,inv(A)*b和A\b用的数值算法都是Gauss消去法。至于你说的效率,A\b由于考虑的情况比较庞大,调用的时候稍微会慢一点,我不认为有质的区别。
7楼2014-02-09 12:15:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

小木虫: 金币+0.5, 给个红包,谢谢回帖
A=[……],  b=[……],  s=rref([A,b])为佳,如果非满秩,也可知道。
2楼2014-02-07 13:28:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)



小木虫: 金币+0.5, 给个红包,谢谢回帖
如果A不是方阵,它的逆是不存在的。这时inv(A)无法用,但可以用广义逆pinv(A)。而A\b何时都可用。

[ 发自手机版 http://muchong.com/3g ]
3楼2014-02-07 17:09:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mathstudy

金虫 (正式写手)


A是可逆方阵, 我想请教的的是  A\b 和 inv(A)*b 中 他们求A逆的 原理 有什么区别, 为什么  A\b比 inv(A)*b 的效率高? 另外  如果是 Gauss 消元法呢?
4楼2014-02-07 19:11:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见