xin第2章.ppt_第1页
xin第2章.ppt_第2页
xin第2章.ppt_第3页
xin第2章.ppt_第4页
xin第2章.ppt_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 MATLAB 运算基础(1),MALAB 7.X程序设计,2/59,主要内容:,变量的定义及赋值; 数值数组、字符串数组、元胞数组和构架数组等数据类型; 矩阵运算的定义和规则; 数组运算的定义和规则。,2.1 概述,MALAB 7.X程序设计,4/59,1)矩阵:由mn个数组成的排成m行n列的一个矩形的数表,其中00矩阵为空矩阵()。数表中第i(1im)行第j(1jn)列的数据称为矩阵元素 2)标量 :11的矩阵,即为只含一个数的矩阵。 3)向量:1n或n1的矩阵,即只有一行的或者一列的矩阵。只有一行的矩阵称为行向量,只有一列的矩阵称为列向量。数表中第i(1in)个数据称为向量元素。

2、4)数组:矩阵的延伸,一般指多维数组,其中标量、向量和矩阵都是数组的特例。,2.1 概述,2.1.1 数据术语,MALAB 7.X程序设计,5/59,2.1.2 数据类型,数据类型包括数值型、字符串型、元胞型、构架型等。数值型有单精度型、双精度型和整数型。整数型有uint8,uint16,uint32和uint64等无符号型和int8,int16,int32和int64等符号型整数。 数值型数据可以用带小数点的形式和科学计数法表示,数值的表示范围是10-30910+309。 -20、1.25、2.88e-56(表示2.8810-56)、7.68e204(表示7.6810204) 都是合法的数据

3、表示。 一般在计算时采用双精度型,在输出时有多种数值显示格式可供选择。,MALAB 7.X程序设计,6/59,数值显示格式的设置通过format 命令, 格式如下:,format short 默认设置,以4位小数浮点格式形式输出 format long 以14位小数浮点格式形式输出 format short e 以4位小数加e+000浮点格式输出 format long e以14位小数加e+000浮点格式输出,MALAB 7.X程序设计,7/59,format bank 以两位小数形式输出 format rat 以近似分数形式输出,2.2 变量,MALAB 7.X程序设计,9/59,2.2 变

4、量,变量的命名规则为: 1 变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号。 2 关键字和函数名不能作为变量名。 3 变量名不能超过63个字符。 4 变量名区分字母的大小写,即大小写敏感。 。,2.2.1变量的命名,MALAB 7.X程序设计,10/59,2.2.2变量的赋值,变量的赋值通常有两种形式: 1 变量=表达式 2 表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个数组。 形式1中,= 代表的是赋值操作,将表达式的值赋给MATLAB的变量;形式2中,将表达式的值赋给MATLAB的临时变量ans。,MALAB 7.X程序设计

5、,11/59,例2-1 在命令窗口输入下述语句,并按回车键执行,分别给变量a、b、c赋值:,a=1% a为标量 b=0 1 % b为行向量 c=1 2;3 4;5 6 % c为矩阵即二维数组,MALAB 7.X程序设计,12/59,2.2.3 特殊变量,系统本身定义的变量。在使用时应尽量避免对这些变量重新赋值。 ans,默认变量名 i,j, 虚数单位 inf , 正无穷大 nan,非数 Pi 圆周率 Nargin 函数输入参数个数 Nargout 函数输出参数个数,2.3 内存变量的存取,MALAB 7.X程序设计,14/59,save函数是将Matlab工作空间中的变量存入磁盘。 常见格式如

6、下: save 将当前空间中的所有变量以二进制格式存入名为matlab.mat(默认的文件名)的文件中。 save dfile (save 路径+dfile) 将当前空间中的所有变量以二进制格式存入当前路径下名为dfile.mat的文件中。 save dfile a b 只把变量a和b以二进制格式存入dfile.mat文件。a 和b间用空格隔开,MALAB 7.X程序设计,15/59,save dfile.dat a ascii 将变量a以8位ASCII码的形式存入dfile.dat文件 save(fname,a,-ascii) fname是一个预先定义好的包含文件名的字符串,该用法将变量a以

