矩阵分解法求解线性方程组

1、LU分解求解线性方程组

把一个矩阵分解为一个上三角阵和一个下三角阵的乘积的形式称为矩阵的因式分解。若所分解的下三角阵还是单位下三角阵,则称这种分解为LU分解。
设n阶矩阵A的各阶顺序主子式都不为0,则A存在唯一的三角分解 A=LU,且满足L为单位下三角阵,U为单位上三角阵。

Ax = b -> LUx = b -> (令Y = Ux) LY = b

由于L的对角线元素皆为1且是下三角矩阵,则可以求出Y各个元素的值;再将求得的Y代入Y = Ux可求得方程组的解x
matlab代码:

A = [1 3 5 7;2 -1 3 5;0 0 2 5;-2 -6 -3 1];
b = [1 2 3 4]';
[L, U] = lu(A);
x = inv(U) * inv(L) * b

% 结果:

x =

    1.3429
    0.6857
   -3.0000
    1.8000

2、QR分解求解线性方程组

QR分解是将系数矩阵A分解成正交矩阵Q和上三角矩阵R。
和上述的LU分解一样,令 Y = Rx 则 Ax = b 变为 QY = b
matlab代码:

A = [6 3 -2;3 5 1;-2 1 7];   b = [1; 2; 3];
[Q, R] = qr(A);
x = inv(R)* inv(Q)*b 

% 结果:

x =

    0.2477
    0.1560
    0.4771

3、Cholesky分解求解线性方程组

如果A是对称正定矩阵,则必定存在一个非奇异的下三角矩阵L,使得A = L L*, L*是L的转置。
matlab代码:

A = [4 -1 1;-1 4.25 2.75;1 2.75 3.5];  b = [6;-0.5;1.25];
L = chol(A);
x = inv(L') * inv(L) * b

% 结果:

x =

    1.1953
   -0.2949
    1.0947

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值