根据解的存在情况,线性方程可以分为:有唯一解的恰定方程组,解不存在的超定方程组,有无穷多解的欠定方程组。

对于方程组Ax=b,A为n×m矩阵,如果A列满秩,且n>m。则方程组没有精确解,此时称方程组为超定方程组。

线性超定方程组经常遇到的问题是数 据的曲线拟合。对于超定方程,在MATLAB中,利用左除命令(x=Ab)来寻求它的最小二乘解;

还可以用广义逆来求,即x=pinv(A),所得的解 不一定满足Ax=b,x只是最小二乘意义上的解。

左除的方法是建立在奇异值分解基础之上,由此获得的解最可靠;

广义逆法是建立在对原超定方程直接进行 householder变换的基础上,其算法可靠性稍逊与奇异值求解,但速度较快;

独立方程个数大于独立的未知参数的个数的方程,称为超定方程,在matlab里面有三种方法求解,一是用伪逆法求解,x=pinv(A)*b,二是用左除法求解,x=Ab,三是用最小二乘法求解,

x=lsqnonneg(A,b)

(3)矩阵求逆

行数和列数相等的矩阵称为方阵,只有方阵有逆矩阵。方阵的求逆函数为:

B=inv(A)

该函数返回方阵A的逆阵。如果A不是方阵或接近奇异的,则会给出警告信息。

在实际应用中,很少显式的使用矩阵的逆。在MATLAB中不是使用逆阵x=inv(A)*B来求线性方程组Ax=B的解,

而是使用矩阵除法运算x=AB来求解。因为MATLAB设计求逆函数inv时,采用的是高斯消去法,而设计除法解线性方程组时,

并不求逆,而是直接采用高斯消去法求解,有效的减小了残差,并提高了求解的速度。

因此,MATLAB推荐尽量使用除法运算,少用求逆运算。

(4)除法运算

在线性代数中,只有矩阵的逆的定义,而没有矩阵除法的运算。而在MATLAB中,定义了矩阵的除法运算。

矩阵除法的运算在MATLAB中是一个十分有用的运算。根据实际问题的需要,定义了两种除法命令:左除和右除。

矩阵左除:

C=AB或C=mldivide(A,B)

矩阵右除;

C=A/B或C=mrdivide(A,B)

通常矩阵左除不等于右除,

如果A是方阵,AB等效于A的逆阵左乘矩阵B。也就是inv(A)*B。

如果A是一个n*n矩阵,B是一个n维列向量,或是有若干这样的列的矩阵,则AB就是采用高斯消去法求得的方程AX=B的解。

如果A接近奇异的,MATLAB将会给出警告信息。

如果A是一个m*n矩阵,其中m不等于n,B是一个m维列向量,或是由若干这样的列的矩阵,

则X=AB是不定或超定方程组AX=B的最小二乘解。通过QR分解确定矩阵A的秩k,方程组的解X每一列最多只有k个非零元素。

如果k,方程的解是不唯一的,用矩阵除法求得的最小二乘解是这种类型解中范数最小的。

matlab中关于左除的定义:

mldivide(A,B) and the

equivalent AB perform matrix

left division (back

slash). A and B must

be matrices that have the same number of rows, unless A is a

scalar, in which

case AB performs element-wise

division — that

is, AB = A.B.

If A is a square

matrix, AB is roughly the same

as inv(A)*B, except it is computed in a different

way. IfA is

an n-by-n matrix

and B is a column vector

with n elements, or a matrix with

several such columns, then X =

AB is the solution to the

equation AX = B.

A warning message is displayed

if A is badly scaled or nearly

singular.

If A is

an m-by-n matrix

with m ~=

n and B is a

column vector with m components,

or a matrix with several such columns, then X =

AB is the solution in the least squares sense to

the under- or overdetermined system of

equations AX = B.

In other

words, X minimizes norm(A*X

- B), the length of the

vector AX -B. The

rank k of A is

determined from the QR decomposition with column pivoting. The

computed solution X has at

most k nonzero elements per

column. If k < n, this is usually not the same

solution asx = pinv(A)*B, which returns a least squares

solution.

注:在不理解矩阵分解的条件下,使用左除求解超定方程的解。

A*X=B, A:M*N, M>N,

B-N*1;

X=AB;

B/A大体等效于B*inv(A) (B右乘A的逆阵),但在计算方法上存在差异,更精确的,B/A=(ATBT)T。

输入:A=[1 2 3;4 5 7;4 7 9];B=[1 3

7;3 5 7;8 5 1];

矩阵左除。输入:AB

显示:ans =

-0.7500 -0.5000 -2.0000

5.7500 -3.5000 -18.0000

-3.2500 3.5000 15.0000

矩阵右除。输入:A/B

显示:ans =

-0.0217 0.4565 -0.0435

0.6522 0.3043 0.3043

-0.5652 1.8696 -0.1304

