当前位置:文档之家› 矩阵运算程序设计

矩阵运算程序设计

矩阵运算程序设计
矩阵运算程序设计

目录

1 课题分析 (1)

2 模块化分析 (1)

2.1 输入模块 (1)

2.1.1 输入模块要求 (1)

2.1.2 输入模块程序说明 (1)

2.2 判断模块 (3)

2.3 求和求差模块 (3)

2.4 乘法模块 (5)

2.4.1 求乘积模块概要 (5)

2.4.2 子程序段说明 (5)

2.4.3 乘法模块流程图 (8)

3 运行分析 (9)

4 心得体会 (11)

参考文献 (13)

矩阵运算程序设计

1 课题分析

根据给定的任务:能用键盘输入矩阵的参数(行、列及元素值),在进行运算前,先判断两个矩阵是否符合运算规则实现这两个矩阵的加,实现这两个矩阵的减,实现这两个矩阵的乘。进行模块化分析,所以程序中应该包括输入模块,保存需要处理的数据。判断模块,根据矩阵运算规则判断输入的数据能否进行矩阵加法,减法或者乘法运算,并调用相应的计算程序。计算模块,包括矩阵的加法,矩阵的减法和矩阵的乘法运算。输出模块,显示运算的结果。

2 模块化分析

2.1 输入模块

2.1.1 输入模块要求

先能用键盘输入矩阵的参数,行数和列数,然后根据输入各元素值,在输入数据之前有明显的提示信息,输入完后要保持各数据。运算完后要将各类计算的结果显示在屏幕上,并且要有明显的提示信息。

2.1.2 输入模块程序说明

输入的行列数保存到N和M中,为后来的比较和输入做准备,本程序段只是针对矩阵1的行和列,矩阵2则在此基础上经行替换即可以得到。

LEA DX,INFORMATION1 ;取信息提示地址偏移量

MOV AH,09h ;9号功能调用显示提示信息

INT 21H

LEA DX,input1 ;提示输入矩阵1 的行数

MOV AH,09h ;9号功能调用显示提示信息

INT 21H

MOV AH,1 ;1号功能调用保存输入信息

INT 21H

MOV n1,AL ;矩阵1行数存在N1段首

SUB n1,30h

存入行数和列数后,将行数和列数的乘积放在nm1中。

MOV AL,m1

MOV BL,n1

MUL BL

MOV nm1,AL

其中INFORMATION1,inp ut1,input2的内容在数据段定义,定义的内容如下,0AH,0DH,的作用在于换行。

INFORMATION1 DB 0AH,0DH,'Please enter the line and the row of the Array1!$' ;提示说明

inp ut1 DB 'Input n,m(1~9)',0ah,0dh,'n=$'

inp ut2 DB 0AH,0DH,'m=$'

保存矩阵1的程序段如下:

在提示输入矩阵1后,用下列循环程序将输入的每个字符保存进matrix1:

LEA DI,matrix1 ;DI指向矩阵1首地址

MOV CL,nm1 ;循环执行次数为行数乘以列数next: MOV AH,1 ;保存1个字符

INT 21h

CMP AL,' ' ;跳过‘’号

JE next

MOV [DI],AL ;将该字符存在DI指向的地址

INC DI ;DI加1

LOOP next ;循环

调用完毕后,将末尾处赋值$表示矩阵保存结束。

2.2 判断模块

设有两个矩阵,矩阵A(n1*m1)和矩阵B(n2*m2),比较各个参数,判断其能进行哪些运算。根据矩阵运算规则,只有两个矩阵为同型矩阵时,这两个矩阵才能进行加减法运算,即n1=n2且m1=m2;只有当矩阵第一个矩阵的列数等于第二个矩阵的行数时,即n1乘积AB才是有意义的,并且Ab的行数等于第一个矩阵的行数,AB的列数等于第二个矩阵的列数。根据以上运算规则,可以做出比较判断流程图如图2-1所示:

图2-1 判断模块流程图

2.3 求和求差模块

若在根据行列数判断能进行加法运算,则将输入的每个数据逐个相加即可,

对减法运算同理,重要的是处理好加法进位和借位减法。根据加法运算和汇编语言的规则,可做出加法流程图如图2-2所示:

图2-3 加法流程图

注意的是,与求和的子程序相比,求差的子程序在求和的程序基础上做了以下的修改:将[DI]+[SI]<3A改为[SI]-[DI]>2F,将加法的调整为两位数改变为添加负号。

2.4 乘法模块

2.4.1 求乘积模块概要

对于矩阵的相乘的实现,一共有三道循环,第一个最内部的循环就是在定行与定列的相乘时候几个数据的相乘后相加的循环;然后外部的一个循环就是关于定行选择不同列进行相乘的循环;最外面的一个循环就是关于选行的循环。不过三个循环实现起来的深度有点大,可以把最外面的一道循环写成三次分别调用,这样可以使程序容易实现,看起来更清楚明白。

2.4.2 子程序段说明

按照子程序调用的顺序依次介绍各子程序主要程序段的功能。

(1)2号程序CHENGFA2的主要程序段如下:它完成的主要任务是计算取出的两数的积。

l2: MOV AL,[SI]

SUB AL,30H

MOV CL,[DI]

SUB CL,30H

MUL CL ;完成两数相乘

AAM ;做BC D调整

ADD AX,3030H

MOV DL,AH

LEA BX,sum1 ;将结果存入sum1

Sum2的求法只是在SI偏移1,DI偏移M2后重新计算的结果。

(2)1号程序CHENGFA1的主要程序段如下:它完成的主要任务是计算两数积的和。

CHENGFA1 PROC Xl1: LEA DI,sum1

LEA SI,sum2

LEA BX,SUM

ADD BX,2

Xl2: MOV DL,[DI]

MOV AL,'$' CMP DL,AL JE Xl3

MOV AL,[SI] ADD DL,AL SUB DL,30h CMP DL,3AH JB XXX

SUB DL,0AH MOV [BX],DL INC DI

INC SI

DEC BX

