MTLAB: 稀疏矩阵的表示-sparse
我们在学习数值算法的过程中,发现像有限差分,谱方法和有限元方法的微分矩阵($\tt Differentiation~Matrices$)往往是稀疏的(即非零元素个数为$O(N)$,其中$N$为矩阵的维数)

$\tt SA=sparse(A)=SB-SB^T$
----------$\tt SB$--------------------------------------------------------------------------------------
(r,c) (value)
(1,2) 2/3
(1,3) -1/12
(2,3) 2/3
(2,4) -1/12
(3,4) 2/3
(3,5) -1/12
(4,5) 2/3
(1,6) 1/12
(4,6) -1/12
(5,6) 2/3
(1,7) -2/3
(2,7) 1/12
(5,7) -1/12
(6,7) 2/3
----------$\tt SB^T$--------------------------------------------------------------------------------------
(2,1) 2/3
(3,1) -1/12
(6,1) 1/12
(7,1) -2/3
(3,2) 2/3
(4,2) -1/12
(7,2) 1/12
(4,3) 2/3
(5,3) -1/12
(5,4) 2/3
(6,4) -1/12
(6,5) 2/3
(7,5) -1/12
(7,6) 2/3
$\tt SB = sparse(1:N-1,2:N,2/3,N,N)+sparse(1:N-2,3:N,-1/12,N,N)+sparse(1:2,N-1:N,1/12,N,N)+spare(1,N,-2/3,N,N);$
$\tt SA = SB-SB^T.$
$\tt A=full(SA) .$
SA与A矩阵在运算中是等价的!A矩阵还可以应用$\tt toeplitz()$命令组装.
思考:假如矩阵A是满的,那么稀疏形式的SA是不是很难输入?
答案是否定的,注意,在使用$\tt spare$时有一个前提条件:非零元素的数量级别必须为$O(N).$ 如果A真是满的, $\tt sparse$会很复杂,这时$\tt toeplitz()$命令更适合.
MTLAB: 稀疏矩阵的表示-sparse的更多相关文章
- scipy.sparse 稀疏矩阵
from 博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun 本文主要围绕scipy中的稀疏矩阵展开,也会介绍几种scipy之外的稀疏矩阵 ...
- Python 高维数组“稀疏矩阵”scipy sparse学习笔记
scipy 里面的sparse函数进行的矩阵存储 可以节省内存 主要是scipy包里面的 sparse 这里目前只用到两个 稀疏矩阵的读取 sparse.load() 转稀疏矩阵为普通矩阵 spars ...
- 转载:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
http://www.cnblogs.com/xbinworld/p/4273506.html 稀疏矩阵是指矩阵中的元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在9 ...
- 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
稀疏矩阵是指矩阵中的元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在90%甚至99%以上.因此我们需要有高效的稀疏矩阵存储格式.本文总结几种典型的格式:COO,CSR ...
- Matlab稀疏矩阵
一.矩阵存储方式 MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式 1.完全存储方式 将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中. 2.稀疏存储方式 仅存储矩阵所有的非零元 ...
- scipy.sparse的一些整理
一.scipy.sparse中七种稀疏矩阵类型 1.bsr_matrix:分块压缩稀疏行格式 介绍 BSR矩阵中的inptr列表的第i个元素与i+1个元素是储存第i行的数据的列索引以及数据的区间索引, ...
- Matlab - 基础知识
Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...
- AI学习---特征工程【特征抽取、特征预处理、特征降维】
学习框架 特征工程(Feature Engineering) 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 什么是特征工程: 帮助我们使得算法性能更好发挥性能而已 sklearn主 ...
- sklearn数据预处理
一.standardization 之所以标准化的原因是,如果数据集中的某个特征的取值不服从标准的正太分布,则性能就会变得很差 ①函数scale提供了快速和简单的方法在单个数组形式的数据集上来执行标准 ...
随机推荐
- poj 2115 Matrix
题意: 给出一个矩阵,有两种操作: 1.翻转给定的子矩阵: 2.查询a[i][j]的值. 思路: 树状数组是从小到大更新的. 这个题用二维树状数组可以解决,假设是一维树状数组, 0 0 0 0 0 0 ...
- centos7安装git
1.安装git依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUti ...
- (cvpr2019 ) Better Version of SRMD
SRMD的内容上篇,已经介绍,本文主要介绍SRMD的升级版,解决SRMD的诸多问题, 并进行模拟实验. 进行双三次差值(bicubic)===>对应matlab imresize() %% re ...
- Atom读写MarkDown插件选择,以及墙内安装markdown-preview-enhanced,及markdown和mermaid使用教程
1.Atom自带markdown-preview 功能太少,需要大量拓展. 2.markdown-preview-plus 功能还不错,但是其中的滚动条插件markdown-scroll-sync和最 ...
- sqlserver可将字符转成数字再进行sum,如果varchar类型中存放的都是数字
sqlserver语法: select sum(cast(score as int)) as score from 表名; 注意:int是整型,在实际操作中根据自己需要的类型转换.
- awk、sed、date命令使用
个人学习笔记总结 [root@a ~]# awk 'END{print NR}' c.txt #没错,这就是文件的行数,当然,这种统计方法不是linux下最快的,但也是一种思路3[root ...
- Linux开局配置注意事项
1.修改ssh配置文件远程端口号,防止攻击 sed -ri 's/“#Port 22”/“Port 10086”/g‘ /etc/ssh/sshd_config 2.修改ssh配置文件 ...
- nodejs笔记之连接mysql数据库
1.安装mysql模块: npm install mysql 2.引入mysql模块 创建一个server.js文件 const http = require("http"); c ...
- Spring中三种编程式事务的使用
引入事务管理器 @Autowired TransactionTemplate transactionTemplate; @Autowired PlatformTransactionManager tr ...
- range 小数据池介绍
1.range 2.小数据池 1. range 范围 [起始位置:终止位置:步长]range(起始位置,终止位置,步长) #顾头不顾尾 3.小数据池 小数据池,也称为小整数缓存机制,或者称为驻留机制等 ...