MATLAB中pinv函数用法

news2024/11/7 22:50:19

目录

语法

说明

示例

使用伪逆求解线性方程组


        pinv的功能是得到矩阵的Moore-Penrose 伪逆。

语法

B = pinv(A)
B = pinv(A,tol)

说明

        B = pinv(A) 返回矩阵 A 的 Moore-Penrose 伪逆。

        B = pinv(A,tol) 指定容差的值。pinv 将 A 中小于容差的奇异值视为零。

示例

使用伪逆求解线性方程组

        比较通过反斜杠 (\) 和 pinv 求得的线性方程组的解。

        如果矩形系数矩阵 A 低秩,则使 norm(A*x-b) 最小化的最小二乘问题将有无限多个解。x1 = A\b 和 x2 = pinv(A)*b 返回两个解。这两个解具有以下特征:x1 只有 rank(A) 个非零分量,norm(x2) 是小于任何其他解的范数。

        创建一个 rank(A) = 3 的 8×6 矩阵。

A = magic(8); 
A = A(:,1:6) 
A = 8×6

    64     2     3    61    60     6
     9    55    54    12    13    51
    17    47    46    20    21    43
    40    26    27    37    36    30
    32    34    35    29    28    38
    41    23    22    44    45    19
    49    15    14    52    53    11
     8    58    59     5     4    62

为方程组的右侧创建一个向量。

b = 260*ones(8,1)
b = 8×1

   260
   260
   260
   260
   260
   260
   260
   260

        为右侧选择的数字 260 是 A 的 8×8 幻数和。如果 A 仍然是 8×8 矩阵,则 x 有一个解是由 1 组成的向量。如果只有六列,方程仍然是一致的,因此仍然存在解,但解并非全部由 1 组成。由于矩阵低秩,因此有无限多个解。

        使用反斜杠和 pinv 求两个解。

x1 = A\b
Warning: Rank deficient, rank = 3, tol =  1.882938e-13.
x1 = 6×1

    3.0000
    4.0000
         0
         0
    1.0000
         0

x2 = pinv(A)*b
x2 = 6×1

    1.1538
    1.4615
    1.3846
    1.3846
    1.4615
    1.1538

        从 norm(A*x1-b) 和 norm(A*x2-b) 仅存在舍入误差的意义上来说,这两个解都是精确的。解 x1 的特殊之处在于它只有三个非零元素。解 x2 的特殊之处在于 norm(x2) 小于其他任何解的对应值,包括 norm(x1)。

norm(x1)
ans = 5.0990
norm(x2)
ans = 3.2817

提示

  • 可以将应用于向量 b 的大部分 pinv(比如在 pinv(A)*b 中)替换为 lsqminnorm(A,b),以计算线性方程组的最小范数最小二乘解。lsqminnorm 通常比 pinv 更有效,而且还支持稀疏矩阵。

算法

        pinv 通过奇异值分解来形成 A 的伪逆。S 对角线上小于 tol 的奇异值被视为零,而 A 的表示变成:

        因此 A 的伪逆等于:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2229507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DP31 买卖股票的最好时机(二)

DP31 买卖股票的最好时机(二) import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt();int [] p new int[n];int sum 0;for…

.NET Core WebApi第5讲:接口传参实现、数据获取流程、204状态码问题

一、接口传参实现 1、引入:通过网址上两个参数mod...和FID....,区分开要的是哪个板块里面的数据​​​​​ 2、传参实现:在方法的参数处定义STRING字符串 (1)传1个参数 2>运行代码,在网页上输入以“点…

为什么一定要学AI(Stable Diffusion)做设计?

在当今数字化时代,人工智能技术正在以前所未有的速度和规模改变着各行各业的工作方式和流程。 更多实操教程可以扫描下方,免费获取 而室内设计领域中,AI技术也正在迅速崛起,为设计师们带来了前所未有的便利和创作可能性&#xff0…

mysql密码过期问题处理