MOV DL,[DI] MOV AL,[SI] ADD DL,AL ADD DL,1H SUB DL,30h CMP DL,3AH JB XXX

SUB DL,0AH MOV [BX],DL

INC DI

INC SI

DEC BX

MOV DL,[DI]

MOV AL,[SI]

ADD DL,AL

ADD DL,1H

SUB DL,30h

Xl3: MOV [BX],DL

MOV AL,','

MOV [BX+4],AL

MOV AL,'$'

MOV [BX+5],AL

CALL CHENGFA3 XXX: MOV [BX],DL

INC DI

INC SI

DEC BX

JMP Xl2

RET

CHENGFA1 ENDP

(3)3号程序CHENGFA3的主要程序段如下:它完成的主要任务是判断矩阵3的元素是否计算完毕,否则将SUM的值存入SUM1,并在偏移指定量后重新计算SUM的值。

lc: MOV AL,M1

MOV BL,NB

CMP BL,AL

JB la

CALL SHUCHU la: LEA DI,SUM

LEA SI,sum1

MOV AL,[DI+2]

MOV [SI],AL MOV AL,[DI+1] MOV [SI+1],AL MOV AL,[DI] MOV [SI+2],AL MOV AL,'$' MOV [SI+3],AL LEA SI,matrix1 LEA DI,matrix2 XOR AX,AX

XOR BX,BX MOV AL,nz MOV BL,m1 MUL BL XOR BX,BX MOV BL,nb MOV BH,0 CBW

ADD AX,BX ADD SI,AX MOV AL,nb MOV BL,m2 MUL BL XOR BX,BX MOV BL,NY MOV BH,0 CBW

ADD AX,BX ADD DI,AX INC NB

MOV AL,[SI] CMP AL,'$'

JE l3

SUB AL,30H

MOV CL,[DI] SUB CL,30H MUL CL

AAM

ADD AX,3030H MOV DL,AH

LEA BX,sum2 MOV CL,'0'

MOV [BX+2],CL MOV [BX+1],DL MOV [BX],AL MOV AL,'$' MOV [BX+3],AL

CALL CHENGFA1 JMP lc

RET

(4)输出程序shuchu的主要程序段如下:它完成的主要任务是将计算出的SUM值输出。

Xl4: LEA BX,SUM

MOV AL,[BX]

CMP AL,'0'

JNE Xl5

MOV CL,5

Xl6: MOV AL,[BX+1]

MOV [BX],AL

INC BX

LOOP Xl6

JMP Xl4

在提示结果输出后,使用9号功能调用将结果输出。

2.4.3 乘法模块流程图

先判断每个元素是否计算完,否则执行循环乘法,并累计求和,每个元素计算完后,再计算下个元素,同时利用每列的计数符标志是否转行计算。

2号程序

主程序

1号程序 3号程序

图2-4乘法模块流程图

3运行分析

(1)矩阵1和矩阵2为同型的方阵时,输出加法,减法和乘法的运算结果显示如

图3-1所示:

图3-1 同型方阵运算结果

(2)矩阵1和矩阵2行数列数分别相等,但行数不等于列数,输出加法和减法的运算结果,没有乘法运算结果,显示如图3-2所示:

图3-2 行数列数分别相等,行数不等于列数运算结果图

(3)矩阵1的列数和矩阵2行数相等,但矩阵1行数不等于矩阵2列数,输出乘法运算结果,没有加法和减法的运算结果,显示如图3-3所示:

图3-3 行数列数分别相等,但行数不等于列数结果图

(4)矩阵1和矩阵2无法进行计算的返回结果,显示错误,如图3-4所示:

图3-4 结果错误显示图

4心得体会

学完微机原理与接口技术这门课程,觉得这是一门很有趣的课程,但是由于知识掌握的不是很牢固,便来了这次微机原理与接口技术的课程设计,这次课程设计,总体上可以说是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中。在矩阵的输入上面由于知识层面不高,便限定了矩阵的行列数,而且在矩阵的元素上也只能输入正的0到9,不能输入负数,程序存在一定的局限性。在矩阵的输出中,本想将矩阵显示成行列的行列的形式,但是探索了很久还没弄出来,而且让程序本身错误更多,便放弃了。在判断的时候,根据运算规则判断出能否进行加减乘法运算的时候我们没有很好的加入提示性的语句。在输入的时候,当输入的不是数字和空格的时候,我们将它们都显示出来了,这一点做的很不对,应该将不是空格和数字的输入不显示出来。程序依旧存在很多bug,我们做的确实有很多不足。

通过微机原理与接口技术这门课程学习了关于汇编语言的知识,起初学起来的时候感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲

手,呵呵,应该是自己做出来的。很有成就感。我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,对很多步骤设计一点都不了解,翻阅图书,查找资料花费了我很多的时间和精力。同时在设计的过程中发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,所以在做课设的过程之中老是需要翻教材,这严重影响了我完成课设的进度。不过两周的时间还算是充裕的,所以我还有时间在最后将程序和实验报告写好。

课程设计中个人的力量是不及群体的力量的,团结就是力量,我们三个人分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。课程设计也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。

参考文献

[1]彭虎,周佩玲微机原理与接口技术.电子工业出版社,2008.3

[2]于春凡 IBM-PC及长城0520宏汇编语言程序设计.南开大学出版社,1990.6

[3]余朝琨IBM-PC汇编语言程序设计.机械工业出版社,2008.1

[4]王正智8086/8088宏汇编语言程序设计教程.电子工业出版社,1998.3

[5]吴传生线新代数.高等教育出版社,2009.1

第二章 矩阵及其运算测试题

