matlab-线性代数_第1页
matlab-线性代数_第2页
matlab-线性代数_第3页
matlab-线性代数_第4页
matlab-线性代数_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、矩阵的生成1.简单的矩阵的生成 (1)直接输入矩阵元素 对直接从键盘输入一系列元素生成矩阵,只要遵循下面几个基本原则: 1、矩阵每一行的元素必须用空格或逗号分开; 2、在矩阵中,采用分号或回车表明每一行的结束; 3、整个输入矩阵必须包含在方括号“”中。 注意:创建矩阵在方括号的末尾,可以用回车或分号结束。用回车结束,显示所输入的矩阵;用分号结束,所输入的矩阵不显示。 输入:A=4,5,7,8;6,1,2,5;3,5,4,6;4,2,4,8 显示:A =     4     5   

2、  7     8                        6     1     2     5         

3、0;              3     5     4     6                        4 

4、;    2     4     8 (2)生成大矩阵 在MATLAB中,可以将小矩阵连接起来生成一个较大的矩阵。事实上,前面直接输入法生成矩阵就是将单个元素连接起来生成矩阵。方括号“”就是连接算子。 输入:B=A,A+1;A+2,A+3 显示:B =      4     5     7     8  &#

5、160;  5     6     8     9      6     1     2     5     7     2     3     6

6、     3     5     4     6     4     6     5     7      4     2     4  &

7、#160;  8     5     3     5     9      6     7     9    10     7     8    10 

8、0;  11      8     3     4     7     9     4     5     8      5     7     6&

9、#160;    8     6     8     7     9      6     4     6    10     7     5   &

10、#160; 7    11 2.常用矩阵的生成下面介绍一些常用矩阵的生成命令:zeros,ones,eye,rand和randn。 (1)zeros生成全0阵 调用格式为:B=zeros(n):生成n´n的全0矩阵;如果n不是标量将给出出错信息。 B=zeros(m,n):生成m´n的全0矩阵。 B=zeros(size(A):生成与矩阵A大小相同的全0阵。 注意:在MATLAB中不需要预先定义矩阵的维数,MATLAB自动为矩阵分配存储空间。尽管如此,如果采用全零阵为矩阵生成的全部元素或某一行、某一列的元素保留存储空间,则大多数MATLAB程序

