转自:http://blog.csdn.net/dsbatigol/article/details/9625211

AX=0
这是一个齐次线性方程组(一般的非齐次线性方程组AX=b其实也都可以化为齐次方程组的形式,所以比较普遍)

先要说明在非齐次方程组中,A到底有没有解析解,可以由增广矩阵来判断:

  • r(A)<r(A | b) 方程组无解;
  • r(A)=r(A | b) =n,方程组有唯一解;
  • r(A)=r(A | b) <n,方程组无穷解;
  • r(A)>r(A | b) 不可能,因为增广矩阵的秩大于等于系数矩阵的秩(在矩阵中加入一列,其秩只可能增大,不可能变小)。
而在齐次方程中(r(A | b) =r(A | 0)=r(A) ),根据A来分,只剩下了两种情况:

1.r(A)=未知数个数n(约束较强)
   1.1.
A是方阵
         由克莱姆法则可知:
         如果A是n*n的方阵而且r(A)=n,那么该方程组有唯一的零解。
   1.2.A不是方阵,A是m×n的(m>n)
         由另一个定理:齐次线性方程解空间维数 = n - r(A) 可知,该解空间维数为0, 也就是说该解空间只含有零向量。

2.r(A)<未知数个数n(约束不够)
这里A是不是方阵已经无所谓了,也没有什么法则可以用,就只分成一种情况。
由齐次线性方程组解空间维数 = n - r(A) >0,所以该齐次线性方程组有非零解,而且不唯一(自由度为 n - r(A))。

(多谢wereineky指出错误)
在我们做一些实际问题的时候,经常在 1.2(当然严格来说1.1也有可能啦)会卡住,这时实际上是没有真正的非零解析解的,因为约束太多了,没法都满足(零向量除外)。但是可以折中一下,每一个方程都满足个大概,这就要求最小二乘解。求取最小二乘解的方法一般使用SVD,即奇异值分解。

解空间维数与r(A)的关系的感性认识:
r(A)可以理解为一种约束条件的强弱的表现(约束的强弱不只是表面上的方程个数)。比如有一个方程组,每个方程都是一样的,那么其秩为1,方程的个数对约束毫无贡献。
继续看A的秩,也就是约束的个数是怎么影响解空间的维数的。
比如
x1 +   x2 +  x3 = 0
x1 + 2x2 + 3x3 = 0
r(A)=2,消去x1之后得到:
 x2 + 2x3 = 0
x2或者x3一旦确定,其余的未知量就都随之确定了,所以自由度为1,所以解空间维数为1。
即:
如果 r(A)=c,那么c个方程一共最多可以消去c-1个未知数(比如满秩方阵,最后只留一个未知数,得到唯一解),于是得到的方程由n-(c-1)个未知数组成,该方程有 n-c个自由度,也就是说解空间的维数为 n-c。
上述过程在高斯消去法中表现:
假设消去过后的A如下:
x     x      x      x      x
0     x      x      x      x
0     0      x      x      x
0     0      0      x      x
0     0      0      0      0
那么最后一个非全0行的x个数为 num = n-r(A)+1,则可以看到,该行的自由度,决定了所有解的自由度(因为一旦改行确定,其他都确定了,自由区其实可以理解为用将多少变量固定,就能够确定整个矩阵),而该行的自由度=num-1=n-r(A)=齐次线性方程组解空间的维数,Bingo!

SVD与最小二乘解:
SVD:奇异值分解,是在A不为方阵时的对特征值分解的一种拓展。奇异值和特征值的重要意义相似,都是为了提取出矩阵的主要特征。
对于齐次线性方程 A*X =0;当A的秩大于列数时,就需要求解最小二乘解,在||X||=1的约束下,其最小二乘解为矩阵A'A最小特征值所对应的特征向量。

假设x为A'A的特征向量的情况下,为什么是最小的特征值对应的x能够是目标函数最小证明(多谢hukexin0000指出错误,这个约束太强,只能提供一点点感性认识,具体的证明请查阅相关教科书):
齐次线性方程组的最小二乘问题可以写成如下:
min ||Ax|| 
s.t    ||x||=1
目标函数:||Ax|| = x'A'Ax = x'lamda x=lamda||x||=lamda,其中lamda是A'A的特征值。
于是可知,得到了A'A的最小特征值,就得到了最优值,而其最小特征值对应的特征向量就是最优解.
而对M进行SVD分解(*表示共轭转置):

可见M*M的特征向量就是V的列向量。

求解:
求解方法有两种(matlab):
1.