第二章 矩阵及其运算测试题 一、选择题 1.下列关于矩阵乘法交换性的结论中错误的是( )。 (A)若A 是可逆阵,则1A -与1A -可交换; (B)可逆矩阵必与初等矩阵可交换; (C)任一n 阶矩阵与n cE 的乘法可交换,这里c 是常数; (D)初等矩阵与初等矩阵的乘法未必可交换。 2.设n (2n ≥)阶矩阵A 与B 等价,则必有( ) (A) 当A a =(0a ≠)时,B a =; (B)当A a =(0a ≠)时,B a =-; (C) 当0A ≠时,0B =; (D)当0A =时,0B =。 3.设A 、B 为方阵,分块对角阵00A C B ??= ??? ,则* C =( )。 (A) **00 A B ?? ??? (B) **||00 ||A A B B ?? ??? (C) **||00||B A A B ?? ??? (D) **||||0 0||||A B A A B B ?? ??? 4.设A 、B 是n (2n ≥)阶方阵,则必有( )。 (A)A B A B +=+ (B)kA k A = (C) A A B B =-g (D) AB A B = 5.设4阶方阵 44(),()||,ij A a f x xE A ?==-其中E 是4阶单位矩阵,则()f x 中3 x 的系数为( )。 (A)11223344()a a a a -+++ (B)112233112244223344113344a a a a a a a a a a a a +++ (C) 11223344a a a a (D)11223344a a a a +++ 6.设A 、B 、A B +、11A B --+均为n 阶可逆矩阵,则1()A B -+为( )。 (A) 11A B --+ (B) A B + (C) 111()A B ---+ (D)11111 ()B A B A -----+

Matlab常用函数数组及矩阵的基本运算

