NewQuant的设计(二)——MatrixComputation的领域分析

NewQuant的设计——MatrixComputation的领域分析

  MatrixComputation是NewQuant中最重要也是最大的一个模块,这个模块的领域分析要从回答几个问题开始。

一、矩阵的用途?

1.矩阵可以作为一个二维表充当容器;

2.矩阵用来表征一个线性方程组或LS问题;

3.矩阵作为特定模型的参数,例如多元正态分布的协方差矩阵

二、关于矩阵的计算有哪些?

1.基本运算例如相加、相减、相乘和转置,多元统计中的拉直,不同矩阵的拼接等等

2.高级矩阵分解运算,例如LU分解、QR分解和SVD分解(通常矩阵分解为解方程服务)

3.高级运算,例如求逆、求秩等。

  翻开《Matrix Computation》这本书(MatrixComputation模块的主要参考文献),研究过里面的算法之后可以发现,绝大部分解方程的算法(非迭代算法)需要做矩阵分解,将一个一般化的矩阵分解成若干特殊化的矩阵的乘积,然后依次解决相应的方程。

三、特殊的矩阵有哪些?

上下三角阵、上下带状阵、对称阵、对称带状阵、正交阵、置换阵、对角阵等等。

  下面再来看第一个问题,作为容器的矩阵行为和功能相对简单,如果要表征线性方程组的话,就必须考虑矩阵分解的问题。矩阵分解是将一般化的矩阵分解成一系列特殊矩阵的乘积。如此一来关于解方程的领域分析清晰了,解方程先做矩阵分解,不同的矩阵分解的方法产生不同形状的特殊矩阵,特殊矩阵对应的方程有特殊的解法。

  在来看第二个问题,高级计算的领域分析被前面的论述解决了,留下了基本计算的领域分析问题。从理论上讲,一个矩阵的转置或两个矩阵相加将产生一个新的矩阵,但是如果从数值计算效率的角度看,产生的新矩阵是一个“临时对象”,对于矩阵这种数据密集型对象来讲,临时对象的产生会严重影响性能。为了避年产生临时对象,基本计算只能是“形式上的”,例如矩阵相加产生一个轻量级的对象,该对象是矩阵,但是只是形式上表示两个矩阵相加。这也就是“延迟赋值”的技巧。

  下面总结MatrixComputation的领域分析结论,除了一般矩阵之外还要实现若干特殊矩阵,这些矩阵都有容器的功能,存储着矩阵数据。每一种特殊矩阵都有着自己的特殊解法,一般矩阵在做矩阵分解之后将解方程的工作委托给特殊矩阵。为了避免临时对象的产生,矩阵的基本运算只是形式上的,并不产生一个新矩阵作为计算结果。

时间: 2024-08-09 07:21:34

NewQuant的设计(二)——MatrixComputation的领域分析的相关文章

NewQuant的设计(一)——整体的领域设计

NewQuant的设计思路——整体的领域分析 “领域驱动设计(DDD)”是著名软件工程建模专家Eric Evans提出的一个重要概念,是“面向对象分析设计(OOAD)”的深化.当业务逻辑变得复杂,系统变得庞大时,OOAD会使人陷入“只见树木不见树林”的处境,而DDD可以指导设计人员暂时忽略掉琐碎细节,高屋建瓴的观察问题.如果要全面了解DDD,请阅读Eric Evans的著作<领域驱动设计>和<实现领域驱动设计>. 在NewQuant的设计中,DDD的思想给了我很大启发.简单直观地讲

(数字IC)低功耗设计入门(二)——功耗的分析

前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关于PT的功耗分析可以查阅其他资料,这里不涉及使用PT的进行功耗分析. (1)功耗分析与流程概述 上一个小节中讲解了功耗的构成,并且结合工艺库进行简要地介绍了功耗的计算.但是实际上,我们根本不可能人工地计算实际的大规模集成电路的功耗,我们往往借助EDA工具帮我们分析电路的功耗.这里我们就介绍一下EDA

ASP.NET MVC +EasyUI 权限设计(二)环境搭建

请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问common.cnblogs.com这个域名,一直出现"Aborted",非常的郁闷. 页面就是这样子的,不知道为什么,难道是不是我的3个终端有问题吧,还是园子的服务器有问题呢?还是路由器的问题呢?到现在这个问题还没解决,郁闷死了!弄得心情非常的不爽. 好吧,不在说这个问题了,开始我们的正

DeepEyes: 用于深度神经网络设计的递进式可视分析系统 (DeepEyes: Progressive Visual Analytics for Designing Deep Neural Networks)

深度神经网络,在模式识别问题上,取得非常不错的效果.但设计一个性能好的神经网络,需要反复尝试,是个非常耗时的过程.这个工作[1]实现了用于深度神经网络设计的可视分析系统,DeepEyes.该系统可以在DNNs训练过程中,提取数据,从网络整体效果,神经层和神经元角度,分析神经网络运行状态,进而协助用户更新DNNs. DeepEyes系统主要关注以下5种任务: 识别稳定层.在DNNs训练过程中,用户可以选择稳定的神经层,进行细节分析. 识别退化的神经元.当某个神经元对所有样本的反应都一样时,认为该神

GAEA Pollute v7.13 1CD(经过实践证明的污染物运动分析程序,被广泛用于垃圾填埋设计和环境补救领域)

GAEA产品: GAEA Winfence v2.30 1CD(创建详细,彩色地质截面图的工具) GAEA Winlog v4.50 1CD(创建钻井日志和测井曲线的工具) GAEA Winsieve v1.2 1CD(快速输入和打印结晶粒度分析曲线) ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ +  诚信合作,保证质量!!!长期有效:                                                             + 电.话

justinmind夜话:数据母板系列视频教程之原型设计二十一条军规

案例描述:使用数据母板实现原型设计二十一条军规 知识点: 数据母板 效果图: 本站在线效果预览:(原型文件) 原型下载地址:数据母板原型设计二十一条军规 .vp  数据母板原型设计二十一条军规.html 在线视频: 实现步骤:

iOS开发CoreAnimation解读之二——对CALayer的分析

iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二.几种系统的Layer类 1.CAEmitterLayer 2.CAGradientLayer 3.CAEAGLLayer 4.CAReplicatorLayer 5.CAScrollLayer 6.CAShapeLayer 7.CATextLayer 8.CATiledLayer 9.CATrans

程矢Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规

程矢Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规 案例描述:中继器实现原型设计二十一条军规 知识点: 中继器分页 效果图: 在线效果预览: AxShare在线效果预览: 原型下载地址:中继器原型设计二十一条军规 .rp 在线视频: 实现步骤: 更新中-..

u-boot学习(二):u-boot简要分析

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 看到不错的文章,不要添加收藏夹,想着以后有时间再看,因为很有可能你以后再也不会看它们了. 想写总结的文章,不要想着等到以后有时间了再总结,因为很有可能你以后更没有时间总结它们了. --送给自己 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++