基于Verilog的下三角矩阵求逆设计与实现

基于Verilog的下三角矩阵求逆设计与实现
基于Verilog的下三角矩阵求逆设计与实现

基于V erilog的下三角矩阵求逆设计与实现

杨丰瑞1,熊军洲2

(1.重庆重邮信科(集团)股份有限公司重庆400065)

(2.重庆邮电大学通信与信息工程学院重庆400065)

摘要:矩阵运算广泛应用于各类电路计算中,矩阵运算的硬件实现能够充分发挥硬件的速度和并行性,其中矩阵求逆是矩阵运算中重要的运算。根据矩阵求逆算法的基本思想,本文提出了一种最大阶数可达16×16的矩阵求逆方案,通过硬件描述语言Verilog建模,用Design Compile进行综合及进行modelsim仿真,仿真结果表明这种设计结构能够正确的计算出下三角矩阵的逆矩阵。

关键词:矩阵求逆,Verilog, 实现

【中图分类号】TN492 【文献标识码】A

Design and Implementation of Inverse Down Triangle Matrix Calculation Based on V erilog

Y ang Fengrui1,Xiong Junzhou2

(1.Chongqing Chongyou Information Technolog (Group)CO.,LTD.Chongqing)

(2.Chongqing University Of Post and Telecommunications

School Of Communication and Information Engineering,Chongqing) Abstract: Matrix operation is widely used in different kinds of circuit calculation. Hardware implementation of matrix operation can fully realize the speed and parallel of the hardware. Matrix inversion is a kind of very important matrix operation. According to the algorithm of inverse matrix calculation ,this article gives a design on inverse matrix which can reach a biggest rand of 16×16.The system is described in V erilog, which is compiled by Design Compile and verified in modelsim. The result shows that this design structure can be used for inverse matrix calculation.

Key words: inverse matrix; Verilog; implementation

1 引言

矩阵运算是数字信号处理领域的基本操作,广泛应用于各类电路计算当中。而矩阵求逆的难点在于矩阵求逆。目前传统的矩阵求逆算法多用处理器串行计算来实现,严重制约着计算速度的提高。为此,作者在研究并行处理结构和并行算法[1~2]的基础上,试图寻求一种适合硬件实现的求逆算法及其硬件结构。此外,在专用集成电路设计方面我国起步较晚,在矩阵求逆的硬件实现方面的研究还不多。随着集成电路制造工艺的提高,采用大量超大规模集成单元和微处理器构成多处理器并行系统已经成为提高计算速度的有效手段。因而,矩阵求逆算法的研究实现有着十分重要的意义。由于可逆矩阵都可以通过LU分解分成一个上三角矩阵和一个下三角矩阵[3],而要求的原矩阵的逆可以通过这两个三角矩阵的逆相乘得到[4],所以本文主要探讨的是下三角矩阵求逆的硬件实现。

2 算法介绍

假设以下矩阵A 为原矩阵,1-A 是A 的逆矩阵,n 是A 的维数。则:

1

1

0...001...000 (00)

...

1

E A A

-=

=?1111212221221

2

1

2

0...00...0...0...0...........................

...

n n nn

n n nn

a b a a b b a a a b b b =

?

由矩阵的乘法可知:

,,,()i

i j i k

k j k j

c a

b ==

*∑ (j<=i )

而:0,=j i c (j i ≠); 1,=j i c ( j i = )

根椐以上可知,可首先得到一些初始值:i i i i a b ,,/1= (i=1,2,…,n) 然后可得出计算1-A 其他值的递推公式: ∑-=*-

=1

