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()$命令更适合.
最新文章
- centOS 6.7 中安装matlab R2014b
- C#联机获取公网IP
- python绘图中使用公式时,解决\frac{}{}出来的字体太小的问题
- sql 增加字段
- windows 开机启动(为了关闭虚拟机的那么多开机进程)
- tomcat 配置文件下载目录
- 解决版本冲突-使用SVN主干与分支功能
- Android开发之XML的创建和解析
- Java的redis 操作类-优化通用版本
- linux常用系统配置命令汇总
- Python 自动给数字前面补0
- jmeter从外部文件取值问题,如果文件中的参数值为纯数字形式的,jmeter会默认将其识别成int型数据
- Rest Project Performace Pressure Test
- 局域网里连接mysql服务器,其他人连接自己的mysql服务器
- java集合1
- [mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 解决方法
- Java的动态代理
- Windows Server 2008 R2 WSUS服务器的详细配置和部署
- Yarn 详解
- 用指令来构建IIS7