7、ASCII码格式存入由fname定义的文件中。由于在这种用法中,文件名是一个字符变量,因此可以方便地通过编程的方法存储一系列数据文件,MALAB 7.X程序设计,16/59,load函数(将磁盘上的数据读入工作空间) 具体格式如下 load 把磁盘文件matlab.mat的内容读入内存 load dfile 把磁盘文件 dfile.mat的内容读入内存 x=load(fname) fname是一个预先定义好的包含文件名的字符串,将由fname定义文件名的数据文件读入变量x中。,2.4 数组,MALAB 7.X程序设计,18/59,2.4.1数值数组的建立,1 赋值语句建立数组 矩阵的建立可以通

8、过赋值语句实现,赋值符号左边为变量名,右边为矩阵元素。矩阵元素应用方括号()括住,元素可以是数值或表达式元素,表达式可以由数字、变量、运算符和函数等组成。 矩阵同行内的元素间用逗号或空格隔开,行与行之间用分号或回车键隔开。,MALAB 7.X程序设计,19/59,例2-4 在命令窗口输入语句: a=1,2,3;4,5,6;7,8,9,按回车键,命令就被执行,在MATLAB命令窗中显示以下结果:,a = 1 2 3 4 5 6 7 8 9,如果在上述输入语句末尾加上分号,则在命令窗口不显示结果。同理可以通过赋值语句建立向量。,MALAB 7.X程序设计,20/59,例2-5 在命令窗口输入语句:

9、 x=-1.3 1+2+3 sqrt(5),%sqrt是求平方根函数,按回车键,指令被执行,MATLAB命令窗中显示以下结果:,x = -1.3000 6.0000 2.2361,MALAB 7.X程序设计,21/59,例2-6 在命令窗口输入下述语句,建立复数数组: b=1+2*i,2+3*i;2-i,3-2*i,执行结果为:,b = 1.0000 + 2.0000i 2.0000 + 3.0000i 2.0000 - 1.0000i 3.0000 - 2.0000i,MALAB 7.X程序设计,22/59,elfun函数库中提供一系列复数函数:,real 复数的实数部分 real(b) i

10、mag 复数的虚数部分 imag(b) abs 绝对值或模 abs(b) angle 幅角 angle(b) 结果为弧度 angle(b)*180/pi 结果为角度 conj 共轭 conj(b),MALAB 7.X程序设计,23/59,2 简捷表达式,等间隔向量赋值可以通过简捷表达式实现。下面介绍两种为等间隔向量赋值的方法:,1)两个冒号组成等增量语句 格式:t =初值:增量:终值 说明: 初值、增量和终值分别表示开始值、步长和结束值。当增量可为负值,省略时则默认为增量为1;当增量省略或增量0而初值0时为空向量,当增量0而初值终值时也为空向量。,MALAB 7.X程序设计,24/59,例2-

11、7 简捷表达式建立向量和矩阵,t1=0:0.02:1 %产生0t11之间的行向量, 间隔为0.02,t2=5:-1:2 %产生5t12之间的行向量, 间隔为-1。,t4=2:-1:3 % 建立空矩阵,t5=1:2:5;1:3:7 %建立矩阵,MALAB 7.X程序设计,25/59,2)使用linspace和logspace函数生成向量,linspace函数的格式:,linspace(a,b,n) 功能:生成从a到b之间线性分布的n个元素的行向量。linspace(a,b,n)与a:(b-a)/(n-1):b等价。,logspace (a,b,n) 功能:生成从10a到10b之间按对数等分的n个