,,,,)(1i j

k j k k

i i

i j i b a

a b =1

,,,()i i i i k k j k j

b a b -=-*∑(i=1,2,…,n ; j=1,2….,i -1)

3 硬件实现

3.1 总体设计结构

本文所设计的矩阵求逆算法模块(matrix_top )共分为:接口模块(regif ),控制模块(ctrl),地址产生模块(addrgen),运算处理模块(proc ),和存储器模块(mem )。

其中存储器模块包括输入存储器模块(inbuf )和输出存储器模块(outbuf )。总体结构图如图1所示:

图1 总体结构图

3.2 模块介绍

3.2.1接口模块(regif)

与外部的ZSP总线相连实现接口功能,数据通过接口模块写入到输入存储器或是控制寄存器中,当zio_sel为高电平时,写入数据到输入寄存器中,当zio_sel 为低电平时,写入数据到控制寄存器中,控制寄存器指示矩阵的维数和启动信号;当运算完成,数据都存放到输出寄存器后,此接口模块产生一个中断,通知ZSP从输出存储器(outbuf)中读出数据。

3.2.2控制模块(ctrl)

为一个状态数为5的有限状态机,产生整个运算状态信息,控制运算的进行。如图2所示

图2 ctrl模块中状态机示意图

当处于IDLE(即空闲)状态时,表示运算还未开始或是运算结束,此时finish信号为零。一旦接收到来自接口模块的启动运算信号时,即转为CHECK状态,CHECK状态用于对原矩阵对角线上的数据求倒数,并找出最大值,根据所求的最大值计算出矩阵归一化时的移位个数,当求得此归一化的移位个数时,即转为DIAG状态。DIAG状态表示对原矩阵对角线上的数据进行求倒运算,并根据归一化的移动个数进行截位,此运算完成后,即转为OTHER 状态,根据前面所述原理计算非对角线上的数据,全部数据运算完毕后,发出一个finish 信号,并转入FINISH状态。FINISH状态根据信号finish的反馈信号,对finish信号进行清零,并转入到下一个状态,即IDLE状态。

3.2.3地址产生模块(addrgen)

该模块主要用于产生读写数据的地址。当处于CHECK和DIAG两个状态时,该模块产生原矩阵对角线上的地址和逆矩阵对角线的地址。当处于计算非对角线的数据时,该模块根据矩阵在存储器中存放的位置(矩阵数据在存储器中按行存放)及计算原理,依次计算时原矩阵和逆矩阵的读地址和逆矩阵的写数据地址。

3.2.4处理模块(proc)

对矩阵进行求逆运算,从输入存储器中读取原矩阵的信息,求逆后将所得的结果数据存入到输出矩阵中。直接利用存在的除法器和乘法器[5~6],根据前述算法介绍部分的计算原理,

进行运算。先调用除法器作流水线除法,求出逆矩阵对角线上的数据(对原矩阵对角线上的数据求倒数),并找出其中最大值,根据此最大值的符号位数计算归一化的移位个数;然后计算逆矩阵对角线上的数据,利用所求的归一化移位个数进行归一化操作,并将结果存入到输出存储器;计算完对角线上的数据之后,根据算法介绍部分的算法描述调用乘法器将非对角线上的数据算出并归一化存入到输出存储器。

3.2.5 存储器模块(mem)

分为输入存储器(inbuf)和输出存储器(outbuf)两个部分。输入存储器(inbuf)用来接收ZSP传送的数据,存放为原矩阵,只存放矩阵的下三角阵,在运算的过程中,输入存储器根据地址产生模块(addrgen)产生的地址和片选信号将数据依次输出到处理模块(proc);输出存储器(outbuf)用来接收从处理模块(proc)送来的结果数据,存放为逆矩阵,只存放矩阵的下三角阵,在运算的过程中,输出存储器也不断地根据地址产生模块(addrgen)产生的地址和片选信号将数据依次输出到处理模块(proc)进行计算,输出存储器(outbuf)的数据可由ZSP直接读出。

3.3硬件模块实现框图如图3所示

图3 硬件模块实现框图

3.4 硬件资源及运行时间

直接利用已设计的乘法器和除法器,用到的乘法器资源为6个,除法器资源为1个。该矩阵求逆电路完成一次16×16的矩阵求逆运算所需时钟周期为1000个时钟周期。

4仿真验证

电路的仿真采用MENTOR公司的ModelSim5.5d软件,图4为输入一个16×16的原矩阵,图5为该原矩阵下所求得的结果,可以看出,当计算完毕,发出一个中断信号matrix_irq (为高电平),然后zrdata依次读出输出存储器(outbuf)中的数据,经验结果是正确的。

图4 modelsim仿真波形(输入原矩阵)

图5 modelsim仿真波形(输出逆矩阵)

5 结束语

本文提出了一种用于下三角矩阵求逆的并行计算阵列,阵列中各处理模块单元之间的互联规则简单,此设计能够充分发挥硬件的速度,且易于修改矩阵的规模,适用于科学研究和工程应用中矩阵求逆的实时求解。作者用Verilog语言对本设计进行了描述[7],并用SYNOPSYS公司的DC及modelsim对其进行综合和仿真,最终结果表明此硬件结构能够正确地求解出下三角矩阵的逆。

参考文献

[1] K.Hwang, F.A.Briggs. Computer Architecture and Parallel Processing. McGraw-Hill,1994.

[2] 陈国良. 并行算法的设计与分析. 高等教育出版社,1994.

[3] 黄廷祝,钟守铭,李正良. 矩阵理论[M]. 北京:高等教育出版社,2003.

[4] 同济大学数学教研室. 线性代数[M]. 北京:高等教育出版社,1993.

[5] Ma G K, Taylor F J. Multiplier Policies for Digital Signal Processing[J]. IEEE A SSP

Magazine,1990,7(1):6~20.

[6] 傅志晖,程东方,梅其元等. 32位浮点阵列乘法器的设计及算法比较.微电子学,2003,

33(3).

[7] 夏宇闻. V erilog数字系统设计教程.第2版.北京航空航天大学出版社,2008.

作者简介:

杨丰瑞(1963-),男,重庆人,教授,主研移动通信,电信新业务等;

熊军洲(1985-),男,湖北安陆人,硕士生,主研移动通信。

重庆市信息制造业重大科技专项《TD-SCDMA增强型终端基带芯片研发及产业化》 (CSTC,2009AA2037).

基于Verilog的下三角矩阵求逆设计与实现

基于V erilog的下三角矩阵求逆设计与实现 杨丰瑞1,熊军洲2 (1.重庆重邮信科(集团)股份有限公司重庆400065) (2.重庆邮电大学通信与信息工程学院重庆400065) 摘要:矩阵运算广泛应用于各类电路计算中,矩阵运算的硬件实现能够充分发挥硬件的速度和并行性,其中矩阵求逆是矩阵运算中重要的运算。根据矩阵求逆算法的基本思想,本文提出了一种最大阶数可达16×16的矩阵求逆方案,通过硬件描述语言Verilog建模,用Design Compile进行综合及进行modelsim仿真,仿真结果表明这种设计结构能够正确的计算出下三角矩阵的逆矩阵。 关键词:矩阵求逆,Verilog, 实现 【中图分类号】TN492 【文献标识码】A Design and Implementation of Inverse Down Triangle Matrix Calculation Based on V erilog Y ang Fengrui1,Xiong Junzhou2 (1.Chongqing Chongyou Information Technolog (Group)CO.,LTD.Chongqing) (2.Chongqing University Of Post and Telecommunications School Of Communication and Information Engineering,Chongqing) Abstract: Matrix operation is widely used in different kinds of circuit calculation. Hardware implementation of matrix operation can fully realize the speed and parallel of the hardware. Matrix inversion is a kind of very important matrix operation. According to the algorithm of inverse matrix calculation ,this article gives a design on inverse matrix which can reach a biggest rand of 16×16.The system is described in V erilog, which is compiled by Design Compile and verified in modelsim. The result shows that this design structure can be used for inverse matrix calculation. Key words: inverse matrix; Verilog; implementation 1 引言 矩阵运算是数字信号处理领域的基本操作,广泛应用于各类电路计算当中。而矩阵求逆的难点在于矩阵求逆。目前传统的矩阵求逆算法多用处理器串行计算来实现,严重制约着计算速度的提高。为此,作者在研究并行处理结构和并行算法[1~2]的基础上,试图寻求一种适合硬件实现的求逆算法及其硬件结构。此外,在专用集成电路设计方面我国起步较晚,在矩阵求逆的硬件实现方面的研究还不多。随着集成电路制造工艺的提高,采用大量超大规模集成单元和微处理器构成多处理器并行系统已经成为提高计算速度的有效手段。因而,矩阵求逆算法的研究实现有着十分重要的意义。由于可逆矩阵都可以通过LU分解分成一个上三角矩阵和一个下三角矩阵[3],而要求的原矩阵的逆可以通过这两个三角矩阵的逆相乘得到[4],所以本文主要探讨的是下三角矩阵求逆的硬件实现。

2.4直接三角分解法

§4 直接三角分解法 一、教学设计 1.教学内容:Doolittle 分解法、Crout 分解法,紧凑格式的Doolittle 分解法、部分选主元的Doolittle 分解法。 2.重点难点:紧凑格式的Doolittle 分解法、部分选主元的Doolittle 分解法。 3.教学目标:了解直接三角分解法的基本思想,掌握基本三角分解法及其各种变形。 4.教学方法:讲授与讨论。 二、教学过程 在上节中我们用矩阵初等变换来分析Gauss 消去法,得到了重要的矩阵LU 分解定理(定理 3.1,3.2)。由此我们将得到Gauss 消去法的变形:直接三角分解法。直接三角分解法的基本想法是,一旦实现了矩阵A 的LU 分解,那么求解方程组b x =A 的问题就等价于求解两个三角形方程组 (1)b y =L ,求y ; (2)y x =U ,求x 。 而这两个三角形方程组的求解是容易的。下面我们先给出这两个三角形方程组的求解公式;然后研究在LU A =或LU PA =时,U L ,的元素与A 的元素之间的直接关系。 4-0 三角形线性方程组的解法 设 ????? ???????= nn n n l l l l l l L 21222111, 11121222n n nn u u u u u U u ??????=???????? 则b y =L 为下三角形方程组,它的第i 个方程为 ),2,1(11,22111 n i b y l y l y l y l y l i i ii i i i i i i j j ij ==++++=--=∑ 假定0≠ii l ,按n y y y ,,,21 的顺序解得: ??? ?? ? ?=+-==∑-=) ,,3,2(/1111 11n i l b y l y l b y ii i i j j ij i 上三角形方程组y x =U 的第i 个方程为

三角矩阵

三角矩阵 在中,三角矩阵是的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。三角矩阵可以看做是一般方阵的一种简化情形。比如,由于带三角矩阵的矩阵方程容易求解,在解多元线性方程组时,总是将其系数矩阵通过初等变换化为三角矩阵来求解;又如三角矩阵的行列式就是其对角线上元素的乘积,很容易计算。有鉴于此,在等分支中三角矩阵十分重要。一个可逆矩阵A可以通过变成一个下三角矩阵L与一个上三角矩阵U的乘积。 描述 一个如下形状的: 被称为下三角矩阵;同样的,一个如下形状的矩阵: 被称为上三角矩阵。 上(下)三角矩阵乘以系数后也是上(下)三角矩阵;上(下)三角矩阵间的加减法和运算的结果仍是上(下)三角矩阵;上(下)三角矩阵的逆也仍然是上(下)三角矩阵。这些事实说明:所有上(下)三角矩阵的集合以及相应的运算构成一个方形矩阵集合的一个子代数。然而要注意的是上三角矩阵与下三角矩阵的乘积一般并不是三角矩阵。 特殊的三角矩阵 严格三角矩阵

一个上(下)三角矩阵是严格上(下)三角矩阵其上的系数都为零。所有的是严格上(下)三角矩阵也形成一个子代数。所有的严格三角矩阵都是。 单位三角矩阵 一个上(下)三角矩阵是单位上(下)三角矩阵其上的系数都为1。单位三角矩阵都是幺幂矩阵。高斯矩阵 高斯矩阵是是单位三角矩阵中的一种,除了一列的系数以外,其他系数都是零。这类矩阵是中基本操作的矩阵体现,因此也叫做基元矩阵或高斯变换矩阵。一个下三角的高斯矩阵为: 高斯矩阵的逆仍然是高斯矩阵。实际上, 即是说一个高斯矩阵的逆是将其非对角线上元素加上负号后得到的矩阵。

列主元三角分解法在matlab中的实现

列主元三角分解法在matlab中的实现 摘要:介绍了M atlab语言并给出用M atlab语言实现线性方程组的列主元三角分解法,其有效性已在计算机实现中得到了验证。 关键词:M atlab语言;高斯消去法;列主元三角分解法 0前言 M atlab是M atrix Laboratory(矩阵实验室)的缩写,它是由美国M athwork公司于1967年推出的软件包,现已发展成为一种功能强大的计算机语言。它编程简单,使用方便,在M a tlab环境下数组的操作与数的操作一样简单,进行数学运算可以像草稿纸一样随心所欲,使计算机兼备高级计算器的优点。M atlab语言具有强大的矩阵和向量的操作功能,是Fo rtran和C语言无法比拟的;M a tlab语言的函数库可任意扩充;语句简单,内涵丰富;还具有二维和三维绘图功能且使用方便,特别适用于科学和工程计算。 在科学和工程计算中,应用最广泛的是求解线性方程组的解,一般可用高斯消去法求解,如果系数矩阵不满足高斯消去法在计算机上可行的条件,那么消元过程中可能会出现零主元或小主元,消元或不可行或数值不稳定,解决办法就是对方程组进行行交换或列交换来消除零主元或小主元,这就是选主元的思想。 1 定义 列主元三角分解:如果A为非奇异矩阵,则存在排列矩阵P,使PA=LU,其中L为单位下三角矩阵,U为上三角阵。列主元三角分角法是对直接三角分解法的一种改进,主要目的和列主元高斯消元法一样,

就是避免小数作为分母项. 2 算法概述 列主元三角分解法和普通三角分解法基本上类似,所不同的是在构造Gauss 变换前,先在对应列中选择绝对值最大的元素(称为列主元),然后实施初等行交换将该元素调整到矩阵对角线上。 例如第)1,,2,1(-=n k 步变换叙述如下: 选主元:确定p 使{}1)1( max -≤≤-=k ik n i k k pk a a ; 行交换:将矩阵的第k 行和第p 行上的元素互换位置,即 . 实施Gauss 变换:通过初行变换,将列主对角线以下的元素消为零.即 3 列主元三角分解在matlab 中的实现

总结求矩阵的逆矩阵的方法

总结求矩阵的逆矩阵的方法 课程名称: 专业班级: 成员组成: 联系方式:

摘要:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快 捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 关键词:矩阵逆矩阵方法 Method of finding inverse matrix Abstract: Matrix in linear algebra is the main content,many prictical problems with the matrix theory is simple and fast. The inverse matrix andmatrix theory the important content, the solution of inverse matrix nature has become one of the main research contents of linear algebra. The paper will give some method of finding inverse matrix. Key words: Matrix inversematrix method

正文: 1.引言:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 2.求矩阵的逆矩阵的方法总结: 2.1 矩阵的基本概念 矩阵,是由个数组成的一个行列的矩形表格,通常用大写字母表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素表示,其中下标都是正整数,他们表示该元素在矩 阵中的位置。比如,或表示一个矩阵,下标表示元素位于该矩阵的第行、第列。元素全为零的矩阵称为零矩阵。 特别地,一个矩阵,也称为一个维列向量;而一个矩阵,也称为一个维行向量。 当一个矩阵的行数与烈数相等时,该矩阵称为一个阶方阵。对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称为付对 角线。若一个阶方阵的主对角线上的元素都是,而其余元素都是零,则称 为单位矩阵,记为,即:。如一个阶方阵的主对角线上(下)方的元素都是零,则称为下(上)三角矩阵,例如, 是一个阶下三角矩阵,而则是一个阶上三角矩阵。今后我们用表示数域上的矩阵构成

三角矩阵在压缩存储下的转置矩阵源代码

#include #include #define max 20 #define zero 0 typedef struct{ int i,j,v; }node; typedef struct{ node data[max]; int m; }TSmatrix; TSmatrix *Setmatrix(){ //建三对角矩阵TSmatrix *T; T=(TSmatrix *)malloc(sizeof(TSmatrix)); printf("请输入矩阵行数或列数:\n"); scanf("%d",&T->m); printf("建立三对角矩阵:\n"); for(int n=0;n<3*T->m-2;n++) scanf("%d%d%d",&T->data[n].i,&T->dat a[n].j,&T->data[n].v); return T; } TSmatrix *Trabsmatrix(TSmatrix *T){ //三对角矩阵转置 int n,k,temp; TSmatrix *F; F=(TSmatrix *)malloc(sizeof(TSmatrix)); F->m=T->m; for(n=0;n<3*T->m-2;n++){ //将结点信息存入新三元组表中 temp=2*T->data[n].j+T->data[n].i; //计算待存入三元数组下标 F->data[temp].i=T->data[n].j; F->data[temp].j=T->data[n].i; F->data[temp].v=T->data[n].v; } return F; } void TSmatrixout(TSmatrix *T){ //三对角矩阵输出 int a,b,n; n=0; for(a=0;am;a++){ for(b=0;bm;b++){ if(T->data[n].i==a&&T->data[n].j==b){ printf("%-5d",T->data[n].v); n++; } else printf("%-5d",zero); } printf("\n"); } } void main(){ TSmatrix *T; T=Setmatrix(); printf("三对角矩阵:\n"); TSmatrixout(T); T=Trabsmatrix(T); printf("转置后三对角矩阵:\n"); TSmatrixout(T); } 问题分析: 本程序要求实现对压缩存储下的三对角矩阵进行转置,为实现上述功能,需要解决的关键问题是三对角矩阵压缩存储及转置过程。 概要设计: 利用三元组表以行序为主序压缩存储三对角矩阵。转置时,先利用三元数组中的行标i 和列标j计算出待放入新三元数组的下标temp。由于转置时需要将行标和列标交换,所以temp=2*j+i。找出待存入的下标后,将相应的信息存入下标为temp的三元数组中。 详细设计:

总结求矩阵的逆矩阵的方法

总结求矩阵的逆矩阵的方法-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

总结求矩阵的逆矩阵的方法 课程名称: 专业班级: 成员组成: 联系方式:

摘要:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数 研究的主要内容之一.本文将给出几种求逆矩阵的方法. 关键词:矩阵逆矩阵方法 Method of finding inverse matrix Abstract: Matrix in linear algebra is the main content,many prictical problems with the matrix theory is simple and fast. The inverse matrix andmatrix theory the important content, the solution of inverse matrix nature has become one of the main research contents of linear algebra. The paper will give some method of finding inverse matrix. Key words: Matrix inversematrix method

正文: 1.引言:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 2.求矩阵的逆矩阵的方法总结: 2.1 矩阵的基本概念 矩阵,是由个数组成的一个行列的矩形表格,通常用大写字母表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素表示,其中下标都是正整数,他们表示该元素 在矩阵中的位置。比如,或表示一个 矩阵,下标表示元素位于该矩阵的第行、第列。元素全为零的矩阵称为零矩阵。 特别地,一个矩阵,也称为一个维列向量;而一个矩阵,也称为一个维行向量。 当一个矩阵的行数与烈数相等时,该矩阵称为一个阶方阵。对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称 为付对角线。若一个阶方阵的主对角线上的元素都是,而其余元素都是零,则称为单位矩阵,记为,即:。如一个阶

第四章线性方程组直接法,矩阵三角分解

第四章 习题答案 1。用Gauss 消去法解方程组 1231231 2323463525433032 x x x x x x x x x ++=?? ++=??++=? 解:方程组写成矩阵形式为12323463525433032x x x ?????? ? ? ? = ? ? ? ? ? ????? ?? 对其进行Gauss 消去得12323441 4726002x x x ?? ???? ? ? ? ?-= ? ? ? ? ? ?????-?? 得方程组12312323 32346 131 44 822 24 x x x x x x x x x ++=?=-???? -=-?=????=?-=-?? 2。用Gauss 列主元素消去法解方程组 1233264107075156x x x -?????? ? ? ?-= ? ? ? ? ? ?-???? ?? 解:因为第一列中10最大,因此把10作为列主元素 1233264107075156x x x -?????? ? ? ?-= ? ? ? ? ? ?-??????12r r ????→1231070732645156x x x -?????? ? ? ?-= ? ? ? ? ? ?-???? ?? 21 3113 10122 31070716106101055052 2r r r r x x x +-? ??? ? ?-?? ? ? ? ? ????→-= ? ? ? ? ? ??? ? ?????23 r r ????→123107075505221 61061010x x x ? ??? ? ?-?? ? ? ? ? ?= ? ? ? ? ? ? ?? ? ?-????

(完整版)逆矩阵的几种求法与解析(很全很经典)

逆矩阵的几种求法与解析 矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 1.利用定义求逆矩阵 定义: 设A 、B 都是n 阶方阵, 如果存在n 阶方阵B 使得AB= BA = E, 则称A 为可逆矩阵, 而称B 为A 的逆矩阵.下面举例说明这种方法的应用. 例1 求证: 如果方阵A 满足A k= 0, 那么EA 是可逆矩阵, 且 (E-A )1-= E + A + A 2+…+A 1-K 证明 因为E 与A 可以交换, 所以 (E- A )(E+A + A 2+…+ A 1-K )= E-A K , 因A K = 0 ,于是得 (E-A)(E+A+A 2+…+A 1-K )=E , 同理可得(E + A + A 2+…+A 1-K )(E-A)=E , 因此E-A 是可逆矩阵,且 (E-A)1-= E + A + A 2+…+A 1-K . 同理可以证明(E+ A)也可逆,且 (E+ A)1-= E -A + A 2+…+(-1)1-K A 1-K . 由此可知, 只要满足A K =0,就可以利用此题求出一类矩阵E ±A 的逆矩阵. 例2 设 A =? ? ?? ? ???? ???0000 30000020 0010,求 E-A 的逆矩阵. 分析 由于A 中有许多元素为零, 考虑A K 是否为零矩阵, 若为零矩阵, 则可以采用例2 的方法求E-A 的逆矩阵. 解 容易验证

A 2 =????????? ???0000000060000200, A 3=? ? ?? ? ? ? ?? ???00000000 00006000 , A 4=0 而 (E-A)(E+A+ A 2+ A 3)=E,所以 (E-A)1-= E+A+ A 2+ A 3= ? ? ?? ? ???????1000 31006210 6211. 2.初等变换法 求元素为具体数字的矩阵的逆矩阵,常用初等变换法.如果A 可逆,则A 可通过初等变换,化为单位矩阵I ,即存在初等矩阵S P P P ,,21Λ使 (1)s p p p Λ21A=I ,用A 1-右乘上式两端,得: (2) s p p p Λ21I= A 1- 比较(1)(2)两式,可以看到当A 通过初等变换化为单位矩阵的同时,对单位矩阵I 作同样的初等变换,就化为A 的逆矩阵A 1-. 用矩阵表示(A I )??? →?初等行变换 为(I A 1-),就是求逆矩阵的初等行变换法,它是实际应用中比较简单的一种方法.需要注意的是,在作初等变换时只允许作行初等变换.同样,只用列初等变换也可以求逆矩阵. 例1 求矩阵A 的逆矩阵.已知A=???? ? ?????521310132. 解 [A I]→??????????100521010310001132→???? ? ?????001132010310100521 → ??????????--3/16/16/1100010310100521→???? ??????-----3/16/16/110012/32/10103/46/136/1001

上三角矩阵

1.题目:请找出矩阵(上三角矩阵)的规律,并使用Java实现任意N(N为整数,1 2) { a[i][j] = a[i - 1][j] + i - 1; } else if (j > 1) { a[i][j] = i + j - 1 + a[i][j - 1]; } } } for(int m = 1;m<=a.length-1;m++){ for(int k =1;k<=a[m].length-1;k++){ if(a[m][k]==0){ continue; }else

三角矩阵

三角矩阵 在线性代数中,三角矩阵是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。三角矩阵可以看做是一般方阵的一种简化情形。比如,由于带三角矩阵的矩阵方程容易求解,在解多元线性方程组时,总是将其系数矩阵通过初等变换化为三角矩阵来求解;又如三角矩阵的行列式就是其对角线上元素的乘积,很容易计算。有鉴于此,在数值分析等分支中三角矩阵十分重要。一个可逆矩阵A可以通过LU分解变成一个下三角矩阵L与一个上三角矩阵U的乘积。 描述 一个如下形状的矩阵: 被称为下三角矩阵;同样的,一个如下形状的矩阵: 被称为上三角矩阵。 上(下)三角矩阵乘以系数后也是上(下)三角矩阵;上(下)三角矩阵间的加减法和乘法运算的结果仍是上(下)三角矩阵;上(下)三角矩阵的逆也仍然是上(下)三角矩阵。这些事实说明:所有上(下)三角矩阵的集合以及相应的运算构成一个方形矩阵集合的一个子代数。然而要注意的是上三角矩阵与下三角矩阵的乘积一般并不是三角矩阵。 特殊的三角矩阵

严格三角矩阵 一个上(下)三角矩阵是严格上(下)三角矩阵当且仅当其主对角线上的系数都为零。所有的是严格上(下)三角矩阵也形成一个子代数。所有的严格三角矩阵都是幂零矩阵。 单位三角矩阵 一个上(下)三角矩阵是单位上(下)三角矩阵当且仅当其主对角线上的系数都为1。单位三角矩阵都是幺幂矩阵。 高斯矩阵 高斯矩阵是是单位三角矩阵中的一种,除了一列的系数以外,其他系数都是零。这类矩阵是高斯消去法中基本操作的矩阵体现,因此也叫做基元矩阵或高斯变换矩阵。一个下三角的高斯矩阵为: 高斯矩阵的逆仍然是高斯矩阵。实际上,

矩阵求逆方法大全-1

求逆矩阵的若干方法和举例 苏红杏 广西民院计信学院00数本(二)班 [摘 要] 本文详细给出了求逆矩阵的若干方法并给出相应的例子,以供学习有关矩阵方面 的读者参考。 [关键词] 逆矩阵 初等矩阵 伴随矩阵 对角矩阵 矩阵分块 多项式等 引 言 在我们学习《高等代数》时,求一个矩阵的逆矩阵是一个令人十分头痛的问题。但是,在研究矩阵及在以后学习有关数学知识时,求逆矩阵又是一个必不可缺少的知识点。为此,我介绍下面几种求逆矩阵的方法,供大家参考。 定义: n 阶矩阵A 为可逆,如果存在n 阶矩阵B ,使得E BA AB ==,这里E 是n 阶单位矩阵,此时,B 就称为A 的逆矩阵,记为1-A ,即:1-=A B 方法 一. 初等变换法(加边法) 我们知道,n 阶矩阵A 为可逆的充分必要条件是它能表示成一系列初等矩阵的乘积A=m Q Q Q 21, 从而推出可逆矩阵可以经过一系列初等行变换化成单位矩阵。即,必有一系列初等矩阵 m Q Q Q 21使 E A Q Q Q m m =-11 (1) 则1-A =E A Q Q Q m m =-11 (2) 把A ,E 这两个n 阶矩阵凑在一起,做成一个n*2n 阶矩阵(A ,E ),按矩阵的分块乘法,(1)(2)可以合并写成 11Q Q Q m m -(A ,E )=(11Q Q Q m m -,A ,E Q Q Q m m 11 -)=(E ,1-A ) (3) 这样就可以求出矩阵A 的逆矩阵1-A 。 例 1 . 设A= ???? ? ??-012411210 求1-A 。 解:由(3)式初等行变换逐步得到: ????? ??-100012010411001210→ ????? ??-100012001210010411 →???? ? ??----123200124010112001→

三 矩阵直接三角分解法

矩阵直接三角分解法 1、实验目的: 求解方程组Ax=b A=[1 2 -12 8; 5 4 7 -2; -3 7 9 5; 6 -12 -8 3], b=[27; 4; 11; 49] 2、实验步骤: 添加库函数 #include "stdafx.h" #include "math.h" 3、代码: #include "stdafx.h" #include "math.h" void main() { float x[4]; int i; float a[4][5]={1,2,-12,8,27,5,4,7,-2,4,-3,7,9,5,11,6,-12,-8,3,49}; void DirectLU(float*,int,float[]); DirectLU(a[0],4,x); for(i=0;i<=3;i++)printf("x[%d]=%f\n",i,x[i]); } void DirectLU(float*u,int n,float x[]) {

int i,r,k; for(r=0;r<=n-1;r++) { for(i=r;i<=n;i++) for(k=0;k<=r-1;k++) *(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i)); for(i=r+1;i<=n-1;i++) { for(k=0;k<=r-1;k++) *(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r)); *(u+i*(n+1)+r)/=*(u+r*(n+1)+r); } } for(i=n-1;i>=0;i--) { for(r=n-1;r>=i+1;r--) *(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r]; x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i)); } }