实验一 Matlab 常用函数、数组及矩阵的基本运算 一、 实验目的 1. 了解Matlab7.0软件工作界面结构和基本操作; 2. 掌握矩阵的表示方法及Matlab 常用函数; 3. 掌握数组及矩阵的基本运算. 二、 实验内容 1. 了解命令窗口(command widow)和变量空间(workspace)的作用,掌握清 除命令窗口(clc )和变量空间(clear)的方法.掌握查询函数(help)的方法. 2. 掌握保存和加载变量的方法. 加载变量:load 变量名. 3. 掌握掌握矩阵的表示方法: 给a,b,c 赋如下数据: ]6,46,23,4,2,6,3,8,0,1[,356838241248 7,278744125431-=??????????--=??????????=c b a 4. 求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果. 5. 将str1=electronic; str2 = information; str3 = engineering; 三个字符串连接 在一起成str = electronic information engineering. 6. 求矩阵a 的逆矩阵a -1,行列式计算。 (inv(a),det(a)) 三、 实验要求 1.上机操作,熟练掌握清除命令窗口和变量空间的方法、查询变量的方法、加载变量的方法。 2.第2道题请写出步骤。 3.对实验内容中第3-6项,写出指令,上机运行. 记录运行结果(数据)。 4.写出实验报告。 四、 实验结果 2. 用save 函数,可以将工作空间的变量保存成txt 文件或mat 文件等. 比如: save peng.mat p j 就是将工作空间中的p 和j 变量保存在peng.mat 中. 用load 函数,可以将数据读入到matlab 的工作空间中. 比如:load peng.mat 就是将peng.mat 中的所有变量读入matlab 工作空间中。

矩阵典型习题解析

2 矩阵 矩阵是学好线性代数这门课程的基础,而对于初学者来讲,对于矩阵的理解是尤为的重要;许多学生在最初的学习过程中感觉矩阵很难,这也是因为对矩阵所表示的内涵模糊的缘故。其实当我们把矩阵与我们的实际生产经济活动相联系的时候,我们才会发现,原来用矩阵来表示这些“繁琐”的事物来是多么的奇妙!于是当我们对矩阵产生无比的兴奋时,那么一切问题都会变得那么的简单! 知识要点解析 2.1.1 矩阵的概念 1.矩阵的定义 由m×n 个数),,2,1;,,2,1(n j m i a ij ==组成的m 行n 列的矩形数表 ?? ?? ? ? ? ??=mn m m n n a a a a a a a a a A 2 1 22221 11211 称为m×n 矩阵,记为n m ij a A ?=)( 2.特殊矩阵 (1)方阵:行数与列数相等的矩阵; (2)上(下)三角阵:主对角线以下(上)的元素全为零的方阵称为上(下) 三角阵; (3)对角阵:主对角线以外的元素全为零的方阵; (4)数量矩阵:主对角线上元素相同的对角阵; (5)单位矩阵:主对角线上元素全是1的对角阵,记为E ; (6)零矩阵:元素全为零的矩阵。 3.矩阵的相等 设mn ij mn ij b B a A )(; )(==

若 ),,2,1;,,2,1(n j m i b a ij ij ===,则称A 与B 相等,记为A=B 。 2.1.2 矩阵的运算 1.加法 (1)定义:设mn ij mn ij b B A A )(,)(==,则mn ij ij b a B A C )(+=+= (2)运算规律 ① A+B=B+A ; ②(A+B )+C =A +(B+C ) ③ A+O=A ④ A +(-A )=0, –A 是A 的负矩阵 2.数与矩阵的乘法 (1)定义:设,)(mn ij a A =k 为常数,则mn ij ka kA )(= (2)运算规律 ① K (A+B ) =KA+KB , ② (K+L )A =KA+LA , ③ (KL ) A = K (LA ) 3.矩阵的乘法 (1)定义:设.)(,)(np ij mn ij b B a A ==则 ,)(mp ij C C AB ==其中∑== n k kj ik ij b a C 1 (2)运算规律 ①)()(BC A C AB =;②AC AB C B A +=+)( ③CA BA A C B +=+)( (3)方阵的幂 ①定义:A n ij a )(=,则K k A A A = ②运算规律:n m n m A A A +=?;mn n m A A =)( (4)矩阵乘法与幂运算与数的运算不同之处。 ①BA AB ≠ ②;00,0===B A AB 或不能推出 ③k k k B A AB ?≠)( 4.矩阵的转置

Excel 矩阵运算及引用

利用Excel中函数进行矩阵运算实验 一、实验目的与要求 了解Excel的函数应用并能够利用Excel进行常用的矩阵运算。掌握以Excel 中的几个主要矩阵运算函数的功能,即 MDETERM:用于计算矩阵行列式的值; MINVERSE:用于求解某个可逆矩阵的逆矩阵; MMULT:用于计算两个矩阵的乘积,进行两个矩阵的乘法时必须确保第一个乘积矩阵的列等于第二个乘积矩阵的行; TRANSPOSE:用来求解矩阵的转置或用于Excel中行列的互换。 二、实验内容及步骤 1.矩阵的数乘 用一个数乘以一个矩阵,必须将该数与矩阵的每一个元素相乘。将单元格B3中的数字乘以矩阵A,只需在单元格B10中输入公式“=$B$3*B5”(注意:单元格B3必须采用绝对引用,及固定单元格),然后将其复制到B10:D12区域(利用自拖功能也可以实现),最终结果见下表: 矩阵的数乘 2.矩阵的加法 具有相同行列的两个矩阵才能相加。要进行矩阵的加法,只需将两个矩阵相

同行、列的元素相加,即可得到新的矩阵。如下图,要将矩阵A和B相加,只需在单元格G4中输入公式“=A4+D4”,并将其复制到G4:H8区域(利用自拖功能也可以实现),就可得到最终结果。 矩阵的相加 3.矩阵的转置 对矩阵E进行转置,首先选中打算放置输出结果的整个单元格区域F4:H7,然后选择“插入-函数”,在“查找与引用”或“全部”函数中选择函数“TRANSPOSE”。在“函数参数”的对话框中输入“A4:D6”,同时按住[Ctrl]+[Shift]+[Enter]键,最终得到下列结果。 矩阵转置 也可以利用复制,选择性粘贴中选择转置即可得到上述结果。 4、矩阵相乘 做法一:进行矩阵乘法必须保证第一个乘积矩阵的列等于第二个乘积矩阵的行。首先选中打算放置输出结果的整个单元格区域A9:D10,然后选择“插入-函数”,在“数学与三角”或“全部”函数中选择函数“MMULT”。在“函数参数”的对话框中分别输入第一个数组“A4:C5”和第二个数组“E4:H6”,同时按住[Ctrl]+[Shift]+[Enter]键,最终得到下列结果。

第二章矩阵及其运算作业及答案

第二部分 矩阵及其运算作业 (一)选择题(15分) 1.设A ,B 均为n 阶矩阵,且22()()A B A B A B +-=-,则必有( ) (A) A B = (B) A E = (C) AB BA = (D) B E = 2.设A ,B 均为n 阶矩阵,且AB O =,则A 和B ( ) (A)至多一个等于零 (B)都不等于零 (C) 只有一个等于零 (D) 都等于零 3.设A ,B 均为n 阶对称矩阵,AB 仍为对称矩阵的充分必要条件是( ) (A) A 可逆 (B)B 可逆 (C) 0AB ≠ (D) AB BA = 4.设A 为n 阶矩阵,A *是A 的伴随矩阵,则A *=( ) (A) 1n A - (B) 2n A - (C) n A (D) A 5.设A ,B 均为n 阶可逆矩阵,则下列公式成立的是( ) (A) ()T T T AB A B = (B) ()T T T A B A B +=+ (C) 111()AB A B ---= (D) 111()A B A B ---+=+ (二)填空题(15分) 1.设A ,B 均为3阶矩阵,且1 ,32A B ==,则2T B A = 。 2.设矩阵1123A -??= ??? , 232B A A E =-+,则1B -= 。 3.设A 为4阶矩阵,A *是A 的伴随矩阵,若2A =-,则A *= 。 4.设A ,B 均为n 阶矩阵,2,3A B ==-,则12A B *-= 。 5.设101020101A ? ? ?= ? ??? ,2n ≥为整数,则12n n A A --= 。 (三)计算题(50分) 1. 设010111101A ?? ?=- ? ?--??,112053B -?? ?= ? ??? ,且X AX B =+,求矩阵X 。

MATLAB中矩阵常用的操作函数

MATLAB中矩阵常用的操作函数 1. zeos : 生成零矩阵 2. ones : 生成1矩阵 3. eye : 生成单位矩阵 4. rand : 返回[0,1]之间的平均分布的随机数(矩阵) 5. randn : 返回标准正态分布的随机数(矩阵) 6. mean : 返回列的均值 7. std : 返回列的方差 8. magic : 返回魔方矩阵,即行、列,对角线元素之和都相等的矩阵 9. hilb : 返回Hilbert矩阵,即H(i,j)=1/(i+j-1) 的矩阵 10. toeplitz : 返回toeplitz矩阵 11. 常用运算: 和:A+B 积:A*B 转置:A',注意:如果A是复矩阵,则A'是共轭转置 行列式:det(A) 逆:inv(A) 内积:dot(a, b) 秩:rank(A) 迹:trace(A) 12. 线性方程组:Ax=b,可以用左除运算:x=A\b;也可以用逆运算:x=inv(A)*b,但效率不如左除运算。 13. Jordan 标准型:jordan(A),返回A的Jordan标准型。或者用两个参数接收结果:[V, J] = jordan(A),那么J是A的Jordan标准型,V是用到的相似变换矩阵,即A=V*J*inv(V)。 14. SVD分解,即奇异值分解:[U, S, V] = svd(A),A=USV'。 15. 特征值:eig(A)返回A的所有特征值。如果用两个参数接收结果:[E, F] = eig(A),那么E 的列是A的特征向量,F是A的特征值。 16. 范数: 1范数:norm(A, 1) 2范数:norm(A, 2) 无穷范数:norm(A, inf) Frobenius范数(也叫Euclid范数,简称F-范数或者E-范数),即A全部元素平方和的平方根:norm(A, 'fro') 17. 矩阵函数:通用方法是funm(A, @fun),即计算矩阵A的fun函数。

矩阵的简单运算公式

矩阵的运算 (一) 矩阵的线性运算 特殊乘法:222()A B A AB BA B +=+++ 2 22 ()()() A B A B A B A B =≠ (二) 关于逆矩阵的运算规律 111 1 1 11 1 1(1)()(2)() /(3)( )( )(4)()( ) T T n n A B B A k A A k A A A A ---------==== (三) 关于矩阵转置的运算规律 (1)()(2)()T T T T T T A B B A A B B A =+=+ (四) 关于伴随矩阵的运算规律 **1 *2 ***1* **1*11**1(1)(2)(2)(3)()(4)(), ()(5)()1,()1 0,()2(6)()()()n n n AA A A A E A A n A A A kA k A n r A n r A r A n r A n A A A A A A A A A -------===≥===?? ==-??≤-?= ==若若若若可逆,则,, (五) 关于分块矩阵的运算法则 1 1 1 110000(2)000 0T T T T T A B A C C D B D B B B C C C C B -----?? ?? =????????????????==????????????????(1);, (六) 求变换矩阵 ()121 1 2 11121311111121222321121121313233313131100(a )(2)i n n i i i ij i i i i A T TAT T P P P AP P A a a a p p p a a a p p P p a a a p p p AP P P i λλλλλλλ--?? ? ?= ? ? ? ?===???????? ??? ? ? =→= ??? ? ? ??? ? ?????????=+≥已知矩阵,及其特征值求使得,设,则其中若有重根则时再1 T T -由求 (七) 特征值与矩阵

MatLab常见函数和运算符号解读

MatLab常见函数和运算符号 基本运算 convhull :凸壳函数 cumprod :累计积 cumsum :累计和 cumtrapz :累计梯形数值积分 delaunay :Delaunay三角化 dsearch :求最近点(这是两个有趣的函数 factor :质数分解inpolygon :搜索多边形内的点 max :最大元素 mean :平均值 median :数组的中间值 min :最小值 perms :向量所有排列组成矩阵 polyarea :多边形的面积 primes :生成质数列表 prod :数组元素积 sort :元素按升序排列 sortrows :将行按升序排列

std :标准差 sum :元素和 trapz :梯形数值积分 tsearch :搜索Delaunay三角形var :方差 voronoi :Voronoi图 del2 :Laplacian离散 diff :差分和近似微分gradient:数值梯度 corrcoef :相关系数 cov :协方差矩阵 xcorr :互相关系数 xcov :互协方差矩阵 xcorr2 :二维互相关 conv :卷积和多项式相乘conv2 :二维卷积 deconv :反卷积 filter :滤波 filter2 :二维数字滤波

傅立叶变换 abs :绝对值和模 angle :相角 cplxpair :按复共扼把复数分类 fft :一维快速傅立叶变换 fft2 :二维快速傅立叶变换 fftshit :将快速傅立叶变换的DC分量移到谱中央ifft :以为逆快速傅立叶变换 ifft2 :二维逆快速傅立叶变换 ifftn :多维逆快速傅立叶变换 ifftshift :逆fft平移 nextpow2 :最相邻的2的幂 unwrap :修正相角 cross :向量叉积 intersect:集合交集 ismember :是否集合中元素 setdiff :集合差集 setxor :集合异或(不在交集中的元素 union :两个集合的并

常用MATLAB矩阵处理

>> x=zeros(3,4) x = 0 0 0 0 0 0 0 0 0 0 0 0 >> x=ones(3,4) x = 1 1 1 1 1 1 1 1 1 1 1 1 >> x=eye(3,4) x = 1 0 0 0 0 1 0 0 0 0 1 0 >> x=rand(3,4) x = 0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919 >> x=randn(3,4) x = -0.4326 0.2877 1.1892 0.1746 -1.6656 -1.1465 -0.0376 -0.1867 0.1253 1.1909 0.3273 0.7258 >> magic(3) ans = 8 1 6 3 5 7 4 9 2 >> a=[1 2 3]

a = 1 2 3 >> diag(a) ans = 1 0 0 0 2 0 0 0 3 >> diag(a -1) ans = 0 0 0 0 1 0 0 0 2 >> h1=hilb(2) h1 = 1.0000 0.5000 0.5000 0.3333 >> h2=invhilb(2) h2 = 4 -6 -6 12 >> inv(h1) ans = 4.0000 -6.0000 -6.0000 12.0000 拼接矩阵: ①水平方向拼接 >> a=magic(3) a = 8 1 6 3 5 7 4 9 2

>> b=eye(3) b = 1 0 0 0 1 0 0 0 1 >> c=[a b] c = 8 1 6 1 0 0 3 5 7 0 1 0 4 9 2 0 0 1 ②垂直方向拼接 >> d=[a;b] d = 8 1 6 3 5 7 4 9 2 1 0 0 0 1 0 0 0 1 拼接函数: 1)Cat函数 C=cat(dim,A,B); Dim= 1 垂直方向 2 水平方向 3 生成三维数组 >> a=[1,5,9;3,5,7;10,2,8]; >> b=magic(3); >> c1=cat(2,a,b) c1 = 1 5 9 8 1 6 3 5 7 3 5 7 10 2 8 4 9 2 >> c2=cat(1,a,b)

C常用矩阵子函数

double scalar(double MA[R1][C1],double k) { int i,j,R1,C1; double k,MA2[][]; for (i=0;i

for(i=0;i

常用矩阵函数

请特别注意红色字体的命令 eye 单位矩阵 zeros 全零矩阵 ones 全1矩阵 rand 均匀分布随机阵genmarkov 生成随机Markov矩阵linspace 线性等分向量 logspace 对数等分向量 logm 矩阵对数运算 cumprod 矩阵元素累计乘cumsum 矩阵元素累计和 toeplitz Toeplitz矩阵 disp 显示矩阵和文字内容 length 确定向量的长度 size 确定矩阵的维数 diag 创建对角矩阵或抽取对角向量find 找出非零元素1的下标matrix 矩阵变维 rot90 矩阵逆时针旋转90度 sub2ind 全下标转换为单下标 tril 抽取下三角阵 triu 抽取上三角阵 conj 共轭矩阵 companion 伴随矩阵 det 行列式的值 norm 矩阵或向量范数 nnz 矩阵中非零元素的个数 null 清空向量或矩阵中的某个元素orth 正交基 rank 矩阵秩 trace 矩阵迹 cond 矩阵条件数 inv 矩阵的逆 rref 求矩阵的行阶梯形 rcond 逆矩阵条件数 lu LU分解或高斯消元法 pinv 伪逆 qr QR分解 givens Givens变换 linsolve 求解线性方程 lyap Lyapunov方程 hess Hessenberg矩阵 poly 特征多项式 schur Schur分解

expm 矩阵指数 expm1 矩阵指数的Pade逼近 expm2 用泰勒级数求矩阵指数 expm3 通过特征值和特征向量求矩阵指数 funm 计算一般矩阵函数 logm 矩阵对数 sqrtm 矩阵平方根 spec 矩阵特征值 gspec 矩阵束特征值 bdiag 块矩阵,广义特征向量 eigenmar- 正则化Markov特征 kov 向量 pbig 特征空间投影 svd 奇异值分解 sva 奇异值分解近似 cumprod 元素累计积 cumsum 元素累计和 hist 统计频数直方图 max 最大值 min 最小值 mean 平均值 median 中值 prod 元素积 sort 由大到小排序 std 标准差 sum 元素和 trapz 梯形数值积分 corr 求相关系数或方差 sparse 稀疏矩阵 adj2sp 邻接矩阵转换为稀疏矩阵 full 稀疏矩阵转换为全矩阵 mtlb_sparse 将scilab稀疏矩阵转换为matlab稀疏矩阵格式sp2adj 将稀疏矩阵转换为邻接矩阵 speye 稀疏矩阵方式单位矩阵 sprand 稀疏矩阵方式随机矩阵 spzeros 稀疏矩阵方式全零阵 lufact 稀疏矩阵LU分解 lusolve 稀疏矩阵方程求解 spchol 稀疏矩阵Cholesky分解

矩阵 计算习题及答案

1、选择题 1)下列变量中 A 是合法的。 A. Char_1,i,j B.x*y,a.1 C. X\y, a1234 D. end, 1bcd 2)下列 C 是合法的常量。 A. 3e10 B. 1e500 C. -1.85e-56 D. 10-2 3)x=uint8(1.2e10),则x所占的字节是 D 个。 A. 1 B. 2 C. 4 D. 8 4)已知x=0:10,则x有 B 个元素。 A. 9 B. 10 C. 11 D. 12 5)产生对角线元素全为1其余为0的2×3矩阵的命令是 C 。 A. Ones(2,3) B. Ones(3,2) C. Eye(2,3) D. Eye(3,2) 6)a= 123 456 789 ?? ? ? ? ?? ,则a(:,end)是指 C 。 A.所有元素 B. 第一行元素 C. 第三列元素 D. 第三行元素 7)a= 123 456 789 ?? ? ? ? ?? ,则运行a(:,1)=[] 命令后 C 。 A.a变成行向量 B. a数组成2行2列 C. a数组成3行2列 D. a数组没有元素 8)a= 123 456 789 ?? ? ? ? ?? ,则运行命令mean(a)是 B 。 A. 计算a的平均值 B. 计算a每列的平均值 C. 计算a每行的平均值 D.a数组增加一列平均值 9)已知x是一个向量,计算ln(x)的命令是 B 。 A. ln(x) B. log(x) C. Ln(x) D. lg10(x) 10)当a=2.4时,使用取整函数得到3,则该函数名是 C 。 A.fix B. round C. ceil D. floor 11)已知a=0:4,b=1:5,下面的运算表达式出错的是 D 。 A. a+b B. a./b C. a'*b D. a*b 12)已知a=4,b=‘4’,下面说法错误的是 C 。 A. 变量a比变量b占用的空间大 B. 变量a、b可以进行加减乘除运算 C. 变量a、b数据类型相同 D. 变量b可以用eval计算 13)已知s=‘显示“hello”’,则s 元素的个数是 A 。 A. 12 B. 9 C. 7 D. 18 14)运行字符串函数strncmp('s1','s2',2),则结果为 B 。 A. 1 B. 0 C. true D. fales 15)命令day(now)是指 C 。 A. 按日期字符串格式提取当前时间 B. 提取当前时间 C. 提取当前时间的日期 D. 按日期字符串格式提取当前日期

