三对角矩阵(特殊矩阵)

【数据结构】特殊矩阵的压缩存储(对称矩阵,三角矩阵和三对角矩阵) 特殊矩阵的压缩存储(对称矩阵,三角矩阵和三对角矩阵) 阅读详情

特殊矩阵之三对角矩阵

一开始在网上搜了好多,结果题目和答案不对应,有的答案直接不对,没办法,看的书然后自己慢慢分析做的。具体如下:

一个三对角矩阵的非零系数在三条对角线上:主对角线、低对角线、高对角线。其余元素全为0。

三对角矩阵的特点:
三对角矩阵M是一个对角矩阵,当且仅当
时,有M(i,j)=0。在一个nxn的三对角矩阵T中,非0元素排列在如下的三条对角线上:
(1)主对角线即i=j;
(2)主对角线之下的对角线(称低对角线)即i=j+1;
(3)主对角线之上的对角线(称高对角线)即i=j-1。
这三条对角线上的元素总数为3n-2,故可以使用一个拥有3n-2个位置的一维数组来描述T,因为仅需要存储三条对角线上的元素

设有三对角矩阵(aij)nxn,将其三条对角线上的元素朱行地存于向量B[3n-1]中(其中零号单元存放三对角线外的常量C),使得B[K]=aij,求:
(1) 用i j 表示k的下标变换公式;
(2)用k表示i及j的下标变换公式;

自己画的,有错误还请指出。

上面图片中的四阶矩阵,是一个三对角矩阵,每个元素的位置都在图中标出,转化成一维数组的位置也已经标出。

所以此题的答案为:

(1)
k=2*i + j + 1, |i-j| <= 1
k=0 , 其它

(2)
i = (k-j-1)/2;
j = k-2i-1;

如果还有不明白的地方,可以在下方留言。

【考研】数据结构——特殊矩阵的压缩存储(含真题) 本文内容源于对《数据结构(C语言版)》(第2版)、王道讲解学习所得心得、笔记整理和总结。本文主要以举例子的方式讲解考研选择题型中的特殊矩阵的压缩存储知识点,配以图文(含408真题)。【2023考研】数据结构常考应用典型例题(含真题)_住在阳光的心里的博客-优快云博客。 阅读详情

相关推荐

16、特殊线性系统求解:从三对角矩阵到范德蒙矩阵

本文探讨了三对角矩阵和范德蒙矩阵在求解线性系统中的应用。首先介绍了三对角系统的定义和结构,以及如何通过并行算法高效求解,并讨论了相关研究进展和注意事项。随后,深入分析了范德蒙矩阵的性质,包括其小位移秩特性、与多项式插值的关系,以及求解范德蒙系统的高效算法。文章还比较了三对角矩阵与范德蒙矩阵在结构和求解方法上的差异,并讨论了它们的适用场景及挑战。最后,提出了算法改进思路,并展望了未来的研究方向,包括提升算法效率和稳定性,以及扩展实际应用领域。

j7k8l的博客 111

特殊矩阵——三对角矩阵(Tridiagonal Matrix)

