我们在学习数值算法的过程中,发现像有限差分,谱方法和有限元方法的微分矩阵($\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的更多相关文章

  1. scipy.sparse 稀疏矩阵

    from 博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun 本文主要围绕scipy中的稀疏矩阵展开,也会介绍几种scipy之外的稀疏矩阵 ...

  2. Python 高维数组“稀疏矩阵”scipy sparse学习笔记

    scipy 里面的sparse函数进行的矩阵存储 可以节省内存 主要是scipy包里面的 sparse 这里目前只用到两个 稀疏矩阵的读取 sparse.load() 转稀疏矩阵为普通矩阵 spars ...

  3. 转载:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB

    http://www.cnblogs.com/xbinworld/p/4273506.html 稀疏矩阵是指矩阵中的元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在9 ...

  4. 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB

    稀疏矩阵是指矩阵中的元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在90%甚至99%以上.因此我们需要有高效的稀疏矩阵存储格式.本文总结几种典型的格式:COO,CSR ...

  5. Matlab稀疏矩阵

    一.矩阵存储方式 MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式 1.完全存储方式 将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中. 2.稀疏存储方式 仅存储矩阵所有的非零元 ...

  6. scipy.sparse的一些整理

    一.scipy.sparse中七种稀疏矩阵类型 1.bsr_matrix:分块压缩稀疏行格式 介绍 BSR矩阵中的inptr列表的第i个元素与i+1个元素是储存第i行的数据的列索引以及数据的区间索引, ...

  7. Matlab - 基础知识

    Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...

  8. AI学习---特征工程【特征抽取、特征预处理、特征降维】

    学习框架 特征工程(Feature Engineering) 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 什么是特征工程: 帮助我们使得算法性能更好发挥性能而已 sklearn主 ...

  9. sklearn数据预处理

    一.standardization 之所以标准化的原因是,如果数据集中的某个特征的取值不服从标准的正太分布,则性能就会变得很差 ①函数scale提供了快速和简单的方法在单个数组形式的数据集上来执行标准 ...

随机推荐

  1. codeforces-3

    C Game"23" #include<iostream> using namespace std; int main() { long long n,m; long ...

  2. shell脚本中各类括号的作用(小结)

    技巧小结: 字符串比较用双中括号[[ ]]:算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) :shell命令及输出用小括号( )——左右不留空格 快速替换用花括号{ }——左右留 ...

  3. Beautiful Soup 解析html表格

    from bs4 import BeautifulSoup import urllib.request doc = urllib.request.urlopen('http://www.bkzy.or ...

  4. idea常用操作大全

    1.智能提示忽略大小写 Ctrl+Alt+s打开setting setting-->Editor-->General-->Code Completion 或者直接搜索Code Com ...

  5. 记录tiny6410 使用linux-2.6.28.6内核遇到starting kernel...的问题

    1\问题的解决主要是参考了tiny210相同的问题 2\/home/suxuandong/Documents/computer/linux_kernel/tiny6410/linux-2.6.28.6 ...

  6. 使用docker试用各种软件及docker-ES设置

    试用开源软件的优劣势 由于现在容器化的热度,大部分软件都有docker official镜像,那么使用docker就是试用软件很好的方法: 优势: 1.可以免去安装部署的过程. 2.不会对当前系统环境 ...

  7. java 几个实用的小工具

    1.除法运算 编程的人都知道,java中的“/”.“%”运算,其中前者为取整,后者取余数.那么有没有快捷的运算方法取正常的运算结果呢? 查了资料,发现很简单.代码如下: public static S ...

  8. spring-boot集成activiti的model遇到问题汇总

    按照网上的七拼八凑整合网页版的部署将遇到的问题归置如下: 本人的springboot版本是:1.5.13.RELEASE 工作流相关: <!--工作流--> <dependency& ...

  9. 问题 1672: 迷宫问题 (BFS)

    题目链接:https://www.dotcpp.com/oj/problem1672.html 问题 1672: 迷宫问题 时间限制: 1Sec 内存限制: 32MB 提交: 663 解决: 158 ...

  10. [转载]Oracle之xml的增删改查操作

    tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数组取值的方式获取,但起始值从1开始 一.查询(Q ...