常见的matlab的运算函数

三角函数: ()里如果是角度必须是弧度,如果是矩阵的话则为对每个元素执行。cos(),tan()也是一样。 以2为底对数函数:log2(4)=2 以10为底对数函数:log10() 自然对数:log() 绝对值函数:abs(-2)=2 平方根函数:sqrt(2)=1.41 符号函数:sign(正数)=1 sign(负数)=-1 sign(0)=0 天花板函数ceil()向大的方向 地板函数floor()向小的方向 fix()向0的方向 圆整函数round()对数进行4舍5入,负数的话也对对应的正数4舍5入

取模函数 mod(5,3)=2 rem(5,3)=2 区别rem(-5,3)=-2 mod(-5,3)=1 多项式相乘函数:

conv()deconv()是相除 取最大和最小函数: max() min() 图中b为行向量或者是列向量 如果()里为矩阵,则输出每列的最大值(以行向量的形式)如果要求矩阵的最大值max(max(A)) mean(A)输出对应每列的平均值(以行向量的形式)

向量的求和和求积:

整个矩阵的总和sum(sum(A)),求积函数prod同理

多项式乘多项式展开的表达式: [1,1]表示x+1,1 2 1的意思是x^2+2*x+1 复数的函数 real(1+2i)=1(取实部) imag(1+2i)=2(取虚部) abs(1+2i)=2.23 angle(1+2i)=1.107 (在坐标系中对应的角度,即arctan 2=1.107 )取共轭复数: (1+2i)’=1-2i conj(1+2i)=1-2i dot(a,b)向量的内积 det(a)求行列式的值