链接mysql报错 Your password has expired. To log in you must change it using a client that supports expired passwords; 1、打开mysql链接工具 LINUV bin目录 windows 打开mysql client 2、进入mysql命令框 输入旧密码 3、执行 mysql> set passwordpassword(12345…

灵动AI视频 —— 创意无界,视频新生

在这个瞬息万变的数字时代,每一帧画面都蕴含着无限可能。灵动AI视频,作为一款集智能、高效、创意于一体的视频编辑神器,正引领着视频创作的新潮流。 灵动ai视频用户端:灵动 AI-新一代AI创意生产力平台​编辑https://one.genceai.…

SPA——MVC 与 MVVM - 2024最新版前端秋招面试短期突击面试题【100道】

SPA——MVC 与 MVVM - 2024最新版前端秋招面试短期突击面试题【100道】 🌐 在现代前端开发中,单页面应用(SPA)以及不同的架构模式(如MVC和MVVM)是实现用户交互的关键概念。了解它们的优缺点以及如何应用&a…

Vue3+TypeScript+Vite 后台管理项目

一、前言 我将使用当前最新版本完成项目搭建,我会尽量将每个操作细节记录下来,并且解释原因,标明依据出处,这样即使大家脱离当前这个版本,跟着文章依然可以完成项目搭建,这篇文章也依然有他的价值&#xf…

知识竞赛活动用什么样的话筒或麦克风好呢

搞知识竞赛活动,话筒一般是需要的,从选手到主持人、评委甚至有些观众,每场活动用量不少。 市场上的麦克风五花八门,从价格低廉的入门款到高端专业设备,不胜枚举。这让很多用户在选择时感到无从下手。如何在众多产品中…

面向对象编程中类与类之间的关系(二)

目录 1.引言 2.泛化(继承)关系 3.实现关系 4.聚合关系 5.组合关系 6.依赖关系 7.关联关系 7.1. 单向关联 7.2. 双向关联 7.3.自关联 8.总结 1.引言 在面向对象设计模式中,类与类之间主要有6种关系,他们分别是&#xff…

贪心算法入门(一)

1.什么是贪心算法? 贪心算法是一种解决问题的策略,它将复杂的问题分解为若干个步骤,并在每一步都选择当前最优的解决方案,最终希望能得到全局最优解。这种策略的核心在于“最优”二字,意味着我们追求的是以最少的时间和…

MATLAB发票识别系统

课题介绍 该课题为基于MATLAB的发票识别系统。主要识别发票的编号。可定做发票的日期,金额等字段的识别。通过输入图片,校正,定位目标区域,分割,字符分割,模板匹配识别,得出结果。整个设计包含…

spark==windows启动spark集群

下载hadoop3.0.0 https://archive.apache.org/dist/hadoop/core/hadoop-3.0.0/ 下载spark3.5.3 Index of /dist/spark/spark-3.5.0 添加环境变量 HADOOP_HOME SPARK_HOME PATH中添加%HADOOP_HOME%\bin,%HADOOP_HOME%\sbin, %SPARK_HOME%\bin,%SPARK_HOME%\sbin, 启动mast…

(实战)WebApi第10讲:Swagger配置、RESTful与路由重载

一、Swagger配置 1、导入SwashBuckle.AspNetCore包 2、在.NET Core 5框架里的startup.cs文件里配置swagger 3、在.NET Core 6框架里的Program.cs文件里配置swagger 二、RESTful风格:路由重载,HttpGet()括号中加参数 (1)原则&…

【春秋云镜】CVE-2023-27179

CVE-2023-27179 CVE-2023-27179 是一个影响 Apache Doris 的漏洞。Apache Doris 是一款用于交互式分析的高性能数据库,特别适用于处理大规模的结构化数据。该漏洞属于权限提升漏洞,允许未授权用户以管理员身份执行敏感操作。 具体细节 漏洞类型&#…

chrome编辑替换js文件的图文教程

一、找到要修改替换的js文件 二、将文件保存到本地 三、在本地新建一个文件 路径最好跟你要替换的文件的路径保持一致, 四、选中js文件替换 回到原文件右击选择保存并覆盖 点击完保存并覆盖之后回到替换的新文件中,在自动生成的webpack文件中对文件进…

​CSS之三

CSS三大特性 CSS 有三个非常重要的三个特性:层圣性、继承性、优先级 层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层曼)另一个冲突的样式。层曼性主要解决样式冲突的问题 层叠性原则: - 样式冲突,遵循的原则是就近原则,哪个…

Generating /run/initramfs/rdsosreport.txt

Linux中遇到Generating /run/initramfs/rdsosreport.txt 第一步:首先输入 ls /dev/mapper 第二步:输入 xfs_repair /dev/mapper/centos-root -L 第三步:重启reboot 不说原因了,直接上解决方式: 第一步:首先…

Spark,Anconda在虚拟机实现本地模式部署

如果想要了解模式的概念部分,以及作用请看: Spark学习-CSDN博客 一.在虚拟机安装spark cd /opt/modules 把Anconda和Spark安装包拖拽进去: 解压: tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs 重命名&#x…

云原生开源开发者沙龙丨AI 应用工程化专场杭州站邀您参会

云原生开源开发者沙龙 AI 原生应用架构专场,邀您一起交流,探索 AI 原生应用的工程化落地! 活动简介 AI 驱动的应用程序开发、部署和运维,给应用带来了新的生命力和想象空间。但大部分开发者对 AI 应用的编程框架、可观测体系、网…

OpenCV基本操作(python开发)——(5)轮廓处理

OpenCV基本操作(python开发)——(1) 读取图像、保存图像 OpenCV基本操作(python开发)——(2)图像色彩操作 OpenCV基本操作(python开发)——(3&…