首页 第2章 MATLAB数值运算

第2章 MATLAB数值运算

举报
开通vip

第2章 MATLAB数值运算nullnull1、掌握MATLAB的数据特点; 2、掌握矩阵和多项式的构造和运算方法,使用常用几种函数进行简单的问题求解。null§2.1 数据特点§ 2.2 变量和赋值 § 2.3 MATLAB矩阵 § 2.4多项式§ 2.5 MATLAB运算 § 2.6字符串 § 2.7结构和单元 § 2.8作业2.1 MATLAB数据的特点2.1 MATLAB数据的特点2.1.1 矩阵(数组)是MATLAB最基本、最重要的数据对象;单个数据(标量)可以看成是矩阵的特例。 2.1.2 MATLAB数据类...

第2章  MATLAB数值运算
nullnull1、掌握MATLAB的数据特点; 2、掌握矩阵和多项式的构造和运算 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,使用常用几种函数进行简单的问题求解。null§2.1 数据特点§ 2.2 变量和赋值 § 2.3 MATLAB矩阵 § 2.4多项式§ 2.5 MATLAB运算 § 2.6字符串 § 2.7结构和单元 § 2.8作业2.1 MATLAB数据的特点2.1 MATLAB数据的特点2.1.1 矩阵(数组)是MATLAB最基本、最重要的数据对象;单个数据(标量)可以看成是矩阵的特例。 2.1.2 MATLAB数据类型:null3)结构(Structure)和对象1)数值数据:(1)双精度型数: 数据的存储和计算均以双精度进行。(2)单精度数(3)带符号整数(4)无符号整数2)字符串数据(char) 2.2 变量和赋值 2.2 变量和赋值2.2.1 变量命名规则:1)在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。2)在MATLAB中,变量名区分字母的大小写。 MATLAB提供的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 函数名以及命令名必须用小写字母。!!注意:在MATLAB中,默认变量名为ans。1)Abc=5    1)Abc=5    譬如:%合法变量名2)a_9=4;%合法变量名3)3an=4; %非法变量名4)m,n=5; %非法变量名null特殊变量(系统提供,用户不能清除) 2.2.2 赋值语句:(1) 变量= 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式; (2) 表达式;在MATLAB语句后面可以加上注释,注释以%开头,后面是注释的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。一般,运算结果在命令窗口中显示出来;若在语句最后加分号,MATLAB仅执行赋值操作,不再显示运算结果。 例2.1 计算表达式的值,并将结果赋给变量x, 然后显示出结果。 输入命令: x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值null2.2.3 数据的输出格式1)MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。2)用户可以用format命令设置或改变数据输出格式。 format命令格式: format 格式符 format/format SHORT 默认值,5位定点 表示 format LONG 15位定点表示 format SHORT E 5位浮点表示 format LONG E 15位浮点表示!!注意:format命令只影响数据输出格式,而 不影响数据的计算和存储。 2.2.4 预定义变量 在MATLAB工作空间中,还驻留几个由系统本身定义的变量.它们有特定的含义,在使用时,应尽量避免对这些变量重新赋值。特殊变量(系统提供,用户不能清除) 2.2.5 内存变量的管理 1)who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。 2)clear命令用于删除MATLAB工作空间中的变量。 !!注意:预定义变量不能被删除。1. 内存变量的显示与删除 2. 内存变量文件 1)利用MAT文件(.mat)可以把当前MATLAB工作空间中的一些有用变量长久地保留下来。 2 ) MAT文件的生成和装入由save和load命令来完成。 save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii] Abc=15, ab=25比如:save a1.mat Abc ab save a1.mat Abc ab -ascii load a1 load a1.mat a2null2.3 MATLAB矩阵1)定义:矩阵是线形代数的基本运算单元,通常矩阵是指含有M行N列数值的矩形结构;2)元素:矩阵的元素可以是实数或虚数,进而将矩阵划分为实数矩阵和复数矩阵3)运算:加、减、乘、除、逆、转置、线形方程、特征值等。null2.3.1 矩阵的构造 1. 直接输入法:1)用 [ ]把所有矩阵元素括起来; 2)同一行的不同数据元素之间用空格或逗号分隔; 3)用分号(;)指定一行结束; 4)可分几行输入,用回车符代替分号; 5)数据元素可以是表达式。null例2.1 输入矩阵A、B的值。》A=[1 2 3 4; 5 6 7 8; 9,10,11,12; 13 14 15 16]》B=[1,sqrt(25),9,13 2,6,10,7*2 3+sin(pi),7,11,15 4,abs(-8),12,16]方法1:直接输入矩阵A:方法2:利用表达式输入矩阵B:null 2. 利用M文件建立矩阵 例2.2 利用M文件建立MYMAT矩阵。 (1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵; 对于比较大且复杂的矩阵, 用M文件专门建立之。 (2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m); null矩阵元素: (3)运行该M文件,会自动建立一个名为MYMAT的矩阵,供以后使用。和线形代数一样,可以采用下标来表示矩阵元素,同时也可以利用下标对矩阵元素进行修改。null例2.3 修改例2.1矩阵A中元素的数值。》A(1,1) Ans= ? 》A(2,3) Ans= ? 》A(1,1)=0; A(2,2)= A(1,2)+ A(2,1); A(4,4)=cos(0)null3. 利用MATLAB函数建立矩阵1)zeros:零矩阵;格式: zeros(m,n) 2)ones:元素均为1;格式: ones(m,n) 3) eye:单位阵;格式: eye(m,n) 产生特殊矩阵的函数:null5)randn:随机阵; 格式:randn (m,n) %产生元素服从均值为零、方差为1的正态分布随机矩阵。4)rand:随机阵; 格式: rand(m,n) %产生元素服从0~1间均匀分布的随机矩阵; nullzeros(m) %产生m×m零矩阵 zeros(m,n) %产生m×n零矩阵。 zeros(size(A)) %产生与矩阵A同样大小 的零矩阵相关函数: length(A)=max(size(A));% length(A)给出行数和列数中的较大者; ndims(A) %给出A的维数。调用格式: 例2.4 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。(1)建立一个3×3零矩阵:zeros(3);!! 常用函数:reshape(A,m,n) %在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。(2)建立一个3×2零矩阵:zeros(3,2);(3)建立与矩阵A同样大小零矩阵:zeros(size(A)) 4. 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。 例如: A=[1 2 3;4 5 6;7 8 9]; C=[A,eye(size(A)); ones(size(A)),A] null小结:1. 直接输入法:2. 利用M文件建立矩阵3. 利用MATLAB函数建立矩阵4. 建立大矩阵建立矩阵方法:null2.3.2 矩阵运算1、矩阵加减运算 1) 运算符为:“+” 和“-”; 例2.5.计算C=A+B,D=A-B,E=A+3.其中A、B为例2.1中的两个矩阵。2)两个矩阵具有相同的阶数或其中一个是标量的情况下可以进行运算。使用规则:null2、矩阵乘法 1)矩阵的乘法使用运算符“*” ; 例2.6:计算C=A×B,D=A×3。其中A、B为例2.1中的两个矩阵。2)只有当前一矩阵的列数和后一矩阵的行数相同或者是其中一个是标量的情况下才能进行运算。使用规则:null1)矩阵的除法使用运算符“\”(左除) 、 “/” (右除) ; 2)只有当前一矩阵的列数和后一矩阵的行数相同或者其中一个是标量的情况下才能进行运算。3、矩阵除法使用规则:null1)A/B:A右除B; B \ A :A左除B;2)如果A阵是非奇异方阵,则A\B和B / A运算可实现;3)一般 A/B 不等于A\B;原因??4)区别:左除可以避免奇异矩阵的影响;右除运算速度慢一些。说明:null A\B=inv(A)*B B/A=B*inv(A); A/B=A*inv(B); B\A=inv(B)*A;规则:x=A\B是方程A*x=b的解; x= B / A是方程 x*A=b的解;null4、矩阵乘方 例2.8:如果A是一个方阵 ,P是一个正整数,则A^P表示A自乘P次。矩阵的乘方使用的运算符为“^”。》A=[1 2 3 4;5 6 7 8;9 10 11 12; 13 14 15 16]; 》A^2 ans=?使用规则:null5、矩阵转置 例2.8:计算例2.1的A';另设D=i* A' ,则D '1)矩阵的转置使用的运算符为“'” 。 2)如果矩阵中有复数元素,则转置后得到的是它的复共轭矩阵。>>D=i*A ' D=?使用规则:>>D ' ans=?null6、矩阵的逆 例2.9:求一矩阵逆矩阵,并验证其结果.求矩阵的逆使用的函数为“inv” 。 >>G=[1 2 0;2 5 -1;4 10 -1] >>x=inv(G) x=? >>I= inv(G)*G I=?使用规则:null7、矩阵的秩 例2.10:求下列矩阵D的秩。求矩阵的秩使用的函数为“rank” 。D=[2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2]; r=rank(D) r = 4 说明D是一个满秩矩阵。使用规则:null8、求特征值 例2.11:求上例矩阵的特征值。求矩阵的特征值使用的函数“eig” 。>>eig(G) ans=?使用规则:null9、求特征多项式 例2.12:求上例矩阵的特征多项式。!!!注:round用来对数值取整,类似函数有floor,ceil,fix。求特征多项式使用函数“poly” 。>>poly(G) ans=?使用规则:>>round(poly(G)) ans=?null10、求方阵的行列式值 例2.13:求上例矩阵的行列式值。求方阵行列式值使用的函数为“det” 。>>det(G) ans=?使用规则:null11、求解线形方程组分析:要解上述方程式,可以使用“\”,即X=A\B,如果将原方程式改写成XA=B,则上式的即X=B/Anull12、复数矩阵的生成及运算例2.15 A=[1,3;2,4]-[5,8;6,9]*i B=[1+5i,2+6i;3+8*i,4+9*i] C=A*B ?null求上例复数矩阵C的实部、虚部、模和相角。C_real=real(C) C_imag=imag(C) C_magnitude=abs(C) C_phase=angle(C)*180/pi 2.3.3矩阵的拆分2.3.3矩阵的拆分1.矩阵元素 2)可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先第一列,再第二列,依次类推。 1)MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。 例如:A(3,2)=200 null2. 矩阵拆分 1)利用冒号表达式获得子矩阵; (1)A(:,j)表示取A矩阵的第j列全部元素; A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 null(2)A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素; A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素; A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。 (3)此外,还可利用一般向量和end运算符等来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。 null2)利用空矩阵删除矩阵的元素(1)在MATLAB中,定义[ ]为空矩阵。给变量X赋空矩阵的语句为X=[ ]。(2)注意,X=[ ]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间,维数为2。(3)将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。 null2.3.4 向量运算可以利用“:”生成行向量,将所有的矩阵运算分解为一系列的向量运算;冒号表达式的一般格式:e1:e2:e31、冒号表达式:null例:>>x=1:5 %初值=1,终值=5,默 认步长=1 用linspace函数产生行向量:inspace(a,b,n) linspace(a,b,n)与a:(b-a)/(n-1):b等价。 >>x=1:2:9 %初值=1,终值=9, 步长=2 >>x=9:-2:1 %初值=9,终值=1, 步长=-2null2.向量点积运算 1)意义:两个向量在其中一个向量方向上投影的乘积,通常用来定义向量长度; 2)表达式:dot函数 3)调用格式:null(1)C=dot(A,B) %向量A与B的点积,结果放在C中,向量A与B必须长度相等。(2)C=dot(A,B,DIM) %返回向量A与B在维数为DIM的点积,结果放在C中。当A与B都为列向量时, dot(A,B)等同于A’*B;null例2.16 比较下题目的运算结果:A=[2 4 5 3 1]; B=[3 8 10 12 13]; C=dot(A,B) C= ?A=[2 4 5 3 1]; B=[3 8 10 12 13]; C=dot(A,B,4) C= ?null3.向量叉积运算: 1)意义:指与两个向量组成的平面垂直 的向量; 2)表达式:cross函数 3)调用格式:(1)C=cross(A,B) %向量A与B的叉积,即C=A×B,结果放在C中,向量A与B必须是3个元素的向量;null例2.17 计算叉积:A=[2 4 5 ]; B=[3 8 10 ]; C=cross(A,B) C= ?(2)C=cross(A,B,DIM) %向量A与B在DIM维的叉积,向量A与B必须要大小相同.Size(A,DIM)和Size(B,DIM)结果必须为3。null4.向量混合积运算:例2.18 计算混合积A=[2 4 5 ]; B=[3 8 10 ]; C=[0 -5 4]; D=dot(A,cross(B,C)) D= ? 说明:首先进行的是B与C的叉积,然后把叉积运算的结果与A进行点积运算。null1. 向量共线或共面的判断:例2.19 设X=(1,1,1),Y=(-1,2,1),Z=(2,2,2),判断这三个向量的共线共面问题。X=[1,1,1];Y=[-1,2,1];Z=[2,2,2]; XY=[X;Y];YZ=[Y;Z];ZX=[Z;X];XYZ=[X;Y;Z]; rank(XY);rank(YZ);rank(ZX);rank(XYZ)2.3.5 应用null2. 两点间的距离:例2.20 设 U=(1,0,0),V=(0,1,0),求U、V两点间的距离。U=[1,0,0];V=[0,1,0];UV=U-V; D=norm(UV)null3. 向量的夹角:例2.21 设U=(1,0,0),V=(0,1,0),求U,V间的夹角θ。U=[1,0,0];V=[0,1,0]; r1=norm(U);r2=norm(V); UV=U*V';cosd=UV/r1/r2; D=acos(cosd)null4. 向量的向量积:例2.22设U=(2,-3,1),V=(3,0,4),求U×V。syms i j k;U=[1 2 3];V=[4 5 6]; A=[i j k;a;b]; det(A)null5. 向量的混合积:例2.23 设U=(0,0,2),V=(3,0,5),W=(1,1,0),求以这三个向量构成的六面体的体积。U=[0,0,2];V=[3,0,5];W=[1,1,0]; A=[U;V;W]; det(A) ansnull6. 点到平面的距离:例2.24求原点到平面X+Y+Z=1的距离。命令如下: u=[0,0,0];v=[1,1,1]; % A=B=C=1,u1=u2=u3=0,D=-1 r=abs(u*v'-1)/norm(v,2) r = null小结: 1、矩阵加、减、乘、除(左/右)运算; 2、矩阵乘方、转置、逆、 秩、特征值、特征多项式、行列式值、求线性方程组、复数矩阵; 3、矩阵拆分; 4、向量运算:冒号表达式、点积、叉积、混合积、应用; 2.4 多项式2.4 多项式2.4.1预备知识系数按降序排列null2.4.2多项式行向量构造命令如下: T=[2 5 0 4 1 4]; Poly2sym(T) Ans= ?说明: 1) Poly2sym是专门构造多项式的函数; 2)使用该函数时,必须把各项的系数写完整,不管它是否为0。1、直接输入法:null2、用函数poly(A)输出A的特征多项式。例2.26:已知向量A=[1 –34 –8 0 0 0],用此向量构造一多项式并显示结果。>>PA=poly(A) PA=? >>PAX=poly2sym(PA,`X`) PAX=?null2.4.3多项式的运算>>a=[5 4 3 2 1];b=[3 0 1]; >>c=a+[0 0 b]1、加减运算注:进行加减运算的多项式应该具有相同的阶次,如阶此不同,低阶的多项式必须用零填补至高阶多项式的阶次。null2、乘法 例2.28:求上述两个多项式的积。 >>d=conv(a,b) d=?3、除法函数为“conv”函数为“deconv” ,结果包括商多项式和余数多项式两部分。null4、微分 例2.29:求上述两个多项式的商。 >>[div,rest]=deconv(d,a) div=? rest=?函数为“polyder” 。>>p=[2 –6 3 0 7] >> q=polyder(p)null5、求根 例2.31:求上例p(x)的根。>>x=roots(p) X=?函数为“roots” ; 多项式根的数目不定,视其阶数而定,有一个到多个;类型有实数和复数两种。 null6、求值 例2.32:当x为1或G阵时,求上例p(x) 的值。 >>polyval(p,1) ans=? >>polyvalm(p,G) ans=?函数为“polyval” ; 求多项式中未知数为某个特定值或某个方阵时,该多项式的值。2.5 MATLAB运算 2.5 MATLAB运算 2.5.1算术运算 1. 基本算术运算 +(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方) 注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。null 2. 点运算 3.MATLAB常用数学函数 .*、./、.\和.^注意:点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。null2.5.2 关系运算1) 6种关系运算符:2)关系运算符的运算法则: (1)函数中的A、B都是大小完全相同的矩阵或数组。关系操作符对矩阵或数组中各自对应的元素进行比较; <(小于)lt(A,B)、<=(小于等于)le(A,B)、>(大于) gt (A,B) 、>=(大于等于) ge 、==(等于) eq(A,B) 、~=(不等于)ne (A,B) 。 例2.33 产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。 (1) 生成5阶随机方阵A。 A=fix((90-10+1)*rand(5)+10)(2) 判断A的元素是否可以被3整除。 P=rem(A,3)==0(2) A、B也可以是一个为矩阵或数组,另一个为标量,标量与数组或矩阵中的每一个元素进行比较; 2.5.3 逻辑运算(六种)2)|(或):or(A,B)3)~(非):not(A,B)4) xor(A,B)【逻辑异或】:A与B都是非零或都是零返回0,有一个非零返回1;1)&(与):and(A,B)null例2.34 在[0,3π]区间,按要求求y=sin(x)的值:5) any(A) :向量A中有非零元素时返回1,矩阵A中某一列有非零元素时返回1;6) all(A) :向量A中所有元素非零时返回1,矩阵A中某一列所有元素非零时返回1;nullx=0:pi/100:3*pi;y=sin(x); y1=(x2*pi).*y; %消去负半波 q=(x>pi/3&x<2*pi/3)|(x>7*pi/3&x<8*pi/3); qn=~q; y2=q*sin(pi/3)+qn.*y1; %按要求处理第(2)步方法1nullx=0:pi/100:3*pi;y=sin(x); y1=(y>=0).*y; %消去负半波 p=sin(pi/3); y2=(y>=p)*p+(y
本文档为【第2章 MATLAB数值运算】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_222088
暂无简介~
格式:ppt
大小:755KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2011-09-25
浏览量:32