当前位置: 首页 > news >正文

MATLAB中dmperm函数用法

目录

语法

说明


        dmperm函数的功能是完成Dulmage-Mendelsohn 分解。

语法

p = dmperm(A)
[p,q,r,s,cc,rr] = dmperm(A)

说明

        如果列 j 与行 i 匹配,p = dmperm(A) 得到的结果为向量 p,这样 p(j) = i,如果列 j 与其不匹配,得到的结果为零。如果 A 是具有完整结构秩的方阵,则 p 是最大匹配行置换并且 A(p,:) 包含非零对角线。A 的结构秩是 sprank(A) = sum(p>0)。

        [p,q,r,s,cc,rr] = dmperm(A)(其中 A 无需是方阵或完整结构秩)计算 A 的 Dulmage-Mendelsohn 分解。p 和 q 分别是行和列置换向量,这样 A(p,q) 包含分块上三角。r 和 s 是索引向量,指示精细分解的块边界。cc 和 rr 是长度为 5 的向量,指示粗略分解的块边界。

C = A(p,q) 拆分为 4×4 组粗略块:

A11 A12 A13 A14
0    0  A23 A24
0    0   0  A34
0    0   0  A44

        其中 A12、A23 和 A34 是具有非零对角线的方阵。A11 的列是不匹配的列,A44 的行是不匹配的行。这些块中的任何块都可以为空。

        在粗略分解中,(i,j)th 块是 C(rr(i):rr(i+1)-1,cc(j):cc(j+1)-1)。如果 A 为方阵并且是非奇异结构,则 A23 = C。也就是说,所有其他粗略块都为 0×0。

对于线性方程组,

  • [A11 A12] 是方程组的欠定部分,它始终是列数多于行数的矩形或为 0×0。

  • A23 是方程组的确定部分,它始终为方形。A23 子矩阵通过精细分解(A23 的强连通分量)进一步细分为分块上三角矩形。

  • [A34; A44] 是方程组的超定部分,它始终是行数比列数多的矩形或为 0×0。

        A 的结构秩是 sprank(A) = rr(4)-1,这是 A 数值秩的上限。在精确算术运算中,概率为 1 的情况下 sprank(A) = rank(full(sprand(A)))。

        C(r(i):r(i+1)-1,s(j):s(j+1)-1) 是精细分解的第 (i,j) 块。(1,1) 块是矩形块 [A11 A12],除非该块为 0×0。(b,b) 块是矩形块 [A34 ; A44],除非该块为 0×0,其中 b = length(r)-1。C(r(i):r(i+1)-1,s(i):s(i+1)-1) 形式的其他所有块是 A23 的对角线块,并且是具有非零对角线的方阵。

提示

  • 如果 A 是可约矩阵,可以将 A 置换为带有不可约对角块的分块上三角矩阵,然后执行分块回代,进而对线性方程组 Ax = b 求解。仅需要对已置换矩阵的对角块进行分解,节省对角线上方块中的填充量和算术运算。

  • ​从图形理论方面看,dmperm 在 A 的偶图中计算最大大小匹配,并且 A(p,q) 的对角块对应于该图形的强 Hall 分量。dmperm 的输出还可用于计算无向图或有向图的连通或强连通分量。有关详细信息,请参阅 Pothen-Fan [1]。​

提示

  • 如果 A 是可约矩阵,可以将 A 置换为带有不可约对角块的分块上三角矩阵,然后执行分块回代,进而对线性方程组 Ax = b 求解。仅需要对已置换矩阵的对角块进行分解,节省对角线上方块中的填充量和算术运算。

  • 从图形理论方面看,dmperm 在 A 的偶图中计算最大大小匹配,并且 A(p,q) 的对角块对应于该图形的强 Hall 分量。dmperm 的输出还可用于计算无向图或有向图的连通或强连通分量。

相关文章:

MATLAB中dmperm函数用法

目录 语法 说明 dmperm函数的功能是完成Dulmage-Mendelsohn 分解。 语法 p dmperm(A) [p,q,r,s,cc,rr] dmperm(A) 说明 如果列 j 与行 i 匹配,p dmperm(A) 得到的结果为向量 p,这样 p(j) i,如果列 j 与其不匹配,得到的结…...

苹果折叠屏设备:创新设计与技术突破

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 苹果折叠屏设备:创新设计与技术突破 在科技迅速发展的今天,苹果公司以其一贯的创新精神和对产品质量的严格把控&#x…...

C#加班统计次数

C#加班统计次数 运行环境:vs2022 .net 8.0 社区版 1、用C#语言;2、有界面上传Excel文件; 3、对Excel列(部门、人员姓名、人员编号、考勤时间 )处理:(1)按人员编号、考勤日期分组且保留原来字段&…...

【资治通鉴】“ 将欲取之、必先予之 “ 策略 ① ( 魏桓子 割让土地 | 资治通鉴原文分析 | 道德经、周书、吕氏春秋、六韬 中的相似策略 )

文章目录 一、" 将欲取之、必先予之 " 策略1、魏桓子 割让土地2、资治通鉴原文分析 二、" 将欲取之、必先予之 " 类似的原理1、将欲败之,必姑辅之;将欲取之,必姑与之 - 周书2、将欲歙之,必固张之,…...

Spring5 的日志学习

我们在使用 Spring5 的过程中会出现这样的现像,就是 Spring5 内部代码打印的日志和我们自己的业务代码打印日志使用的不是统一日志实现,尤其是在项目启动的时候,Spring5 的内部日志使用的是 log4j2,但是业务代码打印使用的可能是 …...