教材第六章 矩阵函数

第六章 矩阵函数 矩阵函数是矩阵理论的重要内容,它在力学、控制理论、信号处理等学科中具有重要作用.本章讨论矩阵函数——以方阵为“变量”、其“值”仍为方阵的函数.矩阵函数中最简单的是矩阵多项式,矩阵多项式是研究其他矩阵函数的基础,因为最终是通过它来定义和计算一般矩阵函数的.当然可以用收敛的矩阵幂级数来定义和计算某些矩阵函数. 矩阵函数在线性微分方程组及矩阵方程的求解中都有重要的应用,而这些问题的求解是系统与控制理论中经常面临并且必须解决的实际问题. §6.1 矩阵级数 定义1 设(){}k A 是m n C ?的矩阵序列,其中()()()k k m n ij A a C ?=∈,无穷和 (1)(2)(3)()k A A A A +++++ 称为矩阵级数,记为() 1 k k A ∞ =∑.对正整数1k ≥,记() ()1 k k i i S A ==∑,称()k S 为矩阵 级数()1 k k A ∞ =∑的部分和,如果矩阵序列(){}k S 收敛,且有极限S ,即()lim k k S S →∞ =, 则称矩阵级数() 1 k k A ∞ =∑收敛,并称S 为矩阵级数() 1 k k A ∞ =∑的和,记为()1 k k A S ∞ ==∑.不 收敛的矩阵级数称为发散的. 由此定义可知,矩阵级数()1k k A ∞ =∑收敛的充分必要条件是mn 个数项级数 () 1 (1,2,;1,2,,)k ij k a i m j n ∞ ===∑ 都收敛. 由矩阵级数的收敛性定义易知