12、元素的行向量。,logspace函数的格式:,MALAB 7.X程序设计,26/59,例 2-8 用linspace和logspace函数生成向量,t1=linspace(0,2*pi,5)%从0到2*pi等分 成5个点 linspace(1,8,8) linspace(1,8,1) t2=logspace(0,2,3)%从1到100(即 100到102)按对数等分成3个点,MALAB 7.X程序设计,27/59,3 内建函数1) 通用特殊矩阵,利用内部语句和函数可以快速产生一些有用的矩阵, 空矩阵 eye 单位矩阵函数(只有主对角线上元素为1,其他元素为0) ones 全为1的常数矩阵(所有

13、元素都为1) rand 01 之间均匀分布的随机矩阵(随机产生) randn 元素服从从零均值单位方差正态分布的 随机矩阵 zeros 零矩阵(所有元素都为0 ) 注意:以上函数有一个参数的时候是方阵,MALAB 7.X程序设计,28/59,2)用于专门学科的特殊矩阵,(1)魔方矩阵 magic(n)(n=3) 功能:魔方矩阵的元素由1到nn 的自然数组成,其对角线上的元素为1;每行、每列及对角线上的元素之和均等于(n3+n)/2。魔方矩阵的每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,n2共n2个整数组成。,MALAB 7.X程序设计,29/59,例2-9 产生

14、3阶魔方阵。,m=magic(3) %产生3阶魔方阵,MALAB 7.X程序设计,30/59,(2) 范得蒙矩阵 vander(V),生成以向量V为基础向量的范得蒙矩阵,矩阵元素最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。,MALAB 7.X程序设计,31/59,例2-10 产生范得蒙矩阵。,v1=vander(1;2;3;5) v2=vander(1:3) v3=vander(1:4),MALAB 7.X程序设计,32/59,4 通过MAT数据文件加载矩阵,通过load命令或选择菜单FileImport Data命令

15、加载MAT数据文件来创建矩阵。,5 在M文件中创建矩阵,M文件实际上是一种包含MATLAB代码的文本文件;通过在MATLAB命令窗口中运行M文件创建矩阵。,MALAB 7.X程序设计,33/59,2.4.2数组(矩阵或向量)元素的标识,1 向量的标识 向量是由多个元素组成的,每个元素通过序号来标识。,例2-16 演示向量的标志和重新赋值。 x=1:2:7; y=x; y3=y(3) %引用y的第三个元素5 y5=y(end) %用end函数引用y的最后 一个元素7 y(3)=10 %对y的第三个元素重新赋值,MALAB 7.X程序设计,34/59,2矩阵的标识,两种标识方式: 全下标方式和单下

16、标方式。,1) 全下标方式 全下标方式标识是指出行下标和列下标的方法标识,如一个mn的矩阵a的第i(1im)行第j(1jn)列的元素可表示为a(i,j)。,MALAB 7.X程序设计,35/59,例2-17 演示矩阵元素的标识和扩充矩阵的 方法,a=1 2;3 4;5 6; %建立一个23的矩阵 a12=a(1,2) %引用a(1,2)的值 a(3,3) %引用a(3,3)的值,(3,3) 超出矩阵的大小,出错 a(3,3)=9 %扩充23的矩阵为33的 矩阵,并给a(3,3)赋值,a(3,1),a(3,2)自动赋值为0 a = 1 2 0 3 4 0 5 6 9 注意:如果用户给出的下标值超

17、出了原来的行数或列数,将自动扩展原来的矩阵,并将扩展未赋值的矩阵元素置为零。,MALAB 7.X程序设计,36/59,2) 单下标方式(按照列优先存储),以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 根据全下标换算出单下标的函数sub2ind格式: IND=sub2ind(siz,I,J) 功能:IND为返回的对应的单下标,siz为以矩阵行数和列数构成的两个元素的向量,I和J分别为矩阵的某一行号和列号。,根据单下标换算出全下标的函数ind2sub格式: I,J=ind2sub(siz,IND) 功能:I和J分别为返回的矩阵的某一行号和列号,siz为以矩阵行数和列数构成的两

18、个元素的向量,IND为单下标。,MALAB 7.X程序设计,37/59,例:,A=1 1 4 2 3 0 8 7 2 A(3,2)=7 A(6)=7,MALAB 7.X程序设计,38/59,例2-18 演示矩阵元素的全下标标识和单下标标识的转换。,i,j=ind2sub(3 3,5) % 33矩阵的第5个元素的全下标,ind=sub2ind(3 3,3,3) % 33矩阵第三行、第三列元素的序号,MALAB 7.X程序设计,39/59,2.4.3 子数组,子数组是从数组中取出一部分元素所构成的数组,通常可用全下标和单下标方式取子数组。,1 向量的一般情况如下: A(i) 数组A的第i个元素 A