特殊矩阵——三对角矩阵(Tridiagonal Matrix) 1. 三对角矩阵的概念 三对角矩阵就是对角线、邻近对角线的上下次对角线上有元素,其他位置均为0的矩阵。 三对角矩阵是一种特殊的上Hessenberg矩阵(这个就是上三角矩阵加上下三角部分的第一条次对角线有元素,其他都为0元素)。 2. 三对角矩阵的特性 设一个n*n的方阵A,对于矩阵A中的任一元素aij,当|i-j|>1时,有aij=0(0≤i≤n

Catherine的笔记 8万+

解三对角矩阵以及循环三对角矩阵方程的数值计算方法

解三对角矩阵以及循环三对角矩阵的数值计算方法 内含有三种方法的算法原理以及Python代码

三对角矩阵原理及C++实现

本文介绍了三对角矩阵的定义、存储和其下标推导,并使用C++实现了三对角矩阵的存储。

m0_56745306的博客 1万+

从‘平行’到‘鱼骨’:手把手拆解AlGaN/GaN HEMT多栅指结构的布局优化实战

本文深入探讨了AlGaN/GaN HEMT多栅指结构的布局优化,从传统的平行栅结构到创新的鱼骨栅结构,详细解析了如何通过优化信号路径和热管理提升功率器件的性能。文章结合实测数据和EDA工具,展示了鱼骨栅结构在相位一致性、热阻和版图利用率方面的显著改进,为射频功率放大器设计提供了实用指导。

weixin_27061475的博客 440

BIM模型导入SuperMap

目录 一、超图 BIM插件安装 1.1 插件下载 1.2 安装 二、BIM模型导出 2.1 Revit插件导出 2.2 SuperMap导入工具 三、SuperMap BIM数据处理与服务发布 四、SuperMap三维数据处理中关于模型高程修改方法 一、超图 BIM插件安装 1.1 插件下载 下载链接:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?tt=ProductAAS&id=134 1..

爱晒太阳的风 3597

特殊矩阵的压缩存储(公式详解)

在数据结构中需要考虑如何将矩阵更有效地存储在内存中,并能方便地提取矩阵中的元素。本文分析了如何将对称矩阵、三角矩阵以及三对角矩阵压缩至一维数组中,并对部分公式进行了分析和推导。

kusunoki的博客 4882

手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录

本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。

weixin_30872499的博客 447

数据结构——数组对特殊矩阵的压缩存储(三角矩阵,三对角矩阵)

上三角区和下三角区的对应元素相同,将n阶矩阵存放在一维数组A【n(n+1)/2】中。

enmmhey的博客 1888

VN5620硬件接口介绍

VECTOR, VN5620, 诊断

Fecostar的博客 7482

数据中台:大数据平台,数据仓库(DM),数据中台之间的联系以及异同分析

大数据平台是一个技术平台。这个技术平台提供了对于大数据的分布式采集,存储,流处理和计算,实时分析等能力。在没有大数据平台前也有数据集成和管理的平台,这种平台可以实现对结构化数据本身的采集,集成和管理。 管理平台,是在原生的大数据生态的基础之上,为了更好的管理集群服务,管理集群的资源,提供灵活SRE能力和资源核算审计能力的一系列工具和合称整体架构数据中台包括数据仓库的全部内容,数据仓库为数据中台提供了数据对外提供服务的基础资源,数据中台将数据仓库建设的投入价值进行最大化,以加快数据赋能业务的速度大家都知道数据

GIS摆渡人 2132

C++(数据结构与算法):16---特殊矩阵的实现(对角矩阵、三对角矩阵、下三角矩阵、上三角矩阵、对称矩阵)

一、特殊矩阵(方阵) 方阵:是指行数与列数相同的矩阵 一些常用的特殊方阵如下: 对角矩阵:M是一个对角矩阵,当且仅当i!=l时,M(i,j)=0 三对角矩阵:M是一个三对角矩阵,当且仅当|i-j|>1时,M(i,j)=0 下三角矩阵:M是一个下三角矩阵,当且仅当i<j时,M(i,j)=0 上三角矩阵:M是一个上三角矩阵,当且仅当i>j时,M(i,j)=0 对...

董哥的黑板报 7600

OpenCV实现物体尺寸的测量

物体尺寸测量的思路是找一个确定尺寸的物体作为参照物,根据已知的计算未知物体尺寸。如下图所示,绿色的板子尺寸为220*300(单位:毫米),通过程序计算白色纸片的长度。

qq_53545309的博客 9157

特殊矩阵的压缩存储(对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵)

压缩存储策略:只存储主对角线+下三角区(或主对角线+上三角区)除了主对角线和上三角区,其余的元素都相同。除了主对角线和下三角区,其余的元素都相同。M行N列的二维数组b[M][N]中,若按。M行N列的二维数组b[M][N]中,若按。各数组元素大小相同,且物理上连续存放。②若已知数组下标k,如何得到i,j?:非零元素远远少于矩阵元素的个数。则b[i][i]的存储地址=数组元素a[i]的存放地址=则b[i][j]的存储地址=,会失去随机存储的特性。上三角区和主对角线元素。下三角区和主对角线元素。

jungleirim的博客 4364

第7章: MMU notifier在AMD GPU驱动中的应用

AMD GPU驱动利用MMU Interval Notifier机制实现共享虚拟内存(SVM)和异构内存管理(HMM)。通过分析AMDGPU内存架构(VRAM、GTT、Userptr)和Buffer Object设计,重点探讨了Userptr零拷贝机制如何依赖MMU notifier保持CPU/GPU内存一致性。HMM框架进一步实现统一地址空间和透明页面迁移,AMDGPU通过amdgpu_hmm.c实现两种invalidate回调(GFX和HSA模式),处理不同场景下的内存失效同步问题。

图形/计算GPU的驱动与虚拟化技术分享园地 2468

医疗影像分析实战:肺炎X光片分类与分割

医疗影像分析实战:肺炎X光片分类与分割 ,人工智能,计算机视觉,大模型,AI,在医疗领域,医疗影像分析技术凭借其高效、精准的特点,成为疾病诊断与治疗的重要辅助手段。肺炎作为一种常见的呼吸道疾病,严重威胁人类健康,通过 X 光片对肺炎进行诊断是临床常用方法。利用计算机技术实现肺炎 X 光片的自动分类与分割,不仅能减轻医生的工作负担,还能提高诊断的准确性和效率。本文将深入讲解肺炎 X 光片分类与分割的实战过程,结合大量代码示例和关键概念解析,帮助读者掌握相关技术。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

【所有特殊矩阵 :ADT模板类封装】( 稀疏矩阵 | 三角矩阵 | 三对角矩阵 | 十字矩阵 )

for(i = 0;++i)if(!if(!for(i = 0;++i)if(!return!return os;--position;++position;return tmp;--position;return tmp;

RFoer的博客 600

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数据结构-拓展突破-特殊矩阵(对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵)的压缩存储)

三对角矩阵,又称带状矩阵:当|i-j>1时,有aj= 0 (1

dodamce的博客 6384

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【数据结构】特殊矩阵的压缩存储

💯矩阵的压缩存储:特殊矩阵有对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵,数组是由n个相同类型的数据元素所构成的有限序列数组是线性表的推广:一维数组可以看做是一个线性表,而对于二维数组而言,可以看成是有多个线性表组成的线性表也就是每一行列视都为一个线性表,总的线性表内每一个元素也是一个定长的线性表。

DAY I 的成长之路 4455

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

学习数据结构--第三章:栈和队列(特殊矩阵的压缩存储)

特殊矩阵的压缩存储 1.矩阵 在C语言中,我们通常使用二维数组来存储矩阵。 2.矩阵的压缩存储 比如我们要将下面的学生信息通过一个3行6列的矩阵存储起来,但是所有的学生的信息都是一样的,所以我们其实只用存储一个就行了。 下面的信息,每一行信息都是一样的,按照上述压缩方式我们只需三个存储单元就可以存放该矩阵的所有信息了。 压缩存储:指多个值相同的元素只分配一个存储空间,对零元素不分配存储空间。 特殊矩阵:指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律性的矩阵。 特殊矩

理木客 823

数据结构-特殊矩阵【对称矩阵、上三角下三角矩阵、三对角矩阵】的压缩存储代码实现

#include <iostream> using namespace std; typedef int ElemType; void SymmetricMatrixStore(int n, ElemType*& s);//存储n行的对称矩阵,将存储结果放入数组s中返回 void TraverseSymmetricMatrix(ElemType* s, int n);//将存储在数组s中的n行对称矩阵遍历 void UpperTriangularMatrixStore(int n.

weixin_52144018的博客 4097

数据结构七:矩阵

1. 矩阵的定义 矩阵可以描述为一个二元数组,矩阵的下标通常从1开始。下面是利用上节提到的行优先映射的方法来对矩阵进行实现。 1.1 矩阵的实现 #pragma once #include &lt;iostream&gt; //矩阵类 template&lt;typename elemType&gt; class Matirx { protected: //矩阵的数据成员 ...

wuye999的博客 1658

【matlab】【数值分析】针对特殊矩阵的追赶法的matlab实现

【数值计算】使用matlab代码实现三对角矩阵,五对角矩阵,循环Toeplitz三对角的追赶法。追赶法是对稀疏矩阵的一种特殊解法,高效,稳定。完全开源,请随意使用与研究。

xixin2233的博客 2350

特殊矩阵的压缩存储

王道数据结构笔记

Curz酥的博客 3087
上一篇: 利用栈实现十进制与任意进制之间的转换
下一篇: 循环队列的顺序存储实现(入队,出队,清队,销毁队,遍历等)
CosmosSeed
博客等级 码龄9年 22粉丝 21原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值