(1)若矩阵级数()1 k k A ∞ =∑收敛,则()lim 0;k k A →∞ = (2)若矩阵级数() 11 k k A s ∞ ==∑,()21 k k B s ∞ ==∑ ,,a b C ∈,则 () ()121 ()k k k aA bB as bs ∞ =+=+∑; (3)设m m P C ?∈,n n Q C ?∈,若矩阵级数() 1 k k A ∞ =∑收敛,则()1 k k PA Q ∞ =∑收敛且 () ()1 1 ()k k k k PA Q P A Q ∞ ∞ ===∑∑. 定义2 设()1 k k A ∞ =∑是矩阵级数,其中()()()k k m n ij A a C ?=∈,如果mn 个数项 级数() 1 k ij k a ∞ =∑(1,2,;1,2,,)i m j n == 都绝对收敛,则称矩阵级数()1 k k A ∞ =∑绝对收 敛. 显然,若()1k k A ∞ =∑绝对收敛,则它必是收敛的,但反之未必. 定理1 矩阵级数()1 k k A ∞ =∑(其中()()()k k m n ij A a C ?=∈)绝对收敛的充分必要条 件是对任何一种矩阵范数.,数项级数()1 k k A ∞ =∑都收敛. 证 由各种矩阵范数的等价性,只须就某一种矩阵范数证明之,如考虑 ,max ij i j A a =. 必要性 () 1 k k A ∞ =∑绝对收敛,则()1 k ij k a ∞ =∑绝对收敛,该数项级数各项绝对值之

常用矩阵运算函数

(一)矩阵函数 ⒈A =16 3 2 13 5 10 11 8 9 6 7 12 4 1 5 14 1 det(A);%矩阵的行列式 ⒉R = rref(A)% A的简化行阶梯型矩阵 3.X = inv(A)%矩阵的逆 4. e = eig(A)%特征值 5. poly(A)% 特征多项式中的系数 是 1 -34 -64 2176 0 这表明特征多项式 det( A - I ) 是 4 - 343 - 642 + 2176 常数项是零,因为矩阵是奇异的,立方项系数是-34,6. 7. mu = mean(D), sigma = std(D)%均值,标准差 8. 要查看MATLAB中可用的一系列数据分析函数,键入 help datafun

如果你想使用统计工具箱,键入 help stats 9.T F = isprime(A) 返回一个和A大小相同的数组,当A中的元素为素数时数组对应元素为逻辑1(真),否则为逻辑0(假),A中必须仅仅包含正整数。 find函数确定已给逻辑条件的数组元素的指标。以它最简单的形式,返回一个指标的列向量。求这个向量的转置以获得一个指标的单行矩阵。例如: k = find(isprime(A))' 用一维标定指数挑选出素数在魔方中的位置。 k = 2 5 9 10 11 13 以按照k决定的次序的行向量展示这些素数,有 A(k) ans = 5 3 2 11 7 13 (二)命令行的编辑 1.

2.根据输入的不同,plot函数有不同的窗体。如果y是向量的形式,plot(y) 则在y对应的轴上作出一个分段线状图。如果指定要求含两个向量时,则 plot(x,y)作出一个y相对于x的图表。 例如:下面这些语句了用colon(冒号)算子来创建一个定义值取从0到2的向量x,计算出这些值的正弦函数值,然后画出结果。 x = 0:pi/100:2*pi; y = sin(x); plot(x,y) 现在给轴加上标签和标题,用\pi作符号。 xlabel('x = 0:2\pi') ylabel('Sine of x') title('Plot of the Sine Function','FontSize',12) 一个函数作图命令plot使不同的(x-y)变元函数生成不同的函数图象。MATLAB 自动地通过预设地颜色库来区别不同的函数(也可用户自设)。例如,以下是三个x的相关函数的图象,每条曲线都由各自不同的颜色加以区分。 y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3) legend命令提供一种简易方式来辨别不同的函数作图。 legend('sin(x)','sin(x-.25)','sin(x-.5)')

MATLAB常用矩阵函数

1. 矩阵的构造与操作 zeros 生成元素全为0的矩阵 ones 生成元素全为1的矩阵 eye 生成单位矩阵 rand 生成随机矩阵 randn 生成正态分布随机矩阵 sparse 生成稀疏矩阵 full 将稀疏矩阵化为普通矩阵 diag 对角矩阵 tril 矩阵的下三角部分 triu 矩阵的上三角部分 flipud 矩阵上下翻转 fliplr 矩阵左右翻转 MATLAB还能够构造一些常用的特殊矩阵 2. 矩阵运算函数 norm 矩阵或向量范数 normest 稀疏矩阵(或大规模矩阵)的2-范数估计 rank 矩阵的秩 det 方阵的行列式 trace 方阵的迹 null 求基础解系(矩阵的零空间) orth 正交规范化 rref 矩阵的行最简形(初等行变换求解线性方程组)subspace 计算两个子空间的夹角

