特殊矩阵的压缩矩阵

目录

前提条件:

类型:对称矩阵,三角矩阵、三对角矩阵、稀疏矩阵

1:对称矩阵:

定义:n阶矩阵A 中任意一元素都有ai,j=aj,i(1<=i,j<=n)

图像:

表达式:

计算过程:

2:三角矩阵

概念:

前提:

下三角表达式:

计算逻辑:

上三角表达式:

计算逻辑:


前提条件:

        矩阵元素通常写成 ai,j , i,j表示行号和列号是从1开始。

        二维数组元素写成a[i][j], i,j表示元素下标一般是从0开始。

        一维数组元素写成ai, i表示元素下标,一般从0开始。

类型:对称矩阵,三角矩阵、三对角矩阵、稀疏矩阵

        其中三对角和稀疏矩阵不做讲解

1:对称矩阵:

储存下三角按行有限储存如下:

        定义:n阶矩阵A 中任意一元素都有ai,j=aj,i(1<=i,j<=n)

        图像:

        表达式:

$$
\huge k = \begin{cases} \frac{i(i-1)}{2} + j-1,\quad i \geqslant j \\ frac{j(j-1)}{2} + i-1, \quad j > i \end{cases} \tag{1}
$$

计算过程:

思考:当问题是按照上三角 且 按行压缩存储时,公式应该如何写?

其实处理逻辑是相通的,都是在求ai,j 前面有多少个元素的表达式,继续分成前i-1行前元素之和第i行前元素的求和。

2:三角矩阵

概念:

        ”下三角矩阵“:代表下三角域及主对角线元素无规律,而上三角区域中所有元素都相等。

        “上三角矩阵”:代表上三角域及主对角线元素无规律,而下三角区域中所有元素都相等。

前提:

        压缩后共有 $$\frac{i(i+1)}{2} + 1$$
