线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积。常见的有如下分解:

LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵

QR分解:

秩分解:A=CD  ,  A是m×n矩阵,C是m×4矩阵,D是4×n矩阵。

奇异值分解:A=UDVT

谱分解:

在求解线性方程组中,一个核心的问题就是矩阵的LU分解,我们将一个矩阵A分解为两个更加简单的矩阵的复合LU,其中L是下三角矩阵,U是阶梯形矩阵。下三角矩阵和上三角矩阵具有非常良好的性质:Lx=y 或者Ux=y 很容易求解。

问题1.对于任意的矩阵A,是否存在LU分解?

定理:如果A行等价于阶梯形矩阵U,那么(EnEn-1......E1)A=U,其中的Ei,i=1,2,.....,n是高斯消去矩阵,他们都是下三角矩阵,并且都可逆。

这个定理告诉我们三件事:

1.并不是所有的矩阵都有LU分解的。

2.A=LU=(EnEn-1......E1)-1U=(E1-1E2-1.....En-1)U。

3.这个定理还给出了求解矩阵A-1的一种方法。

数值算法1.Gauss消去

用Gauss消去法将矩阵A行变换为U:

用Gauss消去矩阵将A行变换为U:

数值算法2.Gauss-jardon

过程和Gauss-jardon基本一致,之不多在选择完最大元之后,将其化为1,这样就可以通过乘以一个倍数来消去其他行了。

选择主元

当对某一列进行Gauss消去时,一般都是选择这一列中绝对值最大的一个元素作为主元,当然这会进行行交换。其好处有一下几点:

1.在Gauss会代的过程中,不会出现除数为0的情况。

2.减少误差传播,这主要是因为乘数小于等于1.

(为何乘数小于等于1,如果选择这一列中绝对值最大的一个元素作为主元,我们假设这个元素是a,那么乘数等于-b/a,此时|b/a|<=1)。

为什么不用绝对值最小的元素做主元?易知此时乘数的绝对值大于等于1,会增加误差的传播累计。

为什么应该避免用接近于0的数做主元?此时乘数可能非常大,参加如下例子:

转载于:https://www.cnblogs.com/francisYoung/p/5367600.html

matlab 求解线性方程组之LU分解相关推荐

  1. 怎样用matlab做矩阵的LU分解,矩阵LU分解程序实现(Matlab)

    n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...

  2. matlab高斯消去法,matlab实现高斯消去法、LU分解

    朴素高斯消去法: function x = GauElim(n, A, b) if nargin < 2 for i = 1 : 1 : n for j = 1 : 1 : n A(i, j) ...

  3. MATLAB求解线性方程组的八种方法

    MATLAB求解线性方程组的八种方法 求解线性方程分为两种方法–直接法和迭代法 常见的方法一共有8种 直接法 Gauss消去法 Cholesky分解法 迭代法 Jacobi迭代法 Gauss-Seid ...

  4. [Matlab]求解线性方程组

    转自:http://silencethinking.blog.163.com/blog/static/911490562008928105813169/ AX=B或XA=B 在MATLAB中,求解线性 ...

  5. Matlab求解线性方程组(一)共轭梯度法

    一,算法原理  共轭梯度法可以看作是特殊的迭代法,有迭代法的格式,即首先给出x(0),再由迭代格式 x(k+1)=x(k)+αkd(k){{x}^{(k+1)}}={{x}^{(k)}}+{{\alp ...

  6. MATLAB基础教程(6)——使用matlab求解线性方程组

    目录 今日任务: 一般方程: 方程组(目前仅讨论方程个数和未知数个数一样的情况): 额外知识 咦,咋跑题了 左除和右除 今日总结: 今日任务: 在数学中经常遇见的一个问题就是方程求解,特别是线性代数中 ...

  7. matlab求解线性方程组

    模电题现在看来是不用matlab解方程不可做了orz 绝望,各种绝望,平时不努力到了期末季就焦虑得不行. 左除法就好 x=A/b; 如果有符号变量,用syms声明一下就好. 越来越懒了orz好吧,解线 ...

  8. 用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;- ...

  9. Matlab求解线性方程组的三种方法(wzl)

    A=[3 12 1;12 0 2;0 2 3]; b=[2.36;5.26;2.77]; %第一种方法 A\b %当无穷多解时,会使得解中尽量多0 %可算无解方程组%第二种方法 pinv(A)*b % ...

最新文章

  1. 安装Windows Storage Server 2008 R2
  2. 2018-2019-1 20165212 实验五 通讯协议设计
  3. 怎么添加项目到SVN上面
  4. 设计模式——开发常用的设计模式梳理
  5. Linux文件夹含义
  6. HttpClient-01基本概念
  7. 【数据结构与算法】之柱状图中最大矩形的求解思路和算法示例
  8. Googletest 实现简要分析
  9. l和l_L&T的完整形式是什么?
  10. 求0到数字n中的所有数字中某一个数字k出现的总次数
  11. centos上自动执行脚本执行php文件
  12. nyoj349 poj1094 Sorting It All Out(拓扑排序)
  13. python第三方模块
  14. 【优化算法】蛙跳算法 (SFLA)【含Matlab源码 1839期】
  15. Deeping Learning学习与感悟——《深度学习工程师》_5
  16. 中景园0.96寸 OLED 显示屏 学习笔记
  17. python3正则re的使用
  18. PotPlayer + VSFilter 加载双字幕视频教程
  19. NAS和AutoML
  20. 如何在PPT文件中插入文件, 并且发给其他人文件不失效

热门文章

  1. 获得用户输入的一个字符串,将字符串按照空格分割,然后逐行打印出来
  2. 【036】Etymonline–英文词源学专业网站
  3. window下使用vnc远程登录linux图形界面和运行应用程序 和odroid Xu4开发板的使用和视频接口VGA、DVI、HDMI的联系
  4. android后台通知,Android后台定时提醒功能实现
  5. 12c 2cpu oracle se_Linux 平台安装Oracle Database 12c
  6. 【论文翻译】ORB-SLAM: A Versatile and Accurate Monocular SLAM System
  7. Outlook.com 系列邮箱 POP3 及 IMAP 设置方法
  8. H264学习(三)网络编解码器下载和NAL
  9. vega8显卡和mx250哪个好_Ryzen 7 4800U 现身 3DMark 11 数据库,Vega 8 核显也能超越 MX 250...
  10. 如果你已经过了20岁但还不到25岁