求解线性方程组(SVD,QR,Gauss,LU)
曲线拟合过程中,需要求解线性方程组,下面谈谈线性方程组的求解方法:
1)svd求解
对于齐次线性方程 A*X =0; 当A的行数大于列数时,就需要求解最小二乘解,在||X||=1的约束下,其最小二乘解为矩阵A'A最小特征值所对应的特征向量。求解方法有两种(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
3. SVD
任意矩阵A (mxn), 都能被奇异值分解为:
A = U *Σr *V
其中, U是mxm的正交矩阵, V是nxn的正交矩阵,Σr是由r个沿对角线从大到小排列的奇异值组成的方阵.r就是矩阵A的秩.
4. Moore-Pseudo逆
任意矩阵A, 若存在矩阵X, 使得:
AXA = A ; XAX = X; (AX) ^T = AX; (XA)^T = XA
则称X是A的Moore-Pseudo逆, 简称广义逆, 记为A+.
矩阵A的广义逆是唯一的, 并且可以利用A的SVD分解进行计算. 令A的SVD分解为:
不难验证
5. 线性最小二乘问题
考虑线性方程组Ax=b, 求其最小二乘解.
如果A的秩是n, 则其唯一解是A+b; 如果秩小于n, 则有无穷多解, 其中的最小范数解仍然是A+b. 我们通常关心的也就是这个解.
参考链接:http://blog.163.com/liuhongwei1006@126/blog/static/830464442011311156073/
http://oliver.zheng.blog.163.com/blog/static/14241159520136156748151/
2)QR求解
QR分解主要针对上海森伯格阵的全部特征值问题和计算对称三对角矩阵的全部特征值问题
任意矩阵A(m * n)
QR分解后A = QR, 其中Q是M*M正交阵,R是M*N阵,当M》N时,R阵是三角阵,是矩阵A的特征值,通过特征值进而求解特征向量。
延伸一下,QR分解也用于求解最小二乘问题。
3)Gauss消去法求解线性方程组
这个不多说了,找本线性代数书看看就懂
4)LU分解求线性方程组
贴个链接:http://blog.163.com/shichangting303@126/blog/static/46434626201042711311239/
求解线性方程组(SVD,QR,Gauss,LU)相关推荐
- matlab 求解线性方程组之LU分解
线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积.常见的有如下分解: LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵 QR分解: 秩分解 ...
- Gauss 消元法求解线性方程组
Gauss 消元法求解线性方程组 内容 消元法是将方程组中的一方程的未知数用含有另一未知数的代数式表示,并将其代入到另一方程中,这就消去了一未知数,得到一解:或将方程组中的一方程倍乘某个常数加到另外一 ...
- 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组(转载)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yyywww666/article/details/42805071 算法介绍(迭代法介绍): 代码C ...
- 【计算方法】实验二:python实现高斯消去、列主元高斯消去,LU分解分别求解线性方程组
文章目录 题目 方法一:高斯消去法 结果截图 方法二:列主元素高斯消元法 结果截图 方法三:LU分解 结果截图 结果总结 题目 实现高斯消去.列主元高斯消去,LU分解分别求解线性方程组 方法一:高斯消 ...
- 列主元Gauss消元法求解线性方程组的MATLAB实现
目录 顺序高斯消去法求解线性方程组的MATLAB实现 列主元Gauss消元法求解线性方程组的MATLAB实现 一.简介 MATLAB实现列主元Gauss消去法求解线性方程组,并与不列主元的Gauss消 ...
- Gauss消元法求解线性方程组的Matlab实现(列主元、全主元)
最近数值分析有作业要求用Matlab实现Gauss消元法,记录在此. 问题如下: 1.列主元消去法 function []=Gauss_L(A,b) %列主元求解线性方程组 ZG= [A b]; %增 ...
- python QR分解求解线性方程组和矩阵本征值和本征向量
下面的代码提供了两个函数 solve_linear_equ, 利用QR分解求解线性方程组,输入是一个二维的非奇异的系数方阵和一个常数array,输出是该线性方程组的解 eigen, 输入是一个实方阵( ...
- 数值计算大作业:Jacobi与Gauss -Seidel迭代求解线性方程组(Matlab实现)
作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业. 我把Jacobi与Gauss -Seidel迭代求解线性方程组的数值计算作业在MATLAB中编程实现.具体的程序详细标注后放在文 ...
- matlab lu解线性方程,MATLAB报告用LU分解法求解线性方程组.doc
MATLAB报告用LU分解法求解线性方程组 <MATLAB>期末大报告 报告内容:用LU分解法求解线性方程组 学院(系): 专 业: 班 级: 学 号: 学生姓名: 2014 年 6 月 ...
最新文章
- 最小树形图及其生产方法
- css中position的几个值
- SVN关于忽略xcuserdata目录
- JAVA不借助第三个变量实现两个变量交换的思考
- 继承练习 :开发一个系统时 	需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work
- mac下SecureCRT连接阿里云服务器最新教程
- html动画加载效果,CSS3 实现 Loading(加载)动画效果
- android 中xml文件的各种样式的学习
- 处理PHP字符串的10个简单方法
- AS 中强制类型转换
- 前端调用3dmax模型转换.gltf格式
- 用css和HTML做loding小动画
- 毕业设计周报(第六周)
- 网络安全观察报告 惯犯观察
- InnoDB的“无用”知识
- 可可网络验证9.3、9.5版本
- Androidstudio报错问题之R飘红
- uniapp-swiper轮播图中间放大两边缩小
- 基于RK3588的8K智能摄像机方案设计
- 淘宝助理5.5官方版最新版