线性代数中的数值计算.pptx
《线性代数中的数值计算.pptx》由会员分享,可在线阅读,更多相关《线性代数中的数值计算.pptx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1线性代数中的数值计算线性代数中的数值计算目录目录n n4.1 特殊矩阵的生成n n4.2 矩阵分析n n4.3 线性方程组求解n n4.4 矩 阵 分 解n n4.5 超越函数运算n n4.6 稀疏矩阵的处理第1页/共45页4.1 4.1 特殊矩阵的生成特殊矩阵的生成特殊矩阵的生成特殊矩阵的生成n n4.1.1 4.1.1 通用的特殊矩阵通用的特殊矩阵n nzeroszeros函数:产生全函数:产生全0 0矩阵,即零矩阵。矩阵,即零矩阵。n nonesones函数:产生全函数:产生全1 1矩阵,即幺矩阵。矩阵,即幺矩阵。n neyeeye函数:产生单位矩阵,即对角线上的元素为函数:产生
2、单位矩阵,即对角线上的元素为1 1、其余元素为、其余元素为0 0的矩阵。的矩阵。n nrandrand函数:产生函数:产生0 01 1均匀分布的随机矩阵。均匀分布的随机矩阵。n nrandnrandn函数:产生均值为函数:产生均值为0 0、方差为、方差为1 1的标准正态分布随机矩阵。的标准正态分布随机矩阵。n n这几个函数的调用格式相似,如果这个函数的参数只是一个,那么这几个函数的调用格式相似,如果这个函数的参数只是一个,那么MATLABMATLAB将会创建一个方将会创建一个方阵,行数和列数均为这个参数;如果这个函数的参数有两个,那么第一个参数代表行数,第阵,行数和列数均为这个参数;如果这个函
3、数的参数有两个,那么第一个参数代表行数,第二个参数代表列数。下面以产生零矩阵的二个参数代表列数。下面以产生零矩阵的zeroszeros函数为例进行说明。函数为例进行说明。n nzeroszeros函数的调用格式如下。函数的调用格式如下。n nzeros(m)zeros(m):产生:产生m mm m零矩阵。零矩阵。n nzeros(m,n)zeros(m,n):产生:产生m mn n零矩阵。当零矩阵。当m m=n n时,等同于时,等同于zeros(zeros(m m)。n nzeros(size(A)zeros(size(A):产生与矩阵:产生与矩阵AA同样大小的零矩阵。同样大小的零矩阵。第2页
4、/共45页n n【例4.1】分别建立33、32和与矩阵A同样大小的零矩阵。n n(1 1)建立一个)建立一个3333的零矩阵。的零矩阵。n nzeros(3)zeros(3)n nans=ans=n n 0 0 0 0 0 0n n 0 0 0 0 0 0n n 0 0 0 0 0 0n n(2 2)建立一个)建立一个3232的零矩阵。的零矩阵。n nzeros(3,2)zeros(3,2)n n(3 3)设)设A A为为2323矩阵,则可以用矩阵,则可以用zeros(size(A)zeros(size(A)建立一个与矩阵建立一个与矩阵A A同样大小的零矩阵。同样大小的零矩阵。n nA=1 2
5、 3;4 5 6;A=1 2 3;4 5 6;%产生一个产生一个2323阶矩阵阶矩阵A An nzeros(size(A)zeros(size(A)%产生一个与矩阵产生一个与矩阵A A同样大小的同样大小的零矩阵零矩阵第3页/共45页n n【例4.2】建立随机矩阵:n n(1 1)在区间)在区间10,3010,30内均匀分布的内均匀分布的4 4阶随机矩阵。阶随机矩阵。n n(2 2)均值为)均值为0.60.6、方差为、方差为0.10.1的的4 4阶正态分布随机阶正态分布随机矩阵。矩阵。n n产生产生(0,1)(0,1)区间均匀分布随机矩阵使用区间均匀分布随机矩阵使用randrand函数,假设函数
6、,假设得到了一组满足得到了一组满足(0,1)(0,1)区间均匀分布的随机数区间均匀分布的随机数x xi i,则若,则若想得到在任意想得到在任意 a a,b b 区间上均匀分布的随机数,只需区间上均匀分布的随机数,只需用用y yi i=a a+(+(b ba a)x xi i计算即可。计算即可。n n产生均值为产生均值为0 0、方差为、方差为1 1的标准正态分布随机矩阵使的标准正态分布随机矩阵使用用randnrandn函数,假设已经得到了一组标准正态分布随函数,假设已经得到了一组标准正态分布随机数机数xi xi,如果想更一般地得到均值为,如果想更一般地得到均值为、方差为、方差为 2 2的的随机数
7、,可用随机数,可用y yi i=+xxi i计算出来。针对本例,命令计算出来。针对本例,命令如下:如下:n na=10;a=10;n nb=30;b=30;n nx=a+(b-a)*rand(4)x=a+(b-a)*rand(4)n ny=0.6+sqrt(0.1)*randn(4)y=0.6+sqrt(0.1)*randn(4)第4页/共45页n n4.1.2 4.1.2 面向特定应用的特殊矩阵面向特定应用的特殊矩阵n n1 1魔方矩阵魔方矩阵n n魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于素和都相等。对于
8、n n阶魔方阵,其元素由阶魔方阵,其元素由1 1,2 2,3 3,n n2 2共共n n2 2个个整数组成。整数组成。MATLABMATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n)magic(n),其功能,其功能是生成一个是生成一个n n阶魔方阵。阶魔方阵。n n【例例4.34.3】将将101101125125等等2525个数填入一个个数填入一个5 5行行5 5列的表格中,使其列的表格中,使其每行、每列及对角线的和均为每行、每列及对角线的和均为565565。n n一个一个5 5阶魔方矩阵的每行、每列及对角线的和均为阶魔方矩阵的每行、每列及对角线的和均为6565,对其每个,
9、对其每个元素都加元素都加100100后这些和变为后这些和变为565565。完成其功能的命令如下:。完成其功能的命令如下:n nM=100+magic(5)M=100+magic(5)n nM=M=n n 117 124 101 108 115 117 124 101 108 115n n 123 105 107 114 116 123 105 107 114 116n n 104 106 113 120 122 104 106 113 120 122n n 110 112 119 121 103 110 112 119 121 103n n 111 118 125 102 109 111 11
10、8 125 102 109第5页/共45页n n2范得蒙矩阵n n范得蒙(范得蒙(VandermondeVandermonde)矩阵的最)矩阵的最后一列全为后一列全为1 1,倒数第二列为一个,倒数第二列为一个指定的向量,其他各列是其后列指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩一个指定向量生成一个范得蒙矩阵。在阵。在MATLABMATLAB中,函数中,函数vander(V)vander(V)生成以向量生成以向量VV为基础向量为基础向量的范得蒙矩阵。的范得蒙矩阵。n nA=vander(1:4)A=vander(1:4)n n
11、A=A=n n 1 1 1 1 1 1 1 1n n 8 4 2 1 8 4 2 1n n 27 9 3 1 27 9 3 1n n 64 16 4 1 64 16 4 1第6页/共45页n n3希尔伯特矩阵n n希尔伯特(希尔伯特(HilbertHilbert)矩阵是一种数学变换矩阵,)矩阵是一种数学变换矩阵,它的每个元素它的每个元素h hij ij=1/(=1/(i i+j j1)1)。在。在MATLABMATLAB中,中,生成希尔伯特矩阵的函数是生成希尔伯特矩阵的函数是hilb(n)hilb(n)。n n专门求希尔伯特矩阵的逆的函数专门求希尔伯特矩阵的逆的函数invhilb(n)invh
12、ilb(n)n nformat rat%format rat%以有理形式输出以有理形式输出n nH=hilb(4)H=hilb(4)n nH=H=n n 1 1/2 1/3 1/4 1 1/2 1/3 1/4 n n 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 n n 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 n n 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 n nH=invhilb(4)H=invhilb(4)n nformat short%format short%恢复默认输出格式恢复默认输出格式第7页/共45页n n4托普利
13、兹矩阵n n托普利兹(托普利兹(ToeplitzToeplitz)矩阵除第一)矩阵除第一行第一列外,其他每个元素都与行第一列外,其他每个元素都与左上角的元素相同。生成托普利左上角的元素相同。生成托普利兹矩阵的函数是兹矩阵的函数是toeplitz(x,y)toeplitz(x,y),它生,它生成一个以成一个以x x为第一列、为第一列、y y为第一行为第一行的托普利兹矩阵。这里的托普利兹矩阵。这里x x、y y均为均为向量,两者不必等长。向量,两者不必等长。toeplitz(x)toeplitz(x)用向量用向量x x生成一个对称的托普利兹生成一个对称的托普利兹矩阵。矩阵。n nT2=toepli
14、tz(1:4)T2=toeplitz(1:4)n nT2=T2=n n 1 2 3 4 1 2 3 4 n n 2 1 2 3 2 1 2 3 n n 3 2 1 2 3 2 1 2 n n 4 3 2 1 4 3 2 1 第8页/共45页n n5伴随矩阵n n生成伴随矩阵的函数是生成伴随矩阵的函数是compan(compan(p p),其中,其中p p是一是一个多项式的系数向量,高次幂系数排在前,低个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的次幂排在后。例如,为了求多项式的x x3 377x x+6+6的伴随矩阵,可使用如下命令:的伴随矩阵,可使用如下命令:n n
15、p=1,0,-7,6;p=1,0,-7,6;n ncompan(p)compan(p)n nans=ans=n n 0 7 -6 0 7 -6n n 1 0 0 1 0 0n n 0 1 0 0 1 0 第9页/共45页n n6 6帕斯卡矩阵帕斯卡矩阵n n我们知道,二次项我们知道,二次项(x x+y y)n n展开后的系数随展开后的系数随n n的增大组成一个三角形表,称为杨辉三角形。的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(由杨辉三角形表组成的矩阵称为帕斯卡(PascalPascal)矩阵,它的元素)矩阵,它的元素p p1 1j j=1=1,p p i i1
16、 1=1=1,p p ij ij=p p i i1,1,j j11+p p i i11,j j(i i11,j j11)。函数)。函数pascal(n)pascal(n)生成一个生成一个n n阶帕斯卡矩阵。阶帕斯卡矩阵。n n【例例4.54.5】求求(x x+y y)4 4的展开式。的展开式。n n在在MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:n npascal(5)pascal(5)n nans=ans=n n 1 1 1 1 1 1 1 1 1 1n n 1 2 3 4 5 1 2 3 4 5n n 1 3 6 10 15 1 3 6 10 15n n 1 4 10
17、20 35 1 4 10 20 35n n 1 5 15 35 70 1 5 15 35 70n n矩阵矩阵次对角线次对角线上的元素上的元素1 1,4 4,6 6,4 4,1 1即为展开式的系数,即即为展开式的系数,即(x x+y y)4 4=x x4 4+4+4x x3 3y y+6+6x x2 2y y2 2+4+4xyxy3 3+y y4 4第10页/共45页4.2 4.2 矩阵分析矩阵分析矩阵分析矩阵分析n n4.2.1 4.2.1 矩阵结构变换矩阵结构变换n n1 1对角阵对角阵n n只有对角线上有非只有对角线上有非0 0元素的矩阵称为对角矩阵,对角线上的元素都为元素的矩阵称为对角矩
18、阵,对角线上的元素都为1 1的对角矩阵称为单位矩的对角矩阵称为单位矩阵。阵。n n(1 1)提取矩阵的对角线元素)提取矩阵的对角线元素n n设设AA为为m mn n矩阵,函数矩阵,函数diag(diag(AA)用于提取矩阵用于提取矩阵AA主对角线元素,产生一个具有主对角线元素,产生一个具有min(min(m m,n n)个元素的个元素的列向量。例如:列向量。例如:n nA=1,2,3;4,5,6A=1,2,3;4,5,6n nA=A=n n 1 2 3 1 2 3n n 4 5 6 4 5 6n nD=diag(A)D=diag(A)n nD=D=n n 1 1n n 5 5n ndiag(A
19、,k)diag(A,k)提取第提取第k k条对角线的元素。主对角线为第条对角线的元素。主对角线为第0 0条对角线;与主对角线平行,往上为第条对角线;与主对角线平行,往上为第1 1条,第条,第2 2条,条,第,第n n条对角线,往下为第条对角线,往下为第1 1条,第条,第2 2条,条,第,第n n条对角线。条对角线。第11页/共45页n n(2)构造对角矩阵n n设设VV为具有为具有m m个元素的向量,个元素的向量,diag(V,k)diag(V,k)的功能是的功能是产生一个产生一个n nn n(n n=m m+|+|k k|)对角阵,其第)对角阵,其第k k条条对角线的元素即为向量对角线的元素
20、即为向量VV的元素。的元素。n n例如:例如:n ndiag(1:3,-1)diag(1:3,-1)n nans=ans=n n 0 0 0 0 0 0 0 0n n 1 0 0 0 1 0 0 0n n 0 2 0 0 0 2 0 0n n 0 0 3 0 0 0 3 0n n省略省略k k时,相当于时,相当于k k为为0 0,其主对角线元素即为向,其主对角线元素即为向量量VV的元素。的元素。第12页/共45页n n【例4.6】先建立55矩阵A,然后将A的第一行元素乘以1,第二行乘以2,第五行乘以5。n n用一个对角矩阵左乘一个矩阵时,相当于用对用一个对角矩阵左乘一个矩阵时,相当于用对角阵的
21、第一个元素乘以该矩阵的第一行,用对角阵的第一个元素乘以该矩阵的第一行,用对角阵的第二个元素乘以该矩阵的第二行角阵的第二个元素乘以该矩阵的第二行依依此类推,因此,只需按要求构造一个对角矩阵此类推,因此,只需按要求构造一个对角矩阵D D,并用,并用D D左乘左乘A A即可。命令如下:即可。命令如下:n nA=1:5;2:6;3:7;4:8;5:9A=1:5;2:6;3:7;4:8;5:9n nD=diag(1:5);D=diag(1:5);n nD*A%D*A%用用DD左乘左乘A,A,对对A A的每行乘以一个指定的每行乘以一个指定常数常数第13页/共45页n n2三角阵n n三角阵又进一步分为上三
22、角阵和下三角阵。所三角阵又进一步分为上三角阵和下三角阵。所谓上三角阵,即矩阵的对角线以下的元素全为谓上三角阵,即矩阵的对角线以下的元素全为0 0的一种矩阵,而下三角阵则是对角线以上的元的一种矩阵,而下三角阵则是对角线以上的元素全为素全为0 0的一种矩阵。的一种矩阵。n n与矩阵与矩阵A A对应的上三角阵对应的上三角阵B B是与是与A A具有相同的行具有相同的行数和列数的一个矩阵,并且数和列数的一个矩阵,并且B B的对角线以上的对角线以上(含对角线)的元素和(含对角线)的元素和A A对应相等,而对角线对应相等,而对角线以下的元素等于以下的元素等于0 0。求矩阵。求矩阵A A的上三角阵的的上三角阵
23、的MATLABMATLAB函数是函数是triu(A)triu(A)。n ntriu(A,k)triu(A,k),其功能是求矩阵,其功能是求矩阵AA的第的第k k条对角线以上的元条对角线以上的元素。素。n n在在MATLABMATLAB中,提取矩阵中,提取矩阵AA的下三角矩阵的函数是的下三角矩阵的函数是tril(A)tril(A)和和tril(A,k)tril(A,k)第14页/共45页n n3矩阵的转置n n所谓转置,即把源矩阵的第一行变成目标矩阵所谓转置,即把源矩阵的第一行变成目标矩阵第一列,第二行变成第二列第一列,第二行变成第二列依此类推。显依此类推。显然,一个然,一个m m行行n n列的
24、矩阵经过转置运算后,变成列的矩阵经过转置运算后,变成一个一个n n行行m m列的矩阵。列的矩阵。MATLABMATLAB中,转置运算符中,转置运算符是单撇号是单撇号()。n nA=1:3;1:3;1:3A=1:3;1:3;1:3n nB=AB=A第15页/共45页n n4 4矩阵的旋转矩阵的旋转n n在在MATLABMATLAB中,可以很方便地以中,可以很方便地以9090为单位对矩阵为单位对矩阵AA按逆时针方向进行旋转。利用函数按逆时针方向进行旋转。利用函数rot90(A,k)rot90(A,k)将矩阵将矩阵AA旋转旋转9090的的k k倍,当倍,当k k为负整数时,对矩阵为负整数时,对矩阵A
25、A按顺时针方向进行旋转;当按顺时针方向进行旋转;当k k为为1 1时可省略。例如,将时可省略。例如,将AA按逆时针方向旋转按逆时针方向旋转9090,命令如下:,命令如下:n nA=9,37,38;-2,31,8;0,84,5;A=9,37,38;-2,31,8;0,84,5;n nB=rot90(A)B=rot90(A)n nB=B=n n 38 8 5 38 8 5n n 37 31 84 37 31 84n n 9 -2 0 9 -2 0n nrot90(A,4)rot90(A,4)n nans=ans=n n 9 37 38 9 37 38n n -2 31 8 -2 31 8n n 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性代数 中的 数值 计算
限制150内