本文针对n个未知数,大于n个方程组。求解未知数的问题,matlab代码。


一、首先,请注意,本文说的是线性超定方程组,方程组是线性的,不含有未知数的出发以及乘方。

求线性超定方程组,有这么几种方法:

1. 直接法

2. QR分解

3. SVD分解

4. 迭代法

本文首先选用直接法求解线性方程组,计算效率快,运行方便,代码短。


二、以2个未知数,四个方程为例。也可以是n个未知数,大于n个方程组求解。

随意一个方程组:

上式可写:

代码如下所示:Matlab

clc;clear;close all;A=[2,4;3,-7;10,-15;4,11];   %方程组系数矩阵B=[11;-14;-29;31];    %方程组右边的列向量X=A\B;

运行结果如下所示:

0.8440
           2.4779

matlab能使用左除运算智能选择算法解线性方程组(若无解,则求得的是最小二乘意义下的解);

此外,还可以利用广义逆求解:

程序代码如下所示:

clc;clear;close all;A=[2,4;3,-7;10,-15;4,11];   %方程组系数矩阵B=[11;-14;-29;31];    %方程组右边的列向量X=pinv(A)*B;

运行结果也是:

0.8440
           2.4779

广义逆求解也是一个满足最小二乘意义的解。


三、对于左除求解和广义逆求解两个结果,我们来看看残差的2范数是否最小

分别求得两个方法的残差二范数:

norm(B-A*X1)          norm(B-A*X2)

将求得的残差二范数进行相减:

norm(B-A*X1)-norm(B-A*X2)

即可得到残差的二范数大小。

可以得出如下结论:

左除求解和广义逆求解超定方程解:两个解都是最小二乘意义下的最优解,不过用广义逆求的解更佳,因为其中0元素较多(即最小二乘意义下的所有解中欧式范数最小的解),但是,左除计算效率较快,矩阵求逆的效率太慢。利用广义逆求解时间花费更长。


四、另外需要知道的是:

最小二乘法求解的是最优解,并不是解析解。只是的取最小的时候的最优解。

最小二乘法的英文是The least square method,二乘指的是平方。可以很好的理解最小的定义。


五、选用SVD分解求矩阵的最小二乘解

上述理解来自于https://blog.csdn.net/liyuanbhu/article/details/53240209

svd函数代码的理解来自于:https://blog.csdn.net/qq278672818/article/details/62038635:如下

代码如下:

clc;
clear;
close all;
A=[2,4;3,-7;10,-15;4,11];%方程组系数矩阵
B=[11;-14;-29;31];%方程组右边的列向量[U,S,V]=svd(A,0);
C=V*(inv(S))*U';   %A的逆
X=C*B;

输出结果X为:

求解线性超定方程组的最小二乘解[n个未知数,大于n个方程组](附代码)相关推荐

  1. 超定方程的最小二乘解的三维几何解释

    原始方程 Ax=bAx = bAx=b,解为 x=A−1bx = A^{-1}bx=A−1b,matlab描述 x = A\b 超定方程乘以 ATA^TAT 变为方阵 ATAx=ATbA^TAx = ...

  2. 超详细解读:神经语义解析的结构化表示学习 | 附代码分析

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. 超详细!一文告诉你 SparkStreaming 如何整合 Kafka !附代码可实践

    来源 | Alice菌 责编 | Carol 封图 |  CSDN 下载于视觉中国 相信很多小伙伴已经接触过 SparkStreaming 了,理论就不讲太多了,今天的内容主要是为大家带来的是 Spa ...

  4. 超详细!一文详解 SparkStreaming 如何整合 Kafka !附代码可实践

    来源 | Alice菌 责编 | Carol 封图 |  CSDN 下载于视觉中国 出品 | CSDN(ID:CSDNnews) 相信很多小伙伴已经接触过 SparkStreaming 了,理论就不讲 ...

  5. 求超定方程组最小二乘解的三种方法

    目录 1.超定线性方程组与最小二乘解 2.求解超定方程组的三种方法 3.参考链接 1.超定线性方程组与最小二乘解     超定线性方程组:方程的个数大于解个数,方程组是无解的,但是我们可以求得其最小二 ...

  6. 超定方程组最小二乘matlab,超定方程组的最小二乘解.ppt

    超定方程组的最小二乘解 数 学MATH 第二节 超定方程组的最小二乘解 设方程组Ax=b中, A=(aij)m?n, b是m 维已知向量, x是n 维解向量,当 m>n 即方程组中方程的个数多于 ...

  7. 超定方程的求解、最小二乘解、Ax=0、Ax=b的解,求解齐次方程组,求解非齐次方程组(推导十分详细)

    本篇主要介绍的是超定方程组的求解,如果你不想看繁琐的推导过程,你可以直接看红字部分的结论! 1. 齐次线性方程组 Ax = 0 对于方程Ax=0\bm A \bm x = 0Ax=0,在我们实际的使用 ...

  8. 用matlab解方程组例子,Matlab求解超定方程组实例

    Matlab求解超定方程组实例 对于超定方程组,特别是非线性方程组,可以用Matlab基于最小二乘算法来进行求解,例如,求解下列方程组: 一个三个未知数,九个方程的非线性方程组: cos(x3)*si ...

  9. matlab 线性方程组 最小二乘解,超定方程组的最小二乘解

    #include #include #include #define m 4//n #define n 2 void line_fun(double a[n][n],double b[n],doubl ...

最新文章

  1. 关于 智能指针 的线程安全问题
  2. 【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)...
  3. 将某个目录下的所有文件进行压缩
  4. 倍增时间 倍增...?
  5. threshold()
  6. 漫画兔善搞2007-等待爱玛马士基号的垃圾
  7. 裸考大学英语四级写作核心词汇及模板
  8. angular移除事件绑定事件绑定_002-js的三种事件绑定方式
  9. 家庭网络,怎么给每个房间装一个无线路由器?
  10. static 结构体_C++基础-static
  11. 等额本金-c语言俩个整数除法
  12. ADS系列 - 混频器设计 - 混频器原理介绍及仿真1
  13. 【案例】重庆市金融工作办公室:大数据监测预警非法集资平台
  14. 读《大秦帝国》第二部
  15. mysql mtq_GoLang 连接 Mysql 数据库
  16. Python探索性数据分析
  17. PHP集群中SESSION共享方案之Redis
  18. 迪威视讯打造全国网格化管理样板 龙华“织网工程”
  19. CMDB开发之基础搭建
  20. C/C++实现循环左移,循环右移

热门文章

  1. 应届程序员:考研or工作or考公,但行好事,莫问前程
  2. OSChina 周日乱弹 —— 金鱼:这不是我要的生活
  3. 转自知乎,亲民好酒推荐
  4. 项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(小地图修改完善)
  5. 表达数字的英文字母计数
  6. 2.6.30内核Netfilter的简单例子、四(filterIp)
  7. 大数据平台的分类与选型指南
  8. 5个小时,搭出2套应用,这一低代码平台很强劲!
  9. 大数据:一个未知的“方程式”
  10. Java教程:如何申请Java开发微信支付中的必要参数(appid,appsecret,商户号,微信支付密钥)