python爬虫实践

两个python程序的小实验(附带源码) 题目1 爬取http://www.gaosan.com/gaokao/196075.html 中国大学排名,并输出。提示:使用requests库获取页面的基本操作获取该页面,运用BeautifulSoup解析该页面绑定对象soup&#x…...

【前端面试】七、算法-数组展平

目录 1.判断数组 2.二维数组展平 3.多维数组展平 1.判断数组 // 判断数组console.log([].constructor Array);console.log( Array.isArray([]));console.log( [] instanceof Array);console.log(Object.prototype.toString.call([]) [object Array]); 2.二维数组展平 const…...

Laravel php框架与Yii php 框架的优缺点

Laravel和Yii都是流行的PHP框架,它们各自具有独特的优点和缺点。以下是对这两个框架优缺点的详细分析: Laravel PHP框架的优缺点 优点 1、设计思想先进:Laravel的设计思想非常先进,非常适合应用各种开发模式,如TDD&…...

使用 addRouteMiddleware 动态添加中间

title: 使用 addRouteMiddleware 动态添加中间 date: 2024/8/4 updated: 2024/8/4 author: cmdragon excerpt: 摘要:文章介绍了Nuxt3中addRouteMiddleware的使用方法,该功能允许开发者动态添加路由中间件,以实现诸如权限检查、动态重定向及…...

Zookeeper未授权访问漏洞

Zookeeper未授权访问漏洞 Zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper的默认开放端口是 2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,…...

【JavaEE】定时器

目录 前言 什么是定时器 如何使用java中的定时器 实现计时器 实现MyTimeTask类 Time类中存储任务的数据结构 实现Timer中的schedule方法 实现MyTimer中的构造方法 处理构造方法中出现的线程安全问题 完整代码 考虑在限时等待wait中能否用sleep替换 能否用PriorityBlo…...

2024带你轻松玩转Parallels Desktop19虚拟机!让你在Mac电脑上运行Windows系统

大家好,今天我要给大家安利一款神奇的软件——Parallels Desktop 19虚拟机。这款软件不仅可以让你在Mac电脑上运行Windows系统,还能轻松切换两个操作系统之间的文件和应用程序,让你的工作效率翻倍! 让我来介绍一下Parallels Desk…...

【算法】递归实现二分查找(优化)以及非递归实现二分查找

递归实现二分查找 思路分析 1.首先确定该数组中间的下标 mid (left right) / 2; 2.然后让需要查找的数 findVal 和 arr[mid] 比较 findVal > arr[mid]&#xff0c;说明要查找的数在 arr[mid] 右边&#xff0c;需要向右递归findVal < arr[mid]&#xff0c;说明要查…...

CDN 是什么?

CDN是一种分布式网络服务&#xff0c;通过将内容存储在分布式的服务器上&#xff0c;使用户可以从距离较近的服务器获取所需的内容&#xff0c;从而加速互联网上的内容传输。 就近访问&#xff1a;CDN 在全球范围内部署了多个服务器节点&#xff0c;用户的请求会被路由到距离最…...

索引:SpringCloudAlibaba分布式组件全部框架笔记

索引&#xff1a;SpringCloudAlibaba分布式组件全部框架笔记 一推荐一套分布式微服务的版本管理父工程pom模板&#xff1a;Springcloud、SpringCloudAlibaba、Springboot二SpringBoot、SpringCloud、SpringCloudAlibaba等各种组件的版本匹配图&#xff1a;三SpringBoot 3.x.x版…...

2024第五届华数杯数学建模竞赛C题思路+代码

目录 原题背景背景分析 问题一原题思路Step1:数据读取与处理Step2:计算最高评分&#xff08;Best Score, BS&#xff09;Step3:统计各城市的最高评分&#xff08;BS&#xff09;景点数量 程序读取数据数据预处理 问题二原题思路Step1: 定义评价指标Step2: 收集数据Step3: 标准化…...

FFmpeg源码:av_reduce函数分析

AVRational结构体和其相关的函数分析&#xff1a; FFmpeg有理数相关的源码&#xff1a;AVRational结构体和其相关的函数分析 FFmpeg源码&#xff1a;av_reduce函数分析 一、av_reduce函数的声明 av_reduce函数声明在FFmpeg源码&#xff08;本文演示用的FFmpeg源码版本为7.0…...

nginx: [error] open() “/run/nginx.pid“ failed (2: No such file or directory)

今天 准备访问下Nginx服务&#xff0c;但是 启动时出现如下报错&#xff1a;&#xff08;80端口被占用&#xff0c;没有找到nginx.pid文件&#xff09; 解决思路&#xff1a; 1、 查看下排查下nginx服务 #确认下nginx状态 ps -ef|grep nginx systemctl status nginx#查看端口…...

<数据集>BDD100K人车识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;15807张 标注数量(xml文件个数)&#xff1a;15807 标注数量(txt文件个数)&#xff1a;15807 标注类别数&#xff1a;7 标注类别名称&#xff1a; [pedestrian, car, bus, rider, motorcycle, truck, bicycle] 序号…...

利用SSE打造极简web聊天室

在B/S场景中&#xff0c;通常我们前端主动访问后端可以使用axios&#xff0c;效果很理想&#xff0c;而后端要访问前端则不能这样操作了&#xff0c;可以考虑SSE、websocket等方式&#xff0c;实时和性能均有保障。 下面给出一个简单的SSE例子&#xff0c;后端是nodeexpress&am…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...