个元素故数组B初始化为 B【(i(i+1))/2 + 1】,B数组下标从 0 -(n(n+1)/2。

        解释:上三角(或下三角)加主对角线共有 \huge \frac{i(i+1)}{2}个元素,而上三角全部都用1个元素来表示。

下三角表达式:

$$
\huge k = \begin{cases}\frac{i(i-1)}{2} + j-1,\quad i \geqslant j \\ \frac{n(n+1)}{2} , \quad j > i\end{cases}\tag{2}
$$

        计算逻辑:

        下三角矩阵的计算方式和对称矩阵当 i >=  j 时计算逻辑是相同的,当j>i时,直接就在B中最后一个元素。

上三角表达式:

按行优先级压缩:先对行进行压缩

$$
\huge k = \begin{cases}\frac{(i-1)(2n-i+2)}{2} + j-i,\quad j \geqslant i \\ \frac{n(n+1)}{2} , \quad i > j\end{cases}\tag{1}
$$

        计算逻辑:

按列优先级压缩:先对列进行压缩

        计算逻辑

        按列优先级的上三角矩阵的计算方式和对称矩阵当 j > i 时计算逻辑是相同的,当i >= j时,直接就在B中最后一个元素。

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

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

相关文章

stream-并行流

定义 常规的流都是串行的流并行流就是并发的处理数据&#xff0c;一般要求被处理的数据互相不影响优点&#xff1a;数据多的时候速度更快&#xff0c;缺点&#xff1a;浪费系统资源&#xff0c;数据少的时候开启线程更耗费时间 模版 Stream<Integer> stream1 Stream.of…

【YOLO 系列】基于YOLO V8的学生上课行为检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言 在现代教育环境中&#xff0c;学生上课行为的监测对于提升教学质量和学生学习效率具有重要意义。然而&#xff0c;传统的人工观察方法不仅效率低下&#xff0c;而且难以保证客观性和准确性。为了解决这一问题&#xff0c;我们启动了这个项目&#xff0c;目的是利用YOLOV8…

15.3 js数组塌陷和数组去重

数组塌陷 使用splice或pop会影响数组长度,形成循环次数的问题 pop 例子:pop从后删除了数据,那么影响了数组长度,i的值缩小 var arr = [1, 2, 3, 4, 5, 6, 7];for (var i = 0; i < arr.length; i++) {arr.pop(arr[i]);console.log(arr, i);}console.log("塌陷…

AI数学知识

AI数学知识 1、线性代数相关&#xff08;矩阵&#xff09;1、什么是秩2、奇异值分解3、特征值分解和奇异值分解4、低秩分解 回归分类知识点2、概率论相关1、先验概率和后验概率2、条件概率、全概率公式、贝叶斯公式、联合概率3、最大似然估计4、贝叶斯公式和最大似然估计5、伯努…

深入理解Kubernetes的调度核心思想

一、引言 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排系统&#xff0c;用于自动化部署、扩展和管理容器化应用程序。在Kubernetes集群中&#xff0c;调度器是一个核心组件&#xff0c;它负责将Pod&#xff08;Kubernetes中的最小部署单元&#xff09;分配…

python读写二进制文件

需求&#xff1a;将Test文件夹下所有bin文件中凡是出现128的统一替换成129。 import os root rD:\TXB\Y2022\PROJ\S2106\INNER\内部研究\语音信号处理\智能语音处理\test\pattern_0513 for file in os.listdir(root):if file.endswith(.bin):src_path os.path.join(root, fi…

Java学习16

目录 一.StringBuffer类&#xff1a; 1.基本介绍&#xff1a; 2.StringBuffer的构造器&#xff1a; 3.String与StringBuffer的相互转换&#xff1a; &#xff08;1&#xff09;String->StringBuffer &#xff08;2&#xff09;StringBuffer->String 4.StringBuffer…

AutoDL中Notebook中无法打开“checkpoints”文件夹

checkpoints是Notebook的关键字&#xff0c;若用户创建文件夹命名为checkpoints&#xff0c;则在JupyterLab上无法打开、重命名和删除。此时可以在Terminal里使用命令行打开checkpoints&#xff0c;或者新建文件夹将checkpoints里的数据移动到新的文件夹下。 操作步骤&#xf…

Linux设置Huggingface镜像代理

打开终端&#xff08;Terminal&#xff09;。使用 vim 编辑 .bashrc 文件&#xff1a;vim ~/.bashrc在 vim 中&#xff0c;按 G 键移动到文件的末尾&#xff0c;然后按 o 键插入新的一行。输入以下内容&#xff1a;export HF_ENDPOINThttps://hf-mirror.com按 Esc 键退出插入模…

Redis篇 数据的编码方式和单线程模型

编码方式和单线程模型 一.redis中的数据类型二. Redis中查询编码方式命令三. 单线程模型四. 经典面试题,redis为何这么快?什么是IO多路复用? 一.redis中的数据类型 在redis中,数据类型大致分为5种 1.字符串类型 2.哈希 3.列表 4.集合 5.有序集合 redis底层在实现这些数据结构…

黑马点评-短信登录

Override public Result sendCode(String phone) { // 1.检验手机号 if (RegexUtils.isPhoneInvalid(phone)) { // 这里抛出异常和return fail有什么区别吗&#xff1f;———> 有区别&#xff0c;抛出异常会被全局异常处理器捕获&#xff0c;返回fail不会 throw ne…

防火墙技术基础篇:NAT转发之——NAPT(同时转换地址和端口)

NAT转发之——NAPT&#xff08;同时转换地址和端口&#xff09; 网络地址端口转换NAPT 网络地址端口转换NAPT&#xff08;Network Address Port Translation&#xff09;是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中&#xff0c;它可以将中小型的网络隐藏在一个合…

Vue2和Vue3生命周期的对比

Vue2和Vue3生命周期的对比 Vue2 和 Vue3 生命周期对照表Vue2 和 Vue3 生命周期图示 Vue2 和 Vue3 生命周期对照表 触发时机Vue2.xVue3.x组件创建时运行beforeCreate setup createdsetup 挂载在DOM时运行beforeMountonBeforeMountmountedonMounted响应数据修改时运行beforeUpdat…

线程安全-4 AQSLockReentrantLock

一.什么是AQS&#xff1f; 1.AQS&#xff0c;AbstractQueuedSynchronizer&#xff0c;抽象队列同步器&#xff0c;是一个用于构建锁和同步器的框架。 2.基于AQS实现的锁或同步器有&#xff1a;可重入锁ReentrantLock、计时锁CountDownLatch、信号量Semaphore等 3.AQS三大核心…

x264 码率控制原理:x264_ratecontrol_end 函数

x264_ratecontrol_end 函数 原理 函数功能:编码完一帧数据后,保存状态并更新 ratecontrol 状态。函数参数:x264_t *h:编码器上下文结构体int bits:编码该帧所用的比特数int *filler:用于返回一个填充比特数函数调用关系: 函数内部执行流程:初始化x264_ratecontrol_t结…

关于DDos防御...别在听别人瞎扯了.....

前言 无意间刷文章的时候看到一篇文章&#xff0c;写的是遇到ddos&#xff0c;怎么用iptables封IP....... 然后我就百度搜了一下&#xff0c;好多都是这么说的&#xff0c;但是我发现&#xff0c;大多数人只要遭受过长期Ddos的&#xff0c;就不会再信网上的文章 文笔不太好&…

微信小程序中页面显示时触发子组件的重新渲染

使用生命周期函数&#xff1a; 在页面的 onShow 或 onLoad 生命周期函数中&#xff0c;调用子组件的方法或者改变子组件的数据&#xff0c;从而触发子组件的重新渲染。 例如&#xff0c;在页面的 js 文件中&#xff1a; Page({onShow: function() {// 调用子组件的方法this.sel…

Python内置函数ord()详解

在Python编程中&#xff0c;ord()函数是一个非常实用的内置函数&#xff0c;它用于返回一个字符的Unicode码点&#xff0c;即该字符在Unicode编码表中的数值。这个功能在处理文本数据和国际化应用程序时尤其重要。 函数功能 ord()函数的主要功能是将单个字符转换为其对应的Un…

在64位程序中调用SetWindowLong指定窗口处理过程失效问题排查(附C++编译器数据模型)

C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff09;https://blog.csdn.net/chenlycly/article/details/125529931C/C基础与进阶&#xff08;专栏文章&#xff0c;持续更新中...&#xff09;https://blog.csdn…

剖析vue中nextTick源码

代码逻辑梳理&#xff1a; callbacks 数组用于存储待执行的回调函数&#xff0c;waiting 变量用于标记是否有待执行的回调函数。 flushCallbacks 函数用于执行所有存储在 callbacks 数组中的回调函数&#xff0c;并在执行完成后将 waiting 设置为 false。 timer 函数根据环境…