matlab最小二乘法解超定方程,[转载]matlab 超定方程 最小二乘解相关推荐

  1. matlab偏导数方程,[转载]Matlab求解微分方程(2)——偏微分方程的求解

    从写完上一篇常微分方程的求解到现在已经很长时间了,这周也一直忙于报到的各种事宜,无暇坐下来写些东西,趁着这个周末,终于完成了这个姊妹篇. 对于偏微分方程的求解,Matlab提供了两种工具.第一种是pd ...

  2. MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存

    具体命令是: 使用save * .txt -asciix x是一个变量 *. txt是文件名,该文件存储在当前工作目录中,然后在打开后可以将其打开,数据可以以指数形式保存. 看下面的例子: a = [ ...

  3. matlab怎么输入二维数组,[转载]matlab中数组的输入

    1 matlab中数组的输入 在matlab中写数组,直接输入元素的数组,应用中括号[],成行向量时,元素之间用空格或逗号隔开,成列向量时,分列处用分号隔开,也可以对相应行向量作转置,为在中括号外加单 ...

  4. 最小二乘法曲线拟合程序matlab,最小二乘法曲线拟合(代码环境:matlab)

    题目一: 1.用表1-1中的世界人口统计数值估计1980年的人口,求最佳最小二乘法数值估计: 表 1-1: 年 人口 1960 3 039 585 530 1970 3 707 475 887 199 ...

  5. matlab调用c语言驱动函数,[转载]Matlab调用C语言函数

    3.3000 要得出以上的结果,那应该怎样做呢? 解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便.MEX文件是由原C代码加上MEX文件专用的接口函数后 ...

  6. 采用Matlab编程实现 高频强调滤波,[转载]MATLAB图像处理-基于高频强调滤波和直方均衡化图像增强...

    摘要: 现代医学非常发达,能通过各种手段来获取人体的各种信息,例如,X光可以拍摄人的骨头等图片.但是,这些图片效果不一定很好,所以在使用着大量的数字成像和数字图片处理设备.那么,现在,我用Matlab ...

  7. matlab读int16读文件_[转载]Matlab中的textread textscan读取文本文件

    1.MATLAB从文本文件中读取格式化的数据函数是textread. 调用方式 [A,B,C,...] = textread('filename','format') [A,B,C,...] = te ...

  8. matlab的模型文件扩展名,[转载]matlab simulink基础知识

    Simulink 是面向框图的仿真软件. 7.1 演示一个Simulink 的简单程序 [例7.1]创建一个正弦信号的仿真模型. 步骤如下: (1) 在MATLAB 的命令窗口运行simulink 命 ...

  9. matlab中单独存图_[转载]matlab中保存图片的方法

    matlab中保存图片的方法 一.一种是出来图形窗口后手动保存(这儿又可以分两种): 1 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式. 2 edit------〉copy ...

  10. matlab能倒入crv文件么,[转载]matlab GUI 编程——mcc转换m文件到应用程序

    1.安装C编译器(前提是你的电脑已经安装了VC) >> mbuild -setup Please choose your compiler for building standalone ...

最新文章

  1. Controller 是单例还是多例?怎么保证并发的安全
  2. 通过Spark进行ALS离线和Stream实时推荐
  3. 初学者编写python用什么软件好_初学者编写python用什么软件
  4. 触目惊心,超过 8000+ 漏洞 Redis 暴露在云端!
  5. android 使用SharedPreferences保存对象
  6. 程序员如何快速消除自己的知识短板?
  7. mysql可以存布尔_哪个MySQL数据类型用于存储布尔值
  8. html编辑器查找与替换,织梦kindeditor文本编辑器增加“查找替换”功能
  9. does not esixt in the current content error
  10. springMvc配置文件
  11. calabash android教程,Calabash Android 使用教程 (二)
  12. 商务与经济统计学习 --概率
  13. 关于折叠屏手机的适配
  14. cdr多页面排版_CDR排版须掌握三大功能 值得收藏
  15. Required request body is missing:public java.util.List错误
  16. 大数据人工智能时代的核心思维——数学建模
  17. JavaWeb之servlet(1)
  18. a later version of node.js is already installed. Setup will now exit.
  19. 函数最值题目及答案_公务员考试行测技巧:巧解一元二次函数最值问题
  20. 从平凡到不平凡(转)

热门文章

  1. 自动化测试平台(七):头像展示、下拉菜单及用户管理模块增删改功能实现
  2. caxa画图怎么倒角_CAXA怎么画倒角和圆角?
  3. 区块链开发完整指南。如何开发一款区块链项目?
  4. 十大经典排序算法(冒泡、选择、插入、希尔、快排..........)
  5. 机器学习中的数学——结构化概率模型/图模型
  6. 思维导图模板怎么下载
  7. MAML-CNN代码笔记
  8. [Halcon识别] 二维码识别
  9. 构建系统发育树~序列对比 MEGA、MAFFT(图文教程)
  10. 说课稿模板计算机,计算机系统的组成说课稿1模板.doc