A*x=y当A不可逆如何解x
求伪逆有五种方法,左右同时乘以A’,’chol()分解,qr() 分解,svd()分解和pinv()求伪逆,下面来比较一下哪个最优秀。
如果A是个355行3列的矩阵,经过计算,五个方式计算结果相同,对模型的拟合都是没有影响的。
如果A是个355行12列的矩阵(更高维),那么根据我对数据的拟合,结果如下:

深蓝线是数据,绿色的线是两边同时×A’,浅蓝色的线是pinv分解拟合出的模型,红线是qr拟合出的模型,黄线是svd分解拟合出的模型。这么浅显的看的话在高维下svd和两边同时×A’胜出,那么他们究竟谁更胜一筹,我们看一下第一范式,第二范式和Inf范式检验的结果:
%两边同时×A’
LINorm: 4310.269307,
degree:12
L2Norm: 304.254326,
degree:12
LinfNorm: 53.894558,
degree:12
%pinv
LINorm_pinv: 280971.201240,
degree:12
L2Norm_pinv: 17769.498396,
degree:12
LinfNorm_pinv: 1418.760946,
degree:12
%qr
LINorm_qr: 15143.093210,
degree:12
L2Norm_qr: 1598.528160,
degree:12
LinfNorm_qr: 384.625312,
degree:12
%svd
LINorm_svd: 4308.538292,
degree:12
L2Norm_svd: 303.776987,
degree:12
LinfNorm_svd: 53.013915,
degree:12
可见在高维情况下是svd分解更胜一筹(范式结果低),低维下不要轻易用两边同时×A’,因为会出奇异矩阵警告。
几种求伪逆的方法如下(matlab代码):

result=(A'*A)\(A'*y) %两边同时乘A’
result_pinv=pinv(A)*y %pinv%svd
[U,S,V] = svd(A); T=S;T(find(S~=0)) = 1./S(find(S~=0));svdInvA = V * T' * U';alpha_svd=svdInvA*y;%qr[Q,R] = qr(A);
InvR =  inv(R'*R)*R';
qrInvA =InvR*Q';
alpha_qr=qrInvA*y;

求伪逆的五种方法比较相关推荐

  1. MATLAB求解非线性方程组的五种方法

    MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...

  2. 创建五星级评级的五种方法

    在喜欢和社交统计的世界中,评论是留下反馈的一种非常重要的方法.用户往往喜欢先了解他人的意见,然后再决定自己购买的物品,甚至是看电影看的文章,或者就餐的餐厅. 开发人员经常与审查作斗争--通常会看到难以 ...

  3. matlab 求矩阵秩,求矩阵秩的两种方法及MATLAB的应用

    摘    要: 高等代数是一门逻辑思维比较强和理论知识比较深的学科, 它具有丰富的数学知识, 涉及许多重要的数学思想, 其在数学领域的应用很广泛, 如行列式.矩阵的相关计算和求解线性方程组的解方面的应 ...

  4. js获取元素的五种方法

    在使用Javascript的过程中我们经常都需要获取元素 ,接下来就给大家介绍一下我知道的在js中获取元素的五种方法. 1.根据选择器查找元素 1.1  document.querySelector( ...

  5. H5清除浮动的五种方法

    引言:在HTML中,如果所有子元素发生了浮动,而父元素又未设置高度,则会发生高度坍塌为0,从而影响布局,因此要清除浮动,现跟大家分享五种方法:         方法一:给父元素添加高度 ,但企业开发中 ...

  6. 【SSL1759】连通分量【五种方法】

    Description 求一个图的连通分量 Input n 顶点数(<=100) 连接的边 Output 连通分量 Sample Input 8 6 3 1 2 2 5 5 4 4 1 8 7 ...

  7. 清除浮动的五种方法及优缺点

    我们首先要思考:为什么要清除浮动? 源代码: <!DOCTYPE html> <html> <head><meta charset="utf-8&q ...

  8. Linux:检查当前运行级别的五种方法

    2019独角兽企业重金招聘Python工程师标准>>> 运行级就是Linux操作系统当前正在运行的功能级别.存在七个运行级别,编号从0到6.系统可以引导到任何给定的运行级别.运行级别 ...

  9. python 重载_python模块重载的五种方法

    环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 bar.py 的内容非常简单,只写了个 print 语句 只要 bar.py 被导入一次,就被执行一次 print 禁止重复导入 ...

最新文章

  1. springboot 学习笔记(三)
  2. 现存最古老计算机手册重见天日,比ENIAC要先进!
  3. 淘宝宝贝浏览量提升刷新工具 - 最好的淘宝宝贝流量提升工具
  4. 透明物体分割学习笔记
  5. SAP Leonardo及客户案例
  6. Python属性、方法和类管理系列之----属性初探
  7. 设计模式学习之Factory Method模式和Abstract Factory模式
  8. mac地址容量的作用_S6520X+MAC地址容量检查命令
  9. 从严治码-系统集成项目之根本
  10. centos 没有nmtui命令_Linux free 命令
  11. Python《搞事情==蜂-鸟-图-片(一)》
  12. 北大师兄告诉你,怎样顺利完成自己的博士生涯
  13. Python机器学习:线型回归法06最好的衡量线型回归法的指标RSquared
  14. Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源
  15. 计算机软件技术信息安全哪个好,国内哪个大学的计算机安全专业最好?
  16. 使用Scrapy,帮你快速抓取网页数据(代码可下载)!
  17. Tuxera NTFS 2021 for Mac(NTFS磁盘格式读写工具)
  18. 微服务框架自带uuid生成器
  19. hp android 计算器,惠普图形计算器(HP Prime Graphing Calculator)
  20. python爬取豆瓣图书前250

热门文章

  1. html插件 开发工具,前端开发必备工具之辅助开发工具篇
  2. Linux/centos下查看硬件型号
  3. 博图pro版和adv版区别_笔记本定制版什么意思?笔记本标配版和定制版的区别与利弊分析...
  4. 《西瓜书》阅读笔记——第一章
  5. RGB與CIELAB色彩空間轉換
  6. 国外html响应式网站,8个国外响应式摄影HTML5网站设计欣赏
  7. PDF编辑工具如何给PDF添加水印 添加水印的过程
  8. 现代时尚人像调色效果Lr预设
  9. Arduino+蜂鸣器实现黑人抬棺的音乐
  10. [附源码]JAVA毕业设计人才库构建研究(系统+LW)