用matlab求解线性方程组

对方程组Ax=b
在这里插入图片描述
1 rank(A)=rank(A,b)=n时,无论m=n还是m>n 有唯一解
m=n时,即方程个数等于未知数个数
在这里插入图片描述

A=[1 -1 1 -2;2 0 -1 4;3 2 1 0;-1 2 -1 2];
b=[2 4 -1 -4]’;
B=[A,b];
RA=rank(A)
RB=rank(B)
此时RA=RB=4
则X=A\b或X=inv(A)*b(对于本题计算结果是一样的,不过inv要求矩阵为方阵,此外左除的计算速度会快一点)

m>n时,即方程个数大于未知数个数
在这里插入图片描述
A=[6 2 3 4 5;2 -3 7 10 13;3 5 11 -16 21;2 -7 7 7 2;7 3 -5 3 10;13 5 -2 7 15];
b=[80 59 90 22 85 165]’;
r=rank(A);r1=rank([A,b])
此时r=r1 则X=A\b(此时不可以再用X=inv(A)*b,若用,matlab会提示错误:A不为方阵)

2 rank(A)=rank(A,B)<n时 有无穷多解

方法一

(1)、先求通解,null(A)可以解的AX=0的X的值,即X=null(A).
(2)、求解特解,pinv(A)*B=特解。
方法二:
令C=[A,B],则利用函数rref©,可以求得C的行阶梯形矩阵。
注意:仅用rref的话,方程有非零解,求得C的行阶梯形矩阵。需要自己再去做,因此不必用rref,MATLAB提供了一个求矩阵令空间的函数null来方便求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

A=[1 -1 -1 2;2 -2 1 -5;1 -1 2 -7];
b=[2 1 -1]’;
r=rank(A);r1=rank([A,b])
2<n=3
X0=A\b %特解
B=null(A,‘r’) %齐次通解

B中的第一列b1,是第二列是b2,通解为X=X0+c1b1+c2b2,其中c1,c2是任意常数

3 rank(A)不等于rank(A,B)时 无解

此时,x=pinv(A)*B为其最小二乘解

个人理解,如有不对请指正
参考:
https://blog.csdn.net/u014147522/article/details/79109984
https://jingyan.baidu.com/article/ce09321b96d2212bff858fad.html
https://www.cnblogs.com/fangxiaoqi/p/10739714.html

  • 25
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值