19、(i:L:i+m) 数组A的第i个-第i+m个(下标增量为L)元素,MALAB 7.X程序设计,40/59,2 矩阵一般情况如下:,A(:,j) 数组A的第j列全部元素 A(i,:) 数组A的第i行全部元素 A(i,j) 数组A的第i行第j列的元素 A(:,j:L:j+n) 数组A的第j列-第j+n列(下 标增量为L)全部元素 A(i:k:i+m,:) 数组A的第i行-第i+m行(下标 增量为k)元素 A(i:k:i+m,j:L:j+n) 数组A的第i行-第i+m 行(下标增量为k)并在第j列 -第j+n列(下标增量为L)全 部元素,MALAB 7.X程序设计,41/59,例2-19 演示建立

20、行向量并取子数组的方法。,a1=1.1,-2.2,3.3,-4.4,5.5; a1(3) % 取a1的第三个元素 a1(1 4) % 取a1的第一个和第四个元素 a1(1:2:5) % 取a1的第一个、第三个和第五 个元素,等价语句为: a1(1:2:end),MALAB 7.X程序设计,42/59,例2-20 演示建立34的矩阵并取子数组的方法。,a=1 2 3 4;5 6 7 8;9 10 11 12; a(1,:) a(:,end) a24=a(2,4) % 取a的第二行、第四列的元素 a(1:2:4,:) a(:,1:2:end) a1=a(1,2,2,3,4) a2=a(1,2,2,

21、3,1) a3=a(3,1,:) a(1,3,2,4)=zeros(2) %对a(1,3,2,4)赋值,MALAB 7.X程序设计,43/59,2.4.4数组元素的删除,数组元素的删除是简单地通过赋值为空(用表示)实现的。 通过赋值为空,可以实现删除一行元素、一列元素、子数组和整个数组。 注意区分空矩阵和零矩阵: 空矩阵是00的数组,而零矩阵是元素为零的mn的数组。,MALAB 7.X程序设计,44/59,例2-23 建立33的数组,实现数组元素的 删除。,a=1 2 0;3 4 0;5 6 9; a(:,3)= %删除第三列元素 a(2,:)= %删除第二行元素 a(1)= %删除一个元素,

22、则矩阵变为行向量 a= %删除所有元素为空矩阵,MALAB 7.X程序设计,45/59,2 多维数组的信息,函数ndims的功能是直接给出数组的维数,格式为: ndims(p)其中,p为数组。,函数size的功能是给出数组各维的大小,格式为: m,n,=size(p) %得出各维的大小 m=size(p,x)%得出某一维的大小 其中,p为多维数组;m为行数,n为列数;当只有一个输出变量时, x=1返回第一维(行数),x=2返回第二维(列数),以此类推。,numel的功能是给出数组的体积(元素的数目),格式为: n = numel( p ) 其中,p为数组。,MALAB 7.X程序设计,46/5

23、9,例2-27 演示ndims,size和 numel函数的 功能。,y=zeros(3,5); % 建立任意的35的数组y 1.d=size(y) d=3 5 2.m n=size(y) m=3,n=5 3.ndims(y) ans=2 4.numel(y) ans=15 5.mm=size(y,1) mm=3 6.nn=size(y,2) nn=5,2.5 细胞数组和结构数组,MALAB 7.X程序设计,48/59,2.5.1细胞数组(cell),细胞数组是以单元为元素的数组,每个元素称为单元,每个单元可以包含其他类型数组(实数、字符、复数) 细胞数组的创建: ,MALAB 7.X程序设计

