matlab——线性方程求解

本文介绍了线性方程组的多种求解方法,包括利用MATLAB的左除运算符直接求解,以及LU、QR和Cholesky等矩阵分解方法。还探讨了迭代法如雅可比迭代法和高斯-赛德尔迭代法的应用。

(1)利用左除运算符的直接解法


Ax=b x=A\b
注意,如果矩阵A是奇异的或接近奇异的,则MATLAB会给出警告信息。 
MATLAB提供了一个左除运算符“\”用于求解线性方程组,它使用列主元消去法,
使用起来十分方便。对于线性方程组Ax=b,可以利用左除运算符反斜杠求解,b左
除以A可获得线性方程组的数值解x。
>> A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; 
>> b=[13,-9,6,0]'; 
>> x=A\b 
x = 
  -66.5556 
  25.6667 
  -18.7778 
  26.5556

(2)利用矩阵分解求解线性方程组

LU分解 
 QR分解 
 Cholesky分解 
 [L,U]=lu(A):产生一个上三角阵U和一个变换形式的下三角阵L,使之满足
A=LU。注意,这里的矩阵A必须是方阵。 
 [L,U,P]=lu(A):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,
使之满足PA=LU。同样,矩阵A必须是方阵。 
②MATLABLU分解函数 
当使用第一种格式时,矩阵L往往不是一个下三角阵,但可以通过行交换成为一
个下三角阵。 
LU分解函数是根据列主元LU分解算法定义的,具有较好的数据稳定性。lu
函数有两种调用格式:

(2)利用矩阵分解求解线性方程组 
矩阵分解是设计算法的重要技巧,是指将一个给定的矩阵分解成若干个特
殊类型矩阵的乘积,从而将一个一般的矩阵计算问题转化为几个易求的特
殊矩阵的计算问题。通过矩阵分解方法求解线性方程组的优点是运算速度
快,可以节省存储空间。
③用LU分解求解线性方程组 
通过LU分解后可以大大提高运算速度。 
Ax=b→LUx=b→x=U\(L\b)Ax=b→ PAx=PbLUx=Pb → x=U\(L\P*b)

A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]’;
[L,U]=lu(A);
x=U(L\b)
x =
-66.5556
25.6667
-18.7778
26.5556

[L,U,P]=lu(A);
x=U(L\P*b)

迭代法

>> A=[4,-2,-1;-2,4,3;-1,-3,3]; 
>> b=[1,5,0]'; 
>> [x,n]=jacobi(A,b,[0,0,0]',1.0e-6) 
x = 
 0.9706 
 0.8529 
 1.1765 
n = 
 35 
>> [x,n]=gauseidel(A,b,[0,0,0]',1.0e-6) 
x = 
 0.9706 
 0.8529 
 1.1765 
n = 
 16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值