11、将运行得更快。 (2)ones生成全1阵 调用格式为: Y=ones(n):生成n´n的全1矩阵;如果n不是标量将给出出错信息。 Y=ones(m,n):生成m´n的全1阵。 Y=ones(size(A):生成与矩阵A大小相同的全1阵。 (3)eye生成单位阵 调用格式为: Y=eye(n):生成n´n的单位阵。 Y=eye(m,n):生成m´n的矩阵,其对角线元素为1,其它元素为0。 Y=eye(size(A):生成一个与矩阵A大小相同的单位阵。 注意:在MATLAB中,单位阵的定义比线性代数中的定义更广泛。例如: 输入:eye(3,2) 显示:ans

12、 =      1     0      0     1      0     0 (4)rand生成均匀分布的随机阵 调用格式为: Y=rand(n):生成一个n´n的随机阵:如果n不是标量将给出出错信息。 Y=rand(m,n):生成一个m´n随机阵。 Y=rand(size(A):生成一个与矩阵A大小相同的随机阵。 说明:rand函

13、数产生0,1之间均匀分布的随机数。 (5)randn正态分布随机阵 命令的形式为: Y=randn(n):生成一个n´n的随机阵:如果n不是标量将给出出错信息。 Y=randn(m,n):生成一个m´n随机阵。 Y=rand(size(A):生成一个与矩阵A大小相同的随机阵。 二、矩阵运算在MATLAB语言中,矩阵的运算既可以使用运算符,也可以使用等效的运算函数。 (1)加法和减法运算 对于矩阵运算可以由下面的命令执行加减法: C=A+B或C=plus(A,B) C=A-B或C=minus(A,B) 这里要求A和B的大小必须相同,因为加减运算是把A和B的对应元素相加减。如果

14、A和B的大小不同,MATLAB将自动给出错误信息。 特殊情况是A和B中有一个是标量,MATLAB允许标量和任意大小的矩阵相加减,结果是把矩阵中的每个元素和这个标量相加减。 在MATLAB中,算术运算符“+”和“-”可以作为一元运算符使用。+A就是取A,而-A则是对A中的每个元素取负。 输入:A=1 2 3;4 5 6; B=7 8 9;4 6 8;C=A+B 显示:C =      8    10    12      8   

15、; 11    14 输入:C=C-2 显示:C =      6     8    10      6     9    12 输入:C=-C 显示:C =     -6    -8   -10     -6  

16、60; -9   -12 (2)乘法运算 矩阵乘的运算命令为:A*B或mtimes(A,B) 矩阵乘A*B是矩阵A和B的线性代数乘。就是说,对于非标量A和B,矩阵A的列数必须等于矩阵B的行数。标量可以和任意大小的矩阵相乘,就是线性代数中的数与矩阵的乘法。输入:A=1 2 3;4 5 6;B=ones(3)显示:B =      1     1     1      1    

17、1     1      1     1     1 输入:C=A*B 显示:C =      6     6     6     15    15    15 (3)矩阵求逆 行数和列数相等的矩阵称为方阵,只有方阵有逆矩阵。方阵

18、的求逆函数为: B=inv(A) 该函数返回方阵A的逆阵。如果A不是方阵或接近奇异的,则会给出警告信息。 在实际应用中,很少显式的使用矩阵的逆。在MATLAB中不是使用逆阵x=inv(A)*B来求线性方程组Ax=B的解,而是使用矩阵除法运算x=AB来求解。因为MATLAB设计求逆函数inv时,采用的是高斯消去法,而设计除法解线性方程组时,并不求逆,而是直接采用高斯消去法求解,有效的减小了残差,并提高了求解的速度。因此,MATLAB推荐尽量使用除法运算,少用求逆运算。 (4)除法运算 在线性代数中,只有矩阵的逆的定义,而没有矩阵除法的运算。而在MATLAB中,定义了矩阵的除法运算。矩阵除法的运算

19、在MATLAB中是一个十分有用的运算。根据实际问题的需要,定义了两种除法命令:左除和右除。 矩阵左除: C=AB或C=mldivide(A,B) 矩阵右除; C=A/B或C=mrdivide(A,B) 通常矩阵左除不等于右除,如果A是方阵,AB等效于A的逆阵左乘矩阵B。也就是inv(A)*B。如果A是一个n´n矩阵,B是一个n维列向量,或是有若干这样的列的矩阵,则AB就是采用高斯消去法求得的方程AX=B的解。如果A接近奇异的,MATLAB将会给出警告信息。 如果A是一个m´n矩阵,其中m不等于n,B是一个m维列向量,或是由若干这样的列的矩阵,则X=AB是不定或超定方程组AX

20、=B的最小二乘解。通过QR分解确定矩阵A的秩k,方程组的解X每一列最多只有k个非零元素。如果k<n,方程的解是不唯一的,用矩阵除法求得的最小二乘解是这种类型解中范数最小的。 B/A大体等效于B*inv(A) (B右乘A的逆阵),但在计算方法上存在差异,更精确的,B/A=(ATBT)T。 输入:A=1 2 3;4 5 7;4 7 9;B=1 3 7;3 5 7;8 5 1;矩阵左除。输入:AB 显示:ans =   -0.7500   -0.5000   -2.0000    5.7500   -3.

21、5000  -18.0000   -3.2500    3.5000   15.0000 矩阵右除。输入:A/B 显示:ans =   -0.0217    0.4565   -0.0435    0.6522    0.3043    0.3043   -0.5652    1.8696   -0.1304(5)乘方运算矩阵乘

22、方命令为:C=AB或C=mpower(A,p) 矩阵的乘方运算要求A是一个方阵,且p是一个标量,Ap的意思是矩阵A的p次方。如果p是个整数,则Ap是矩阵A自乘p次;如果p是一个负整数,则首先对A求逆,然后将它自乘p次。输入:A=1 2 3;4 5 7;4 7 9;A2显示:ans =     21    33    44    52    82   110    68   10

23、6   142输入:A-2 显示:ans =    -1.0000   -1.3750    1.3750    6.0000   -0.6250   -1.3750   -4.0000    1.1250    0.3750(6)方阵的行列式方阵的行列式运算函数是:a=det(A) 如果矩阵A不是方阵,会给出警告信息。输入:A=4 1 2 4;1 2 0

24、2;10 5 2 0;0 1 1 7;det(A)显示:ans =     0(7)矩阵的秩矩阵的求秩函数是:a=rank(A) 输入:A=3 1 0 2;1 -1 2 -1;1 3 -4 4;rank(A)显示:ans =  2三、矩阵变换(1)矩阵旋转矩阵旋转函数的用法如下:1B=fliplr(A):矩阵A关于垂直轴沿左右方向进行列维翻转。2B=flipud(A):矩阵A关于水平轴沿上下方向进行行维翻转。3B=rot90(A):矩阵A逆时针方向旋转90°4B=rot(A,k):矩阵A逆时针旋转k*90°,其中k为整数输入

25、:A=1 2 3;4 5 6 显示:A =      1     2     3     4     5     6输入:B=fliplr(A) 显示:B =      3     2     1   

26、0; 6     5     4输入:C=flipud(A) 显示:C =      4     5     6     1     2     3输入:D =rot90(A) 显示:D=      3   &

27、#160; 6     2     5     1     4(2)矩阵的产生函数diag diag函数用于产生或提取对角线元素。它的用法有如下几种:1X=diag(v,k):当v是有n个元素的向量,返回方阵X,它的大小为n+|k|,向量v的元素位于X的第k条对角向上。k=0表示主对角线,k>0为主对角线以上,k<0为主对角线以下。2X=diag(v):将向量v的元素放在矩阵X的主对角线上,等同于上面k=0的情况。3v=di

28、ag(X,k):对于矩阵X,返回列向量v,它的元素由X的第k条对角线的元素构成。4v=diag(X):返回X的主对角线元素,等同于上面k=0的情况。输入:v=1 2 3;diag(v,0)显示:ans =      1     0     0     0     2     0     0  

29、60;  0     3输入:diag(v,-1) 显示:ans =      0     0     0     0     1     0     0     0     0 

30、    2     0     0     0     0     3     0输入:X=1 2 3;4 5 6;7 8 9 显示:X =      1     2     3  

31、0;  4     5     6     7     8     9输入:diag(X) 显示:ans =      1     5     9输入:diag(X,1) 显示:ans =      2  &#

32、160;  6(3)矩阵的提取函数tril和triu 函数tril用于提取下三角矩阵,用法如下:1L=tril(X):返回X的下三角部分,其余部分用“0”补齐。2L=tril(X,k):返回X的第k条对角线以下的元素,其余部分用“0”补齐。k=0是主对角线,k>0位于主对角线以上,k<0位于主对角线以下。函数triu用于产生或提取上三角矩阵,用法如下:1U=triu(X):返回X的上三角部分元素,其余部分用“0”补齐。2U=triu(X,k):返回X的第k条对角线以上的元素,其余部分用“0”补齐。k=0是主对角线,k>0位于主对角线以上,k<0位于主对角线以下

33、。输入:A=1,2,3;4,5,6 显示:A =      1     2     3     4     5     6输入:tril(A) 显示:ans =      1     0     0   

34、60; 4     5     0输入:tril(A,1) 显示:ans =      1     2     0     4     5     6输入:triu(A) 显示:ans =      1     2     3     0     5&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论