24、,49/59,例 建立2*2细胞数组,A(1,1)=200 A(1,2)=abc A(2,1)=1 2;3,4 A(2,2)=0 A = 200 abc 2x2 double 0,MALAB 7.X程序设计,50/59,B=1,abc;1 100,f B = 1 abc 1x2 double f 取出100操作:B2,1(1,2),MALAB 7.X程序设计,51/59,2.5.2 结构数组,结构数组是根据属性名组织起来的不同类型数据的集合。结构的任何一个属性 可以包含不同数据类型,(字符,矩阵等) 结构数组的建立: struct函数: 建立空的结构数组 struct(field1, fiel

25、d2,) 建立具有属性名和数据的结构数组 struct(field1,values1, field2,values2,),MALAB 7.X程序设计,52/59,例:建立一个学生结构数组,student=struct(name,张三;李四,age,19;20) student = 2x1 struct array with fields: name age,MALAB 7.X程序设计,53/59,数组元素的引入 例如取得李四的年龄: student(2,1).age,2.6 矩阵操作,MALAB 7.X程序设计,55/59,矩阵的合并,C=A;B A和B的列数必须相同,B补在A的下面 C=A,

26、B A和B的行数必须相同,B补在A的右面 矩阵转置 A=B 矩阵展开 C=A(:) 把内存中实际存放形式展开,按列存放的格式,MALAB 7.X程序设计,56/59,矩阵行列式 矩阵与行列式是两个完全不同的概念.矩阵仅仅是一个矩形的“数表”,行列式是在一个方形数表中根据定义规则进行运算的代数式,这是基本的区别. 逆矩阵 对于n阶方阵A,如果有一个n阶方阵B, 使得 AB=BA=E。等价于 AA1=A1A=E. (E为单位阵eye(n)主对角线元素为1,其余元素为0) 则称矩阵A是可逆的,并把方阵B称为A的 逆阵(inverse matrix)。 A是可逆矩阵的充分必要条件是|A| 0,MALA

27、B 7.X程序设计,57/59,从已知矩阵生成新的矩阵 diag(A) 生成有A对角线元素组成的列向量 diag(A,k) k=0 为主对角线 k0 为主对角线以下第k条对角线 diag(X) 生成以向量X为主对角线,其余元素为零的矩阵 diag(X,K)生成以向量X为第k条对角线元素,其他元素为零的 X 的长度+|K| 阶方阵,MALAB 7.X程序设计,58/59,triu(A)生成一个主对角线及以上元素是A的元素,其余元素为0的上三角矩阵 triu(A,K)生成一个第K条对角线及以上元素是A的元素,其余元素为0的上三角矩阵 tril(A)生成一个主对角线及以下元素是A的元素,其余元素为0

28、的下三角矩阵 tril(A,K)生成一个第K条对角线及下上元素是A的元素,其余元素为O的下三角矩阵 blkdiag(a,b,c)以a,b,c为主对角线,其余元素都为零的方阵,2.7 矩阵运算,MALAB 7.X程序设计,60/59,2.7.1算术运算1基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。,MALAB 7.X程序设计,61/59,矩阵的基本运算,(1)矩阵的基本运算 A 实数矩阵的转置,若A复数计算的A的共轭矩阵(每个元素取共轭,再转置) A . 复数的共轭 rot9

29、0(A,k)将矩阵A 逆时针旋转90的k倍,当k为1时可省略。 fliplr(A)对矩阵实施左右翻转180 flipud(A)对矩阵A实施上下翻转180 flipdim(A,dim) dim=1 = flipud(A) dim=2 = fliplr ( A),MALAB 7.X程序设计,62/59,repmat(A,m,n) 将A作为一个子矩阵,复制一个m*n的矩阵,MALAB 7.X程序设计,63/59,(2) 矩阵加减运算,运算规则是: a.若A和B矩阵的维数相同, A+B,A-B实现矩阵的加减运算,是矩阵的相应元素相加减。 b.A与B的维数不相同,则MATLAB将给出错误信息,提示用户两

30、个矩阵的维数不匹配。,MALAB 7.X程序设计,64/59,矩阵的乘法运算 正常乘法 A*B 假定有两个矩阵A和B,若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。 数乘 a*A a为标量 ,A为矩阵 ,用a乘以A的每一个元素 点乘 A.*B 要求两矩阵维数必须相同,为对应元素相乘 标量积 dot(A,B) A.*B后,各各列元素相加,得到一个行向量 dot(A,B,dim) A.*B后,dim=1 各列元素相加,得到一个行向量 dim=2各行元素相加,得到一个列向量,(3) 向量和矩阵乘法,MALAB 7.X程序设计,65/59,(4) 矩阵除法 在MATLAB中,有两种矩阵除法运算