3. 与线性方程有关的矩阵运算函数 inv 方阵的逆 cond 方阵的条件数 condest 稀疏矩阵1-范数的条件数估计 chol 矩阵的Cholesky分解(矩阵的平方根分解)cholinc 稀疏矩阵的不完全Cholesky分解 linsolve 矩阵方程组的求解 lu 矩阵的LU分解 ilu 稀疏矩阵的不完全LU分解 luinc 稀疏矩阵的不完全LU分解 qr 矩阵的正交三角分解 pinv 矩阵的广义逆 4. 与特征值或奇异值有关的矩阵函数 eig 方阵的特征值与特征向量 svd 矩阵的奇异值分解 eigs 稀疏矩阵的一些(默认6个)最大特征值与特征向量svds 矩阵的一些(默认6个)最大奇异值与向量 hess 方阵的Hessenberg形式分解 schur 方阵的Schur分解

(整理)Matlab笔记之五----MATLAB常用函数简介.

MATLAB 常用函数简介 一、通用命令 1.1帮助命令 demo 启动演示程序helpbrowser 超文本文档帮助信息help 在线帮助命令 helpdesk 超文本文档帮助信息doc 以超文本方式显示帮助文档Helpwin 打开在线帮助窗 1.2工作空间管理 clear 从内存中清除变量和函数 quit 退出MATLAB clc 清除命令窗口 exit 关闭MATLAB save 把变量存入数据文件中 who 列出工作空间中的变量 load 从文件中读入数据变量 whos 列出工作内存中变量的详细信息 format 设置数据显示格式 what 列出当前目录中的Matlab文件 more 分页输出 which 查找指定函数和文件的位置 1.3路径管理 addpath 添加搜索路径 path 控制MATLAB的搜索路径 rmpath

从搜索路径中删除目录pathtool 弹出修改搜索路径窗口 1.4操作系统指令 cd 改变当前工作目录 pwd 显示当前工作目录名copyfile 文件拷贝 getenv 给出环境值 delete 删除文件 dos 执行DOS指令并返回结果dir 列出文件 ! 执行外部应用程序 mkdir 创建目录 rmdir 删除目录 二、基本运算 2.1算术运算 + 加/ 斜杠或右除.* 数组乘- 减 \ 反斜杠或左除 ./ 数组右除 * 矩阵乘 ^ 矩阵乘方 .\ 数组左除 dot 向量内积 cross 向量叉积 .^ 数组乘方

Kronecker乘积或张量积2.2关系运算 < 小于 > 大于 == 等于 <= 小于或等于 >= 大于或等于 ~= 不等于 2.3逻辑操作 & 逻辑“与” | 逻辑“或” ~ 逻辑“非” xor 逻辑“异或” any 有非零元素则为真 all 所有元素非零时为真2.4特殊运算符 = 赋值号 ‘ 引号 () 园括号 . 小数点 ,

矩阵及其运算课后习题答案

矩阵及其运算课后习题答案

第二章 矩阵及其运算课后习题答案 1.已知线性变换: ??? ??++=++=++=, 323,53,223213 32123211y y y x y y y x y y y x 求从变量3 2 1 ,,x x x 到变量3 2 1 ,,y y y 的线性变换. 解 由已知:?? ??? ??????? ??=???? ? ??221321323513122y y y x x x 故 ????? ????? ?? ??=????? ??-3211 221323513122x x x y y y ? ???? ??????? ? ?----=321423736947y y y ??? ??-+=-+=+--=3213 32123211423736947x x x y x x x y x x x y 2.已知两个线性变换 ??? ??++=++-=+=, 54,232, 23213 3212311y y y x y y y x y y x ??? ??+-=+=+-=, 3,2, 3323 312211z z y z z y z z y 求从3 2 1 ,,z z z 到3 2 1 ,,x x x 的线性变换. 解 由已知 ????? ??????? ??-=????? ??221321514232102y y y x x x ????? ??????? ??--????? ? ?-=321310102013514232102z z z ?? ??? ??????? ??----=321161109412316z z z 所以有 ??? ??+--=+-=++-=3213 321232111610941236z z z x z z z x z z z x 3.设 ????? ??--=111111111A , ,150421 321 ????? ? ?--=B 求 .23B A A AB T 及- 解 A A B 23-????? ? ?--????? ??--=15042 13211111111113?? ?? ? ??---1111111112

线性代数习题册(答案)

线性代数习题册答案 第一章 行列式 练习 一 班级 学号 姓名 1.按自然数从小到大为标准次序,求下列各排列的逆序数: (1)τ(3421)= 5 ; (2)τ(135642)= 6 ; (3)τ(13…(2n-1)(2n)…42) = 2+4+6+…+(2 n-2)= n (n-1). 2.由数字1到9组成的排列1274i56j9为偶排列,则i= 8 、j= 3 . 3.在四阶行列式中,项12233441a a a a 的符号为 负 . 4.0 03 422 1 5 = -24 . 5.计算下列行列式: (1)1 22 2 122 2 1 -----= -1+(-8)+(-8)-(-4)-(-4)―(-4)= -5 或 (2)11 1 11 1 λ λλ ---= -3λ+1+1-(-λ)-(-λ)―(-λ) = -3λ+3λ+2=2 (2)(1)λλ-+

练习 二 班级 学号 姓名 1.已知3阶行列式det()ij a =1,则行列式det()ij a -= -1 . 3(1)11-?=- 2. 1 11 2 344 9 16 = 2 . 3.已知D= 1 012110311101 2 5 4 --,则41424344A A A A +++= —1 . 用1,1,1,1替换第4行 4. 计算下列行列式: (1)111a b c a b c a b c +++ = 1323311 01 1 0011,0 110111111r r r r c c a b c b c a b c a b c -----+-==++++++ (2) x y x y y x y x x y x y +++

矩阵函数

1.1.1 矩阵函数的定义 定义1.1 设幂级数z a k k k ∑+∞ =0的r,且当∣z ∣

相关主题
文本预览
相关文档 最新文档