Matlab程序设计教程.doc_第1页
Matlab程序设计教程.doc_第2页
Matlab程序设计教程.doc_第3页
Matlab程序设计教程.doc_第4页
Matlab程序设计教程.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

Matlab程序设计教程读书笔记 第一章 matlab操作处理 第二章 matlab矩阵及其运算1、变量名是以字母开头,后接字母、数字或者下划线的字符序列,做多63个字符。赋值语句:变量=表达式;表达式。Matlab语句后加上分号表示仅仅执行赋值操作,不显示结果。2、rem求余数或模运算;mod模除取余;fix向零方向取整,exp表示e。3、zeros产生全零矩阵,ones产生全一矩阵,eye产生单位阵,rand产生01间均匀分布的随机矩阵,randn产生均值为0,方差为1的标准正态分布随机矩阵。4、矩阵除法分为左除和右除:(左)AB=A-1B;(右)B/A=BA-1。矩阵的点除,则表示矩阵对应元素相除。5、对角阵diag;上三角triuh(A);下三角tril(A)。 矩阵转置是单撇号()。 矩阵旋转,很方便的以90度为单位对矩阵A按逆时针方向旋转。 Rot90o(A,K)将A旋转90度的k倍。 矩阵的左右翻转fliplr(A)。 矩阵的上下翻转flipud(A)。 矩阵的逆inv(A); 矩阵的伪逆pinv(A)。 行列式值det(A)。 秩rank(A),迹trace(A)。 矩阵的范数p-46. 矩阵的特征值E=eig(A) 矩阵的超越函数:平方根sqrtm,对数logm,指数expm,普通矩阵函数,funm。6、字符串字符串是用单撇号括起来的字符序列。num2str:将数值转换成字符串;str2num将字符串转换成数值。7、数据结构和单元数据8、稀疏矩阵:矩阵中含有大量的零元素,而仅含有很少的非零元素。 第三章 matlab程序设计1、M文件定义:用matlab语言编写的程序,叫做M文件。分类:命令文件、函数文件。2、程序控制结构顺序结构:input;disp;pause。选择结构:if;switch;try。循环结构:for语句;while语句;break和continue语句;循环的嵌套。3、函数文件function 输出形参表=函数名(输入形参表)函数调用:【输出实参表】=函数名(输入形参表)函数参数的可调性全局变量和局部参量 4、程序调试调试命令有表:P-88 第四章:matlab文件操作1、文件的打开fid=fopen(文件名,打开方式)例子:打开一个名为std.dat的数据文件并进行读操作,命令为fid=fopen(std.dat,r)。2、文件的关闭sta=fclose(fid)3、读二进制文件fread函数可以读取二进制文件的数据,并将数据存入矩阵。格式:A,COUNT=fread(fid,size,precision),其中,A用于存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,为可选项,若不选则读取整个文件内容,若选,则其值为(1)N表示读取N个元素到一个列向量。(2)inf表示读取整个文件。(3)M,N表示读取数据到M*N的矩阵中,数据按列存放。Precision代表读写数据的类型。4、写二进制文件COUNT=fwrite(fid,A,precision)5、文本文件的读写操作6、数据文件的定位第五章:matlab绘图1、绘制单根二维曲线plot(x,y);2、绘制多根二维曲线 linspace(x0,x1,n) 其中n代表的是点的数目,即分成n-1等分。步长应当是(x1-x0)/(n-1) plot(x1,y1,x2,y2,xn,yn);3、在matlab中如果需要绘制具有两个不同的纵坐标标度的两个图形,可以使用plotyy绘图函数。格式是plotyy(x1,y1,x2,y2).4、设置曲线样式时候注意,b代表blue,而k代表black。5、图形标注:title(图形名称);xlabel(x轴说明);ylabel(y轴说明); Text(x,y,图形说明);legend(图例1,图例2)。其中legend函数用于绘制曲线所用线型、颜色、或者数据点标记图例,可以用鼠标拖动图例。除了legend函数外,上面的函数都可以用于三维图形。 在matlab支持的latex字符串中,用bf,it,rm控制字符分别定义黑体、斜体和正体字符,受latex字符串控制部分要加大括号括起来。例子:text(0.3,0.5,The usefulbf MATLAB)将使得“MATLAB”一词黑体显示。6、坐标控制:axis(xmin xmax ymin ymax zmin zmax) Axis equal:纵、横坐标轴采用等长刻度。Axis square:产生正方形坐标系(缺省为矩形)。Axis auto:使用缺省设置。Axis off:取消坐标轴。Axis on:显示坐标轴。7、对函数自适应次采样的绘图函数:fplot(fname,lims,tol,选项)Subplot(m,n,p):将当前图形窗口分为m*n个绘图区,且选定第p个区为当前活动区。8、对数坐标图形semilogx(x1,y1,选项1,x2,y2,选项2,)semilogy(x1,y1,选项1,x2,y2,选项2,)loglog(x1,y1,选项1,x2,y2,选项2,)9、极坐标图:polar(theta,rtho,选项)10、二维统计分析图Bar(x,y,选项) 条形stairs(x,y,选项) 阶梯stem(x,y,选项) 杆型fill(x1,y1,选项1,x2,y2,选项2,) 填充图11、隐函数绘图利用ezplot函数绘制图形。隐函数: 不能明确地把一个变量用其他变量表示出来,如:隐函数不一定能写为y=f(x)的形式,显函数则相反。12、三维曲线:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n)13、在matlab中,利用meshgrid函数产生平面区域内的网格坐标矩阵。 格式:x=a:d1:b; y=c:d2:d; X,Y=meshgrid(x,y);Mesh函数用于绘制三维网格图,surf函数绘制三维曲面图。mesh(x,y,z,c) ; surf(x,y,z,c)14、sphere函数和cylinder函数分别用于绘制三维球面和柱面。x,y,z=sphere(n); x,y,z=cylinder(R,n).其中,R是一个向量,存柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,缺省时为20个间隔点。15、bar3函数绘制三维条形图。 Bar3(y);bar3(x,y)第二个表示在x指示位置上绘制y中元素的条形图。Stem3,pie3,fill3都大体相似。常用的三维图形还有瀑布图、三维曲面的等高线图。 Waterfall函数;contour(二维)和contour3(三维)函数。16、书中还介绍了图形修饰处理、图像处理和动画制作。 第六章 matlab数据分析与多项式计算1. (1)向量的最大值和最小值Y=max(X);y.I=max(X),min的使用方法类似。 (2)求矩阵的最大值和最小值 Max(A);y,u=max(A); (3)两个向量或矩阵对应元素的比较 U=max(A,B);u的每个元素等于AB对应元素的较大者。 U=max(A,n);u中的元素等于A对应元素与n中的较大者。(4)求和与求积数据序列求和与求积的函数是sum和prod,(5)平均值和中值 数据序列中均值指的是算术平均值,中值指的是在数据序列中其其值的大小恰好处在中间的元素。分别是mean和median。(6)累加和与累乘积使用cumsum和cumprod函数 累加和公式;累乘积公式: (7)标准方差或 ;其中=。用函数std,一般调用格式:Y=std(A,flag,dim)()相关系数用函数corrcoef函数来表示。()排序用sort(x),得到对进行升序排列的新向量。、数据插值如果要得到将这些离散点以外的其他点的数值,就需要根据已知数据进行插值。()一维数据差值一维插值采用的方法有线性方法,最近方法,次多项式,次样条插值。实现这些插值的函数为interp1,Y1=interp1(X,Y,X1,method).函数根据xy的值,计算函数在x1的值。Method可以为linear,nearest,cubic,spline.(2)二维数据插值函数interp2,格式:z1=interp2(X,Y,Z,x1,Y1,method).其中xy是两个向量,分别描述两个参数的采样点,z是与参数采样点对应的函数值,x1,y1是两个向量和标量,描述欲插值的点。Z1是根据插值方法得到的结果。3、曲线拟合曲线拟合的目的是用一个简单的函数区逼近一个复杂的或未知的函数,所依据的条件都是在一个区间或一个区域上的有限个采样点的函数值。采用最小二乘法,用polyfit函数求得多项式的系数,再用polyval函数按所得的多项式求得所给出的点上的函数近似值。Polyfit格式:p,s=polyfit(X,Y,m)4、离散付利叶变换(DFT) Matlab提供求一维,二维,n维离散傅里叶函数fft,fft2,fftn,及其傅里叶反变换ifft,ifft2,ifftn。5、多项式计算在matlab中,n次多项式是用一个长度为n+1的行向量表示,缺少的幂次用0表示。多项式的加减运算,即行向量的加减。多项式的乘法。用conv(P1,P2)用于求p1和p2的乘法。多项式的除法:函数q,r=deconv(p1,p2)用于对p1除p2作运算。其中,q代表p1除以p2的商式,r返回p1除以p2的余式。6、多项式的导函数P=polyder(p):求多项式p的导函数。P=polyder(p,q):求p,q的导函数。p,q=polyder(p,q):求p/q的导函数,导函数的分子存入p,分母存于q。7、多项式的求值 代数多项式求值 Y=polyval(p,x),若x为数值,则求多项式在该点的值,若x为向量或矩阵,则求其中每个元素在该多项式下的值。矩阵多项式求值 Polyvalm函数。1、2之间的区别,例如:p=x.3-5*x.2=8 Polyvalm(p,a)是a.3-5*a.2=8*eye(size(a)Polyval(p,a):a.3-5*a.2+8*ones(size(a)8、多项式求根用roots函数,x=roots(p);若已知多项式的全部根,可以用poly函数建立起多项式,格式P=poly(x)。 第七章 matlab解方程与函数极值1、线性方程组(1)直接法 Ax=b;x=Ab。或者用x=A-1b. 利用矩阵的分解求解线性方程组I、LU分解:只要方阵A是非奇异的,LU分解总是存在的。分解为一个下三角与上三角的乘积。 L,U=lu(x) L,U,p=lu(x);其中p为一个置换矩阵。PX=LUII、QR分解 就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。 Q,R=qr(x); Q,R,E=qr(x);其中E为置换矩阵。XE=QRIII、cholesky分解 如果矩阵式对称正定的,则cholesky分解将矩阵X分解为一个下三角矩阵和一个上三角阵的乘积。设上三角为R,则X=RR。 R=chol(X) R,p=chol(X)(2)迭代解法jacobi迭代法对应线性方程组AX=b,如果A为非奇异矩方阵,即aii=0(i=1,2n),则可将A分解为A=D-L-U其中D为对角阵,其元素为A的对角元素,L,U分别为下、上三角。先建立matlab函数文件jacobi.m。然后再命令中调用该函数。gauseidel 是在jacobi的改进。Gauseidel用新分量代替旧分量,精度会高一些。 用法与jacobi类似。先建立函数文件,再调用。2、非线性方程数值求解(1)单变量非线性方程求解 在matlab中提供了fzero函数,用来求单变量非线性方程的根。格式:Z=fzero(fname,x0,tol,trace);其中,fname是待求根的函数文件名,x0为搜索的起点。一个函数可以有多个根,但是fzero只给出离x0最近的那个根。Tol来控制精度。Trace指示迭代信息是否在运算中显示。(2)非线性方程组的求解 对于非线性方程组F(x)=0,用fsolve函数求解,格式:X=fsolve(fun,X0,option)其中,fun定义需求解的非线性方程组的函数文件名,x0指示求根过程的初值,option设定最优化工具箱的选项。用户可以用optimset命令来显示所有的选项。3、常微分方程初值问题的数值解法常微分方程为:y=f(t,y),t0tT;y(t0)=y0。数值解法:就是求他的解y(t)在节点t0t1tm处的近似值y0,y1,ym的方法。所得的y0,y1, ym成为常微分方程初值问题的数值解。一般采用等距节点tn=t0+nh(n=0,1, m),其中h为相邻两个节点间的距离,叫步长。(1)龙格库塔法: 著名的龙格库塔公式是:y(t0+ih)=yiyi-1+h(k1+2k2+2k3+k4)/6其中:k1=f(ti-1,yi-1) K2=f(ti-1+h/2,yi-1+hk1/2) K3=f(ti-1+h/2,yi-1+hk2/2) K4=f(ti-1+h,yi-1+hk3)(2)龙格-库塔法的实现格式:t,y=ode23(fname,tspan,y0)t,y=ode45(fname,tspan,y0)其中,fname定义f(t,y)的函数文件名,该函数文件必须返回一个列向量。Tspan形式为t0,tf,表示求解区间。Y0是初始状态列向量。自适

温馨提示

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

评论

0/150

提交评论