[V D] =eig(A'*A);D为A'*A的特征值对角矩阵,V为对应的特征向量。找到最小特征值对应的V中的特征向量即为最小二乘解。
2.
 使用SVD分解矩阵A,[U S V] = svd(A); U 由 A*A'的特征向量组成,V 由 A'*A的特征向量组成,因此,奇异值矩阵S中最小的奇异值对应的V中的奇异向量即为最小二乘解。
对于超定方程(非齐次线性方程的一种)的最小二乘解的情况。A*X =b ; 当A的行数大于列数时,方程组无解,就需要求解最小二乘解。在matlab中使用一个左除命令就可以得到最小二乘意义下的解。这个解没有模制的限制,就是实际的解。matlab:A\b

两种方法其实是一个意思。

推荐资料:
这篇资料还是很不错的,讲述了SVD与PCA的关系,其中的推荐资料也很不错。

机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

理解矩阵系列!强烈推荐
相关资源:
http://blog.csdn.net/acdreamers/article/details/44657089  SVD分解的并行实现
http://blog.csdn.net/zhangchaoyangsun/article/details/8470267  并行计算奇异值分解--Jacobi旋转

齐次线性方程组的解、SVD、最小二乘法相关推荐

  1. 线性代数拾遗(3)—— “系数矩阵的秩” 和 “齐次线性方程组基础解系向量个数” 的关系

    本文说明以下重要结论 nnn 元齐次线性方程组的解空间的维数(基础解系中向量个数),加上此方程组系数矩阵的秩 rrr,等于未知量个数 nnn 考虑一个 nnn 元齐次线性方程组如下,它总共有 nnn ...

  2. 对齐次线性方程组同解充要条件的新理解

    目录 一.问题提出 二.定理证明 三.深入思考 四.额外补充 一.问题提出 考虑两个齐次线性方程组 Ax=0,Bx=0Ax=0,Bx=0Ax=0,Bx=0,其中 A∈Rm×n,B∈Rs×nA\in \ ...

  3. c++中求解非线性方程组_齐次线性方程组的基础解系的简便算法

    线性方程组的求解是线性代数中的基本技能,而齐次线性方程组的基础解系的求法又是基础.本文给出一个计算齐次线性方程组的基础解系的公式,从而简化计算过程. 01 符号说明 n元线性方程组的矩阵形式:(1)齐 ...

  4. 齐次线性方程组的基础解系

    对于n元齐次线性方程组 (n个未知数:x1,x2,-,xn) 令 则上述方程组即为 该方程的解 视为n维向量(含有n个未知数的解), 则所有解向量构成一个向量组(一个解向量组,包含多个n维解向量). ...

  5. n元齐次线性方程组Ax =0解

    n 元齐次线性方程组 Ax =0有非零解的充分必要条件是 R(A)< n 矩阵秩的定义: 矩阵A中如果存在一个r阶子式不等于0,而所有的r+1阶子式(如果存在的话)全等于0,则规定A的秩R(A) ...

  6. 线性代数基础2--齐次线性方程组的解及方程组解的总结

    什么是齐次线性方程组,什么是非齐次线性方程组?                     齐次线性方程组(homegeneous linear equations): 一般的,如果线性方程组中所有方程的 ...

  7. 常系数齐次线性微分方程的解及其在求解微幅波控制方程中的运用

    文章目录 一.齐次线性微分方程及其求解 | 解的结构: | 例如: 二.常系数齐次线性微分方程及其求解 | 特征方程的解 (1)两个不同的实数根: (2)两个相同的实数根: (3)两个不同的共轭复数根 ...

  8. Matlab从入门到精通-在线性代数中的应用(二):求解齐次线性方程组

    前言 在 Matlab 中,函数 null 用来求解零空间,即满足 Ax=0 的解空间,实际上是求出解空间的一组基(基础解系). 以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是 ...

  9. 李永乐(八)齐次线性方程组——笔记

    解线性方程组 1.同解变形 2.齐次方程组

最新文章

  1. c++引用另一个类的方法_VlookUp函数使用方法,一张表引用另一张表的数据。
  2. 【Axure原型图】—— 4. Tab Control(选项卡)
  3. linux 脚本判断一个目录不存在
  4. Python 字典中get() 函数
  5. javafx隐藏_JavaFX技巧14:StackPane子项-隐藏但不消失
  6. java i o是什么流_Java I/O流的总结
  7. 传参方法:sharedApplication, NSUserDefaults, protocol 和 delegate(实例)
  8. php 走马灯轮播,Vue.js轮播图走马灯代码实例(全)
  9. SQL表操作习题4 14~25题 缺20题
  10. 我在Google用AI研究基因,入门从吴恩达的课程开始
  11. Atitti 载入类的几种方法    Class.forName ClassLoader.loadClass  直接new
  12. 计算机放样在钢结构应用,计算机放样应用于钢结构工程
  13. [buuctf][Zer0pts2020]easy strcmp
  14. 30天敏捷生活(12): 整理你的空间
  15. Flan Scan:Cloudflare开源轻量级网络漏洞扫描软件
  16. 未来智安2周年 | 行则将至,未来可期
  17. js中词法分析学习笔记
  18. 一名职业3D建模师的学习经历,月薪28K依然焦虑
  19. 如何查看win7计算机的显卡是多少位的,如何查看咱们win764位旗舰版电脑是单显卡还是双显卡...
  20. 癌症的征兆(不看后悔)

热门文章

  1. ArcGIS中标注之一上下标、分数等特殊形式标注(转)
  2. linux命令大全 笔试,Linux基础及常用命令(笔试面试必备)
  3. linux内核网络协议栈--数据包的接收过程(二十)
  4. CTF web总结--利用mysql日志getshell
  5. 日本奥委会主席否认为争取奥运会主办权行贿
  6. Vue+axios 实现http拦截及vue-router拦截
  7. [译] ⚛ React 状态管理工具博物馆
  8. Octopress配置和部署
  9. Linux下安装nfs服务器
  10. bat批处理重命名问题