矩阵及逆矩阵的求法

矩阵的可逆性与逆矩阵的求法 目录 摘要 (1) 第1章.矩阵 (2) 1.1矩阵的定义 (2) 1.2矩阵的运算 (2) 第2章.矩阵的可逆性及逆矩阵 (5) 2.1矩阵的基本概念 (5) 2.2矩阵可逆的判断方法 (6) 2.3矩阵可逆性的求法 (10) 第3章.逆矩阵的拓展 (17) 3.1广义逆矩阵的引入 (17) 3.2广义逆矩阵的定义及存在 (17) 第4章.总结 (21) 参考文献 (22) 致谢 (23) 附件:论文英文简介

矩阵的可逆性与逆矩阵的求法 [摘要]:矩阵理论是现代代数学的重要分支理论之一,它也为现代科技及现代经济理论研究提供不可或缺的数学支持。在线性代数研究中引入矩阵的目的之一就是为了研究线性方程组B AX 求解及更一般的矩阵方程求解提供数学工具,其中矩阵的可逆性及逆矩阵的求法是最主要的内容。本文从矩阵的基本概念及运算入手,主要探讨和归纳矩阵可逆性的四种判定方法和求逆矩阵的五种方法,并引进Matlab这一数学软件求逆矩阵的程序,同时关注广义逆矩阵意义及求法。 [关键词]:矩阵可逆性逆矩阵广义逆求法