31、:和/,分别表示左除和右除。 如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。一般ABB/A。 AB=inv(A)*B A为n*n方阵,B为 n*1列向量,求解X为n*1列向量 B/A=B*inv(A) A为n*n方阵,B为 1*n列向量,求解X为1*n行向量,MALAB 7.X程序设计,66/59,元素左除 . 计算两矩阵的元素左除矩阵 A.B是指B的各元素除以A的对应元素 元素右除 ./ A./B是指A的各元素除以B的对应元素 此时要求两矩阵维数相同 注:方阵A的逆矩阵 A-1=inv(A) P124 例题 30 31,MALAB 7.X程序设计,67/59,(5) 矩阵的乘方矩阵的乘

32、方 Ab 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。 矩阵元素的乘方 A.b 2,4.3 ans = 8 64 数的矩阵元素乘方 b.A 3.2,4 ans = 9 81,MALAB 7.X程序设计,68/59,(6)矩阵行列式、秩,迹,行列式: det(A) A为方阵 秩:矩阵的秩是方阵经过初等行变换或者列变换后的行秩或列秩 ,不为零的行数或列数 rank(A) 迹:主对角线元素之和成为矩阵的迹 trace(A),MALAB 7.X程序设计,69/59,2.7.2 关系运算,MATLAB提供了6种关系运算符: (大于) =(大于或等于) =(等于) =(不等于)。,MALAB

33、 7.X程序设计,70/59,关系运算符的运算法则为: a. 两个比较量是标量时:直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 b. 两个维数相同的矩阵时:比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。 c. 一个是标量,一个是矩阵时:则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,MALAB 7.X程序设计,71/59,示例 (1)23 ans=0 (2)21 2;3 4 a

