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

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的数做主元?此时乘数可能非常大,参加如下例子:

最新文章

  1. 3.Java基础之Date对象
  2. linux-15基础命令之-用户与用户组(useradd,userdel,usermod,passwd,groupadd)
  3. 读&lt;jquery 权威指南&gt;[1]-选择器及DOM操作
  4. hdu-5690 All X(快速幂+乘法逆元)
  5. 指向const的指针和const指针
  6. TRANSLATE
  7. mysql 安装-编码
  8. OpenGL红宝书学习笔记(1)
  9. 14.3.2.4 Locking Reads 锁定读
  10. SE 2014年5月5日
  11. spring注解一次 清除多个缓存
  12. (转)每天一个linux命令(8):cp 命令,复制文件和文件夹
  13. Jmeter 前置处理器 BeanShell_PreProcessor 适用思考
  14. WebSocket异步通讯,实时返回数据
  15. selenium设置chrome和phantomjs的请求头信息
  16. Codechef MGCHGYM Misha and Gym 容斥、背包、Splay
  17. for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本
  18. linux 如何开通新的端口
  19. 开发认为不是bug,你该如何处理?
  20. AngularJS使用OData请求ASP.NET Web API资源的思路

热门文章

  1. 测试基础:Bug管理那些事_20160910
  2. springmvc拦截器验证登录时间
  3. word20161223
  4. linux查看安装文件
  5. Solr4.0 如何配置使用UUID自动生成id值
  6. Home 安转beta版软件
  7. 使用httpclient 调用selenium webdriver
  8. apk反编译工具
  9. xcode添加快捷代码块
  10. wpf——三维学习1