矩阵可逆性的判断和可逆矩阵的求法是矩阵理论学习的重点与难点,也是研究矩阵性质及运算中必不可少的一部分。本文在分析和归纳判断矩阵的可逆性和逆矩阵的求法,给出了四种判断矩阵可逆的方法,其中有初等矩阵的应用,有行列式的应用,还有向量的线性无关和线性方程组的应用。逆矩阵的求法给出了五种方法:分别是行变换、列变换、伴随矩阵、分块矩阵法以及Matlab 软件的解法,同时也讨论了广义逆矩阵的求法。对矩阵可逆性的判断与逆矩阵的求法将会给矩阵的学习带来很大的帮助。 第1章 矩 阵 1.1矩阵的定义 定义1 由st 个数ij c 排成一个s 行t 列的表 ???? ?? ? ??st s s t t c c c c c c c c c 2 1 2222111211 叫作一个s 行t 列(或t s ?)矩阵,ij c 叫作这个矩阵的元素。 定义2 矩阵的行(列)初等变换指的是对一个矩阵施行的下列变换: )(i 交换矩阵的两行(列); )(ii 用一个不等于零的数乘矩阵的某一行(列),即用一个不等于零的数乘矩阵的某一行(列)的元素; )(iii 用某一数乘矩阵的某一行(列)后加到另一行(列),即用某一数乘矩阵的某一行(列)的每一元素后加到另一行(列)的对应元素上。 矩阵的初等变换在线性方程组求解,求矩阵的秩及求矩阵的逆矩阵方面都有重要的作用。 1.2矩阵运算 定义1 数域F 的数a 与F 上一个n m ?矩阵)(ij a A =的乘积aA 指的是n m ?矩阵 )(ij aa ,求数与矩阵的乘积的运算叫作数与矩阵的乘法。 定义2 两个n m ?矩阵)(),(ij ij b B a A ==的和B A +指的是n m ?矩阵)(ij ij b a +,求两

上三角矩阵代数

上三角矩阵代数 摘 要 本文主要研究上三角代数的性质及其与路代数的关系,建立了上三角代数与有向图的路代数的同构映射.定义了可上三角化代数()n P K 和上三角化矩阵P , ()n P K 是所有形如1P TP -的矩阵的集合所形成的代数(它的结合法是矩阵的加法和乘法),其中T ∈()n T K ,P ∈()n M K ,且P 可逆,称P 为()n P K 的上三角化矩阵.初步探讨了()n M K 的子代数是否是可上三角化代数,若是可上三角化代数,其上三角化矩阵是否唯一.具体讨论了n=2的情况,最终由()n M K 的可上三角化子代数的个数有限得出()n M K 至少有一个可上三角化代数的上三角化矩阵不唯一地结论. 关键词:上三角矩阵代数,有向图,路代数,可上三角化代数,上三角化矩阵 HIGHER TRIANGULAR MATRIX ALGEBRAS

ABSTRACT In this paper, we study upper triangular matrix algebras, and its connection with path algebras. The isomorphism between upper triangular matrix algebra and the corresponding path algebra is given. As a generalization, upper triangulable matrix algebras ()n P K and upper triangulable matrix P are defined and studied. ()n P K consisting of all matrices like 1P TP -(its combination is the addition and multiplication of matrices), Among them T ∈()n T K ,P ∈()n M K and P is reversible. we call P is the upper triangulable matrix of ()n P K . We also discuss whether the subalgebra of ()n M K is a upper triangular matrix algebra and the upper triangulable matrix of a upper triangular matrix algebra is unique. We also give a concrete example of n=2 to illustrate our theory. Finally we draw a conclusion that there is at least one upper triangular matrix algebra of ()n M K which its upper triangulable matrix is not unique . KEY WORDS : upper triangle matrix algebras ,quivers ,path algebras ,upper triangular matrix algebras ,upper triangulable matrix 目录

矩阵求逆中的上三角阵求逆

矩阵求逆中的上三角阵求逆 1.背景 ? 常见方法: – 伴随矩阵法 – 初等行变换法 – Gauss-Jordan 消元法 – 矩阵分解法 ? L-U 分解法 ? QR 分解法 ? SVD 分解 ? 满秩分解 ? Jordan 分解 ? 矩阵分解后再求逆矩阵的优点: – 三角阵大量元素为0, – 正交阵的逆是其转置矩阵, – 酉矩阵的逆是其共轭转置矩阵, 这些特性利于求得逆矩阵。 2.L-U 矩阵分解法 ? 分三个步骤: – L-U 分解 – 上三角阵求逆 – 矩阵乘法 3.上三角阵求逆 我们采用初等行变换先得到三角矩阵逆矩阵的一般公式。对于n 阶上三角矩阵U ,得到增广矩阵如下: 1112121 22212 11.1n n n n nn u u u l u u A l l u ????????????=????? ?????? ? 1112131411 12131422232422 2324133 3433 3444441111u u u u v v v v u u u v v v U U u u v v u v -???????????????????==?????????????? ? ?? ?111. A U L ---=

1112122 21 01(|)001n n nn U U U U U U I U ?? ? ?= ? ? ?? ? L L M M O M O L 在求逆过程中,先计算逆矩阵主对角线上得元素值,即取原矩阵主对角元素的倒数。然 后再求与矩阵主对角线平行且最接近的那一个斜列上元素值,接着依次求所有主对角线平行斜列的元素值。 由以上步骤可以给出U 逆矩阵V 的计算公式: 1 1(1,2,...,) (1,2,...,1;1,...,) ii ii j kj ik k i ij ii v i n u v u v i n n j i n u =+?==???? ? ?=-=--=+?? ∑ 由上式及步骤分析可以得到逆矩阵求解流程如下: 1112 122200 0n n V V V V V V ?? ? ? ? ??? L L M M O M L 在流程图帮助下我们可以做出脉动阵列,方便于硬件处理。 对于下三角矩阵,我们可以做如下处理: ()()()()1 11 T T T T L L L ---= = 先计算下三角矩阵L 的转置,再求上三角矩阵T L 的逆,最后得到1L -。 4.上三角阵求逆的脉动结构 ? 除法运算 乘加运算

逆矩阵的几种求法与解析(很全很经典)

逆矩阵的几种求法与解析 矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 1.利用定义求逆矩阵 定义: 设A、B 都是n 阶方阵, 如果存在n 阶方阵B 使得AB= BA = E, 则称A 为可逆矩阵, 而称B为A 的逆矩阵.下面举例说明这种方法的应用. 例1 求证: 如果方阵A 满足A k= 0, 那么EA是可逆矩阵, 且 (E-A)1-= E + A + A2+…+A1-K 证明因为E 与A 可以交换, 所以 (E- A )(E+A + A2+…+ A1-K)= E-A K, 因A K= 0 ,于是得 (E-A)(E+A+A2+…+A1-K)=E, 同理可得(E + A + A2+…+A1-K)(E-A)=E, 因此E-A是可逆矩阵,且 (E-A)1-= E + A + A2+…+A1-K. 同理可以证明(E+ A)也可逆,且 (E+ A)1-= E -A + A2+…+(-1)1-K A1-K. 由此可知, 只要满足A K=0,就可以利用此题求出一类矩阵E±A的逆矩阵.

例2 设 A =? ? ?? ? ???? ???000030000020 0010,求 E-A 的逆矩阵. 分析 由于A 中有许多元素为零, 考虑A K 是否为零矩阵, 若为零矩阵, 则可以采用例2 的方法求E-A 的逆矩阵. 解 容易验证 A 2=???? ????? ???0000 000060000200, A 3=? ? ?? ? ? ? ?? ???0000 0000 00006000 , A 4=0 而 (E-A)(E+A+ A 2+ A 3)=E,所以 (E-A)1-= E+A+ A 2+ A 3 =? ? ?? ? ???? ???1000 31006210 6211. 2.初等变换法 求元素为具体数字的矩阵的逆矩阵,常用初等变换法.如果A 可逆,则A 可通过初等变换,化为单位矩阵I ,即存在初等矩阵S P P P ,,21Λ使 (1)s p p p Λ21A=I ,用A 1-右乘上式两端,得: (2) s p p p Λ21I= A 1- 比较(1)(2)两式,可以看到当A 通过初等变换化为单位矩阵的同时,对单位矩阵I 作同样的初等变换,就化为A 的逆矩阵A 1-. 用矩阵表示(A I )??? →?初等行变换 为(I A 1-),就是求逆矩阵的初等行变换法,它是实际应用中比较简单的一种方法.需要注意的是,在作初等变换时只允许作行初等变换.同样,只用列初等变换也可以求逆矩阵.

矩阵的三角分解

§4矩阵的三角分解 矩阵的三角分解定理:设n n A R ×∈,如果A 的前 n-1个顺序主子式 det()0,1,2,,1i A i n ≠=? , 则A 可分解为一个单位下三角矩阵L 与一个上三角矩阵U 的乘积,且这种分解是唯一的。

证明: 1.存在性:利用高斯消去法来构L 和U (1)(2)() 1122det()0,1,2,,1i i ii A a a a i n =≠=? 1L A U ?=,A LU = 21 1 2 1 00101n n m L m m ??????=?? ???? , (1) (1)(1)11 121(2)(1)222()0 n n n nn a a a a a U a ??? ???=?? ??????

2.唯一性:分A 非奇异和奇异两种情况来证 (1)A 非奇异 考虑到A 的前n-1个顺序主子式非零,得 det()0,1,2,,i A i n ≠= 设1122A LU L U ==,12,L L 为单位下三角矩阵,12,U U 为上三角矩阵。 因A 非奇异,所以1U 可逆,从而 11 2121L L U U ??=

11 2121 11 2121(,) L L E U U L L U U ?????==因为单位下三角阵为上三角阵2121,L L U U ?== (2)A 奇异 因det()0,1,2,,1i A i n ≠=? ,det()0n A = ()0,1,2,,1i ii a i n ?≠=? ,() 0n nn a = 设1122A LU L U ==,12,L L 为单位下三角矩阵,12,U U 为上三角矩阵。对它们进行矩阵

相关文档
最新文档