MATLAB数值计算(4).ppt_第1页
MATLAB数值计算(4).ppt_第2页
MATLAB数值计算(4).ppt_第3页
MATLAB数值计算(4).ppt_第4页
MATLAB数值计算(4).ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第2章 MATLAB数值计算,2.1 变量 2.2 矩阵及数组的创建、保存和访问 2.3 矩阵和数组的运算 2.4 关系运算及逻辑运算 2.5 多项式的表达与计算 2.6 数值分析(补充),2.1.1 变量的命名,在MATLAB中,变量均以矩阵的形式表示。 在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多65个字符。 在MATLAB中,变量名区分字母的大小写。 MATLAB提供的标准函数名以及命令名必须用小写字母。 全局变量最好用大写。 MATLAB 固定(特殊)变量(P3 表1-2),2.1 变量,2.1.2 内存变量的管理,1. 内存变量的显示与删除 who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。 clear命令用于删除MATLAB工作空间中的变量。 clear Var 或者clear all 注意,预定义变量不能被删除。 2. 工作空间浏览器(Workspace) (1) 工作空间浏览器的启动 (2) 工作空间浏览器的操作,2.2.1 矩阵(数组)的创建,A. 直接输入法 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔或直接回车。例如 A=1 2 3;4 5 6;7 8 9 利用“:”表示元素序列非常方便: B=1:0.5:5;,B. 利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。 例2.1 利用M文件建立MYMAT矩阵。 (1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵. (2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。 (3)运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用,C. 利用MATLAB函数建立矩阵 几个产生特殊矩阵的函数:zeros、ones、 eye、rand、randn、magic、vander、linspace、logspace。 这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是: zeros(m) 产生mm零矩阵 zeros(m,n) 产生mn零矩阵。 zeros(size(A) 产生与矩阵A同样大小的零矩阵 相关函数:size(A)给出A的行数和列数;length(A)给出行数和列数中的较大者,即length(A)=max(size(A);ndims(A)给出A的维数。,D. 建立大矩阵 大矩阵可由方括号中的小矩阵拼接后建立起来。例如 A=1 2 3;4 5 6;7 8 9; C=A,eye(size(A); ones(size(A),A 注意:拼接时行数与列数是否合适!,E. 从外部的数据文件中装入 可以用“load”命令加载外部数据文件创建矩阵, 例如: 1 2 3 4 3 4 1 2 用户将该文本另存为A.mat, 然后在命令窗口中输入如下命令: load A.mat,2.2.2 矩阵中元素的访问及修改,A(m,n):访问矩阵A的第m行第n列元素; A(:,n):访问矩阵A的第n列元素; A(m,:):访问矩阵A的第m行元素; A(m,n1:n2):访问矩阵A的第m行第n1列至n2列元素; A(m1:m2,n): A(m1:m2,n1:n2):,C语言中是如何访问数组的?,矩阵元素的删除和矩阵的变形,利用空矩阵 代替矩阵中要删除的元素、某行、某列或者整个矩阵。 Reshape(A,m,n,k),对数组变形,2.3 矩阵运算,2.3.1 算术运算符 2.3.2 矩阵运算 特殊矩阵 矩阵变换 矩阵的逆与秩 矩阵的范数 矩阵的特征值和特征相量,2.3.1 算术运算符,1. 基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。 注意:(1)运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。(2) (乘方):在矩阵为方阵时方可使用! 2. 点运算 点运算符有.* 、./ 、 .和 .。 两矩阵(数组)进行点运算是指它们的对应元素进行相关运算,要求两矩阵(数组)的维参数相同。,主要操作指令: 矩阵结构变换指令 P32 表24; 矩阵计算指令:;inv;rank;norm;eig;diag; 常用矩阵函数见P46 表26,2.3.2 矩阵运算,A 矩阵的逆 方阵A的逆:调用函数inv(A) 例 用求逆矩阵的方法解线性方程组。,命令如下: A=1,2,3;1,4,9;1,8,27; b=5,-2,6; x=inv(A)*b 一般情况下,用左除比求矩阵的逆的方法更有效,即x=Ab。,B. 矩阵的秩 求矩阵秩的函数是rank(A) 例 求矩阵D的秩: D=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2; r=rank(D) D是一个满秩矩阵。,C. 向量3种常用范数的函数 (1)norm(V)或norm(V,2) 计算向量V的2范数 (2)norm(V,1) 计算向量V的1范数 (3)norm(V,inf) 计算向量V的范数 例 已知V,求V的3种范数。 命令如下: V=-1,1/2,1; v1=norm(V,1) %求V的1范数 v2=norm(V) %求V的2范数 vinf=norm(V,inf) %求范数,D 矩阵A的特征值和特征向量 常用的调用格式有3种: (1)E=eig(A) 求矩阵A的全部特征值,构成向量E。 (2)V,D=eig(A) 求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。 (3)V,D=eig(A,nobalance) 直接求矩阵A的特征值和特征向量。,例 用3种不同的格式求A的特征值和特征向量。 命令如下: A=1,2,2;1,-1,1;4,-12,1; E=eig(A) V,D=eig(A) V,D=eig(A,nobalance),E 矩阵的对角元素 diag 提取矩阵的对角线元素 设A为mn矩阵,diag(A)函数用于提取矩阵A主对角线元素产生一个具有min(m,n)个元素的列向量。 diag(A)函数还有更进一步的形式diag(A,k),其功能是提取第k条对角线的元素。 构造对角矩阵 设V为具有m个元素的向量,diag(V)将产生一个mm对角矩阵,其主对角线元素即为向量V的元素,E 矩阵的对角元素 diag,例:先建立55矩阵A,然后将A的第1行元素乘以1,第2行乘以2,第5行乘以5。 命令如下: A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19 D=diag(1,2,3,4,5) D*A,Matlab中的所有 标点符号必须在 英文状态下输入,MATLAB一个表达式中可能包含多种运算符。 MATLAB的运算符主要有三类 算术运算符 关系运算符 逻辑运算符 各类运算符都有与之相对应的函数。 各类运算符具有不同的优先级。,2.4 MATLAB操作运算符,1 算术运算符,算术运算符说明,MATLAB由于基于数组/矩阵计算的,因此它的算术运算符比其他程序设计语言多。 MATLAB所有算术运算符是基于复数的 对于标量来说,算术运算符和点算术运算符是一致的。 矩阵算术运算的定义见第二章相关内容。 B/A,矩阵右除法粗略相当于B*inv(A),X*A=B方程的解。 AB,矩阵左除法粗略相当于inv(A)* B,A*X=B方程的解,MATLAB关系运算,比较大小,如果结论是 真 则返回 1 ,否则返回 0,注意 = 与 = 的区别,关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。,MATLAB逻辑操作,标量可以同任意维数的数组逻辑运算,维数相同的数组间可以逻辑运算,同或的实现:not(xor(A,B),all(x) 如果向量 X 中所有元素都非零,则返回 1,否则返回 0,若 x 为矩阵,则 any 和 all 按列运算,返回一个 0-1 向量,相关函数,any(x) 如果向量 X 中存在非零元素,则返回 1,否则返回 0,一些测试函数,更多相关函数见helpmatlabFunctions - Categorical ListProgramming and Data TypesOperators and Operations,高,低,赋值语句优先级最低,2.5.1 多项式的建立 a. 用多项式的全部系数建立多项式,使用向量; b. 用多项式的全部根X求取多项式的系数:poly(X), 该函数返回以X为全部根的一个多项式f,当X是一个长 度为m的向量时,f是一个长度为m+1的向量。,2.5 多项式及其运算,注意:用向量表示多项式时,向量值由高到低依次填充、不能缺项。,如果X是矩阵呢?,2.5.2 多项式的运算,A 多项式求根 求多项式p(x)的根的函数是roots(P),这里,P是f(x)的系数向量,该函数返回方程f(x)=0的全部根(含重根,复根)。,B 多项式求值 求多项式f(x)在某点或某些点的函数值的函数是polyval(f,x)。 若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。,例 已知一个多项式, (1)计算f(x)=0 的全部根。 (2)由方程f(x)=0根构造一个多项式g(x),并与f(x)进行对比。 (3)计算f(5)、f(7.8)、f(9.6)、f(12.3)的值。 命令如下: P=3,0,4,-5,-7.2,5; %输入多项式系数;缺项补0; X=roots(P) %求方程f(x)=0的根 G=poly(X) %求多项式g(x) X0=5,7.8,9.6,12.3; f=polyval(P,X0) %求多项式f(x)在给定点的值,C 多项式的四则运算,由于多项式是利用向量来表示,多项式的四则运算可以转化为向量的运算。 多项式的加减为对应项系数的加减,因此可以通过向量的加减来实现。但是在向量的加减中两个向量需要有相同的长度,因此在进行多项式加减时,需要将短的向量前面补0。 多项式的乘法实际上是多项式系数向量之间的卷积,用Conv函数。 多项式的除法为乘法的拟运算,可以通过反卷积函数deconv来实现。,命令如下: P1=3,0,4,-5,-6,7; P2=0,0,3,-2,-3,0; %输入多项式系数;缺项补0;补短; f1+f2=P1+P2 %多项式求和 f1+f2=P1+P2 %多项式求差 f1*f2=conv(P1,P2) %多项式乘 f1/f2=deconv(P1,P2) %多项式f1(x)除以f2(x),例 已知两个多项式,,试求:,D 多项式的导函数 对多项式求导数的函数是: p=polyder(P) 求多项式P的导函数 p=polyder(P,Q) 求P*Q的导函数,补充:2.6 数据统计与分析,1 求矩阵最大和最小元素 求向量的最大最小元素 y=max(X) 返回向量X的最大元素存入y。 y,I=max(X) 返回向量X的最大元素存入y,最大元素的序号存入I。 求矩阵的最大和最小元素 max(A) 返回一个行向量,向量的第i个元素是A矩阵的第i列上的最大元素。 Y,U=max(A) 返回两个行向量,Y向量记录A的每列的最大元素,U向量记录每列最大元素的行号。,两个向量或矩阵对应元素的比较 U=max(A,B) A,B是两个同型的向量或矩阵。结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。 U=max(A,n) n是一个标量。结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。 min函数的用法和max完全相同。,例 求矩阵A的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元。 程序如下 A=13,-56,78;25,63,-235;78,25,563;1,0,-1; max(A,2) %求每行最大元素 min(A,2) %求每行最小元素 max(A) %求每列最大元素 min(A) %求每列最小元素 max(max(A) %求整个矩阵的最大元素 min(min(A) %求整个矩阵的最小元素,2 求矩阵的平均值和中值 求矩阵或向量元素的平均值的函数是 mean,求中值的函数是 median。 mean(X)返回向量 X 的算术平均值。 mean(A)返回一个行向量,其第 i个元素是矩阵 A 的第 i列的算术平均值。 mean(A,dim) 当 dim 为 1 时,该函数等同于 mean(A),当 dim 为 2 时,返回一个列向量,其第 i个元素是矩阵 A 的第 i行的算术平均值。 median(X)返回向量 X 的中值。 median(A)返回一个行向量,其第 i个元素是矩阵 A 的第 i列的中值。 median(A,dim)当 dim 为 1 时,该函数等同于 median(A),当 dim 为 2 时,返回一个列向量,其第 i个元素是矩阵 A 的第 i行的中值。,中间值就是将数组按大小顺序排列,取中间的那个数作为中值,如果数组有偶数个,那么就取中间那两个数的平均值,3 矩阵元素求和与求积 矩阵

温馨提示

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

评论

0/150

提交评论