34、ns = 1 0 0 0 (3)0 2;4 71 2;3 4 ans = 1 0 0 0,MALAB 7.X程序设计,72/59,2.7.3 逻辑运算,MATLAB提供了3种逻辑运算符:3,4 B=4,2;0,5 C=0 A1,1,MALAB 7.X程序设计,74/59,(5) 逻辑非是单目运算符,也服从矩阵运算规则。(6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。,MALAB 7.X程序设计,75/59,例 建立矩阵A,然后找出大于4的元素的位置。(1) 建立矩阵A。A=4,-65,-54,0,6;56,0,67,-45,0(2) 找出大于4的元素的位置。find(

35、A4) 显示的是 大于4的元素的单下标值 disp(A4) 满足条件的 用1表示,不满足条件的用0,MALAB 7.X程序设计,76/59,其他逻辑运算符,xor(x,y) 异或运算,x和y都是零或都是非零时为假0,不同时为真1 any(x) 如果在一个向量中,任一元素是非零,返回1;矩阵x中的每一列有非零元素,返回1,否则返回零 all(x) 如果在一个向量中,所有元素非零,返回1 ;矩阵x中的每一列所有元素非零,返回1,否则返回零,MALAB 7.X程序设计,77/59, A=1 2;3 4 B=0 1;0 7 xor(A,B) ans = 1 0 1 0 any(A) ans=1,1 a

36、ny(B) ans=0, 1 all(A) ans=1 1 all(B) ans=0,1,2.8矩阵的特征值和特征向量,MALAB 7.X程序设计,79/59,矩阵的特征值和特征向量,概念: 特征值:这设矩阵A是一个n阶方阵,如果存在数a和一个非零列向量X,使得AX=aX,则数a称为A的特征值 特征向量:向量X称为A对应于特征值a的特征向量 特征值向量:n阶方阵A的n个特征值组成的向量,MALAB 7.X程序设计,80/59,eig(A)计算n阶方阵A的特征值向量 X,D=eig(A) X的列对应A的特征向量 D的对角线元素是A的特征值,MALAB 7.X程序设计,81/59,A=1 2; 3

37、 4 eig(A) ans= -0.3723 5.3723 X,D=eig(A) X = -0.8246 -0.4160 0.5658 -0.9094 D = -0.3723 0 0 5.3723,2.9矩阵的分解,MALAB 7.X程序设计,83/59,矩阵的分解,又称为矩阵的因式分解,就是把一个复杂的矩阵分解成两个或两个以上特殊矩阵或简单矩阵的乘积。 (1)LU分解(三角分解),把一个方阵A分解为同阶的一个下上角L和上三角U,即A=L*U (2)Cholesky分解是一个对称的正定方阵A分解为上三角矩阵与其转置矩阵的乘积, 即A=L*L L为上三角矩阵 注:正定矩阵特征值都为正数,MALA

38、B 7.X程序设计,84/59,L,U=lu(A) 例:50 L=chol(A) 例51,2.10 多项式运算,MALAB 7.X程序设计,86/59,多项式运算,1 、多项式的表示和输入 多项式用一个向量表示,按照多项式系数的降幂排列分配个各项,没有的系数补零。 例:x5-3x4+2x+10 p=1 ,-3 ,0, 0 ,2 ,10,MALAB 7.X程序设计,87/59,矩阵的特征多项式: |aE-A|为矩阵A的特征多项式 P=poly(A)求A特征多项式的系数 poly2sym(P)具体显示A的特征多项式表达式 p168 例1,2,3,MALAB 7.X程序设计,88/59,例:用直接输

39、入向量的方法输入多项式 x5-5x3+7x2-14x+47 P=1 0 -5 7 -14 47 poly2sym(P) ans = x5-5*x3+7*x2-14*x+47 %把向量表示的特征多项式转成符号表达形式,MALAB 7.X程序设计,89/59,2.多项式的值和根 polyval(p,x)计算多项式p的值(p为多项式的系数向量) 在x处的值,x为标量,一个值, x为向量或矩阵时,既是求多项式在 每个x处的值 roots(p)计算多项式p (p为多项式的系数向量)的根,即 p(x)=0的解,MALAB 7.X程序设计,90/59,例 已知一个多项式的系数向量P, P=1 -3 0 4

40、-8,求多项式的符号表达式,多项式在x=-3时的值,在1 2 3 0 4时的值。 P=1 -3 0 4 -8; poly2sym(P) %多项式的符号表达式 ans = x4-3*x3+4*x-8 polyval(P,-3) %多项式在x=-3时的值, ans = 142 x=1 2 3 0 4; polyval(P,x) %多项式在1 2 3 0 4时的值 ans = -6 -8 4 -8 72,MALAB 7.X程序设计,91/59,例 求多项式x5-5x3+7x2-14x+47=0的根 P=1 0 -5 7 -14 47; roots(P) ans = -3.1730 1.9425 +

41、0.9338i 1.9425 - 0.9338i -0.3560 + 1.7498i -0.3560 - 1.7498i,2.11 插值和拟合,MALAB 7.X程序设计,93/59,插值和拟合,1. 数值插值: 在实际应用中,得到的是离散的数据,怎样利用已经得到的离散数据来近似的得到某些未知点的值,这就是数值插值问题。 一维插值函数 interp1 格式:Z1=interp1(X,Y,X1,参数) 说明:X是向量,表示采样点,Y是采样点上的样本值,与X等长;X1表示欲插值的点,Z1是与X1等长的插值结果。 参数的选择为5类: 最近点插值nearest、 线性插值linear、 样条插值spline、 立方插值cubic、 双立方插值法bicubic,MALAB 7.X程序设计,94/59,例用不同的插值方法计算sin(x)在x=pi/4的值 X=0:0.01:pi/2 Y=sin(X) interp1(X,Y,pi/4) ans=0.7067,MALAB 7.X程序设计,95/59,例,已知某工厂一天的 9:00 10:00 11:00 12:00 13:00分别测得的锅炉温度为301 3

温馨提示

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

评论

0/150

提交评论