matlab数值计算功能.ppt_第1页
matlab数值计算功能.ppt_第2页
matlab数值计算功能.ppt_第3页
matlab数值计算功能.ppt_第4页
matlab数值计算功能.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1,第二章MATLAB的数值计算功能,2,2.1变量及其赋值,2.1.1变量,3.MATLAB严格区分大小写字母,因此,A和a是不同的变量。,变量由变量名表示,变量的命名应遵循如下规则:,1变量名必须以字母开头;由字母、数字和下划线混合组成;不允许使用空格、标点符号;,2变量名的字符长度不应超过31个(对于6.x版本);,4关键字(如if,while等)不能作为变量名。,Sin是变量名,而sin是正弦函数名,3,eps容差变量,定义为1.0到最近浮点数的距离,在pc机上=2-52pi圆周率的近似值3.1415926inf或Inf表示正无穷大,定义为1/0NaN非数,它产生于0,0/0,/等运算i,j虚数单位ans对于未赋值运算结果,自动赋给ans,永久变量,如果用户给永久变量赋值,原始默认值丢失,直至清除变量或重启Matlab,4,2.1.2、MATLAB的语句,1.百分号(注释符)%,与其它程序语言一样,为了方便其他人及日后自己对程序的阅读,增加程序的可读性,需要在MATLAB文件中加入注释。注释行必须以%号开始,执行文件时,%号后面的语句不予执行。,2.逗号和分号,在赋值语句中,逗号(空格)用在同一行中各元素之间,分号用在行与行之间。多条语句放在一行,用逗号分开表示要求显示结果,由分号分开表示不要求显示结果。,5,3.续行标志(),当一条语句或矩阵太长,一行不能显示时,可用续行标志,另起一行继续完成该条语句的书写。,4.中断键,在命令的执行过程中,可以随时按下CTRLC键中断MATLAB的运行。,6,2.1.3矩阵及其元素的赋值,矩阵是MATLAB进行数据处理的基本单元,MATLAB的大部分运算都是在矩阵的意义上进行的。MATLAB中的变量或常量都代表矩阵,标量应看作是11阶的矩阵。矩阵运算也是MATLAB最重要的运算。,矩阵的创建可以通过以下几种形式:(1)直接列出元素;(2)通过语句和函数产生;(3)从外部文件装入;(4)在M中文件建立。,7,1、直接输入矩阵:,例如输入语句a=123;456;789,a=123456789,创建矩阵的基本原则:,1.矩阵的所有元素必须放在方括号“”内;2.矩阵元素之间必须用逗号“,”或空格隔开;3.矩阵行与行之间用分号“;”或回车符隔开;4.矩阵元素可以是数字或表达式。,8,eye(n)单位矩阵,nn阶的方阵,zeros(m,n)元素全为零的mn阶矩阵,ones(m,n)元素全为1的mn矩阵,rand(m,n)元素为在0,1上均匀分布的mn随机矩阵,randn(m,n)元素为正态分布的mn随机矩阵,magic(n)魔方矩阵,其特点是元素由1到n2的自然数组成,每行、每列及两对角线上的元素之和均等于(n3+n)/2,几种特殊矩阵的产生,2、由函数创建矩阵:,9,3、从外部数据文件调入矩阵:,例如:目录C:ProgramFilesMATLABR2007bworkmatlab_training下有生物医学信号的文本文件bio_signal.txt,在命令窗口输入:,load,load(C:ProgramFilesMATLABR2007bworkmatlab_trainingbio_signal.txt),从磁盘读入.mat文件,或读入排列成矩阵的.txt文件,10,importdata,例如:目录C:ProgramFilesMATLABR2006aworktemp下有生物医学信号的文本文件bio_signal.txt,在命令窗口输入:,importdata(C:ProgramFilesMATLABR2006aworktempbio_signal.txt);,其他方法,fopen,fread,textscan,fscan,fclose,从文件中读入数据,能自动分析文件的格式。应用广泛,11,数据存储save,savefilenameabc把a、b、c三个变量保存在文件名为filename.mat的文件中。,savefilename把全部内存变量保存为filename.mat文件。,savefilenameabcappend把a、b、c三个变量添加到文件名为myfile.mat的文件中。,12,clear;%删除工作空间内的所有变量N=1000;x=rand(1,N);%产生一个随机向量y=5;%saverand_dataxy;%把xy存入文件rand_data.mat中saverand_data_txt.txtx-asciiclear%删除工作空间内的所有变量load(rand_data.mat);%把文件rand_data.mat中的变量载入工作空间,示例,13,2.1.4向量的生成,数组可以看成是行向量,即只有一行或一列的矩阵。前面介绍的所有矩阵的建立和保存的方法,对向量同样适用,1.利用冒号“:”创建等差数列:,t=初值:增量:终值,其中“增量”是可以省略的,省略时,默认的增量步长为1。增量也可以是负值,但此时,初值应该大于终值。,例如:x=1:5;y=0:pi/4:2*pi;z=6:-1:0;,14,2.利用函数linspace和logspace创建向量:,linspace函数,创建指定长度的等距向量,例:k=linspace(-pi,pi,4),t=linspace(初值d1,终值d2,点数n),logspace函数,创建对数等距的向量,y=logspace(d1,d2)y=logspace(d1,d2,N),从10的d1次幂到d2次幂之间按等比级数等分为N个点,N缺省时,默认为50。,在线性空间上,行矢量的值从d1到d2,数据个数n,缺省时n为100。,15,2.1.5矩阵的下标,创建了矩阵之后,若要调用矩阵里的元素,就要了解单个元素标志和寻访的3种方式:,1.“全下标”标志,“全下标”标志由行下标和列下标组成,例如:A(3,5)标志矩阵A的第3行第5列元素。,2.“单下标”标志,A(3,:)%矩阵A的第三行,A(:)%把矩阵A转换成列向量,,按列计数,表示下标,A=0.95010.48600.45650.23110.89130.01850.60680.76210.8214A(8)ans=0.0185,16,A=-4,-2,0,2,4;-3,-1,1,3,5;L=abs(A)3islogical(L)X=A(L),%创建矩阵A%建立矩阵L%判断L中是否有逻辑1%指出A中绝对值大于3的元素,3.逻辑矩阵,L=1000100001,X=-445,17,2.1.6复数表示,1.将其元素逐个赋予复数,2.将其实部和虚部矩阵分别赋值,如z=1,3;5,7+2,4;6,8*i(*号不能省略),如z=1+2i,3+4i;5+6i,7+8i,若在前面程序中曾经给i或j赋过值,则i或j就不再是虚数单位,此时应把赋值的i或j清除再执行虚数赋值语句。,18,clear命令(删除变量),删除内存变量。clear操作通常有两种方式:,clear清除当前工作空间中的全部变量,clearabc清除当前工作空间中的变量a、b、c,被清除的变量之间只能用空格,不能用逗号或分号。因为在一条指令中,逗号和分号都表示该指令结束,不同的是逗号结束的指令要显示运算结果,而分号结束的指令不显示执行结果。,19,a=1;b=2;c=3;cleara,b;cc=3bb=2a?Undefinedfunctionorvariablea.,例,用clear命令时,系统不会给出确认提示,一旦删除将不能恢复。,20,1.请指出如下5个变量名中,哪些是合法的?abcd-2xyz_33chana变量ABCDefg,5.使用两种方法产生0,3*pi等间隔分布10个点的向量,2.指令clear,clc各有什么用处?,3.创建一个6阶的魔方矩阵A把第3行第4列的元素赋给B把第2行、第4行的所有元素赋给C,4.矩阵A=2459;-463-7,找出A中大于3的元素赋值给B,练习,21,2.2.1who和whos命令,who(whos)查看工作空间里所有的变量who(whos)ab查看工作空间里的变量a和b,被查看的变量之间只能用空格,不能用逗号或分号。,当想个给某一个变量赋值时,为了避免与已存在的变量同名,就要用exist查询当前的工作空间内是否存在该变量。调用格式:x=exist(A),2.2常用管理命令,22,例,a=123;456;b=25+89*i;c=23.5;whoYourvariablesare:abcwhosNameSizeBytesClassa2x348doublearrayb1x232doublearray(complex)c1x18doublearrayGrandtotalis9elementsusing88bytes,23,2.2.2format命令(数据格式),format用来控制数据显示格式。,formatcompact数据显示紧凑格式,formatloose数据显示稀疏格式(系统默认),format命令只改变数字的显示格式,并不改变数字的大小。,24,format命令只改变数字的显示格式,并不改变数字的大小。,25,2.3matlab的常用数学函数,matlab提供了几乎所有的初等数学函数,包括三角函数、对数函数、指数函数和复合运算函数等。,函数名(变量),函数的运算分别作用于变量的每一个元素。所有函数名都是小写字母。,函数的一般调用格式为,26,27,28,对零方向取整数,29,2.4矩阵与数组运算,矩阵运算是按照线性代数的运算法则定义的;数组运算是按元素逐个执行的。,矩阵加、减(,)运算,相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。,2.4.1矩阵与数组的算术运算,Matlab有两类运算指令:矩阵算术运算和数组算术运算。,A+B,A-B,,A、B必须同维,30,2.乘(、.)运算,A矩阵的列数必须等于B矩阵的行数,标量可与任何矩阵相乘。,矩阵乘()运算A*B,数组乘(.)运算A.*B,A,B维数相同,相应元素相乘。,A=123;456;789;B=246;135;7910;A.*B,Amn*Bnp,c*Bnp,31,3.乘方(、.)运算,矩阵乘方()运算Ap,矩阵A必须是方阵,A和p不能同时为矩阵;,当p取整数时,该指令的运算结果可以做如下的理解:,当p0时,Ap表示方阵A的直接自乘p次;,当pa=1+2i3-2ia=1.0000+2.0000i3.0000-2.0000i,aans=1.0000-2.0000i3.0000+2.0000i,例,37,矩阵的转置。只是将排列形式进行转置。,矩阵转置(.)运算,a=1+2i3-2ia=1.0000+2.0000i3.0000-2.0000i,aans=1.0000+2.0000i3.0000-2.0000i,例,对于实数矩阵用()符号或(.)求转置结果是一样的;,38,1.矩阵大小,size命令,m,n=size(A,x):返回矩阵的行列数m与n,当x=1,则只返回行数m,当x=2,则只返回列数n。,length命令,n=length(A):当A为数组时,返回数组的元素个数,当A为矩阵时,返回矩阵行数或列数的最大值。,length(A)=max(size(A),2.4.2矩阵的块操作,39,3、A=magic(4)找出A(B-3),习题1、A=3,B=4计算A-2B-3的结果,2、a=1,2,3,b=4;5;6A)a.*bB)a*bC)a/bD)a.b以上各计算是否可实现,A=magic(4);x=find(AA=0-6-1;62-16;-520-10;d=eig(A),d=-3.0710-2.4645+17.6008i-2.4645-17.6008i,41,det(A)计算矩阵A的行列式的值,A必须为方阵。,rank(A)求矩阵A的秩,inv(A)计算矩阵A的逆,A必须为方阵。,trace(A)求矩阵A的对角线元素的和。,poly(A)求矩阵A的特征多项式。,roots(poly(A)求矩阵A的特征方程的特征根。,42,矩阵A的特征值,矩阵特征多项式,手工计算特征值,43,矩阵对角元素之和,求A的行列式的值,44,求矩阵A的逆阵,45,sqrtm命令与sqrt不同,矩阵平方根,46,矩阵的对数,47,使用时应注意这些对命令之间的区别,矩阵求幂,48,2.4.4基本的数据分析,常用的数据处理命令,49,data=15449836715899817515510068861456375961456375961415565751555664851478987771479654100145607667,max(data)ansmin(data)ans=141495467,mean(data)ans=149.200073.000072.800082.4000,median(data)ans=147637581,50,MATLAB的基本数据处理功能是按列向量进行的,因此要求待处理的数据矩阵按列向量分类,而行向量则表示数据的不同样本。,sum(data)ans=1492730728824,std(data)ans=5.750420.407010.042112.0757,51,2.5多项式运算,2.5.1多项式的表达与创建,多项式的系数按降幂次序排列而形成的行向量来表征一多项式。,多项式:,多项式的行向量:,52,表示多项式的行向量元素的个数应该为多项式的最高幂次加一。,53,用常规的形式表示多项式,命令格式:poly2str(P,x),p=120-56p=120-56,ps=poly2str(p,x)ps=x4+2x3-5x+6,54,2.5.2多项式求根及其逆运算,多项式求根,roots指定根求系数,ploy,55,多项式的根按列向量存储,多项式的系数按行向量存储,56,2.5.3多项式的四则运算,1.加法与减法,多项式的加减法为多项式对应元素的加减法。多项式的阶数可以不同,但应当补充0元素使其行向量元素数目相等,否则不能相加减。,57,加法,58,减法,59,2.乘法,两个多项式相乘由函数conv()来完成,其调用格式为:R=conv(A,B),3.除法,d,r=deconv(c,a)命令完成多项式除运算,d:商的系数向量;r:余式的系数向量。,也称为卷积,也称为解卷积,60,61,2.5.4多项式的微分与赋值运算,1.微分运算,多项式的微分由命令polyder完成,2.赋值运算,给出x的范围,命令polyval可计算多项式的值。,Polynomialevaluation,Polynomialdifferential,62,63,多项式乘法不要求阶数相同,64,65,2.5.5有理多项式,有理多项式由分子多项式和分母多项式表示的,可以用residue命令进行部分分式展开。该命令的形式为:r,p,k=residue(num,den),根据给出的r,p,k的值,可以用residue命令求出有理多项式形式,命令格式为:num,den=residue(r,p,k),2个参数,3个参数,66,2.6字符运算(自学,我们使用不多),67,2.7.元胞数组cell,元胞数组可以包含多种数据结构,C_str=char(这是,元胞数组创建算例1);R=reshape(1:9,3,3);Cn=1+2i;S_sym=sym(sin(-3*t)*exp(-t);,(1)直接创建法A(1,1)=C_str;A(1,2)=R;.A(2,1)=Cn;A(2,2)=S_sym;AA=2x10char3x3double1.0000+2.0000i1x1sym,68,元胞数组内容的调取,A=2x10char3x3double1.0000+2.0000i1x1sym,A(1,1)ans=2x10char,A1,1ans=这是元胞数组创建算例1,访问cell,访问cell里的内容,A1,1(1,:)表示什么?,69,2.8结构体数组structarray,构建一个11的struct,描述温室数据(包括温室名、容积、温度、湿度等),(1)green_=一号房;%green_house.volume=2000立方米;%green_house.parameter.temperature=31

温馨提示

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

评论

0/150

提交评论