Matlab学习笔记(全)_第1页
Matlab学习笔记(全)_第2页
Matlab学习笔记(全)_第3页
Matlab学习笔记(全)_第4页
Matlab学习笔记(全)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、 Matlab学习笔记 MATLAB与科学计算 王正盛 国防工业出版社一.MATLAB入门4who、whos和永久变量4显示格式4图形4二.MATLAB数值计算51.常用命令:52.矩阵的保存和获取53.矩阵的运算和数组的运算54.线性方程组55.多项式66.数值积分67.一般非线性方程组求解68.微分方程的数值求解7三MATLAB的符号计算71.符号变量和符号表达式72.微积分运算73.解方程84.化简和代换85.MATLAB的符号表达式命令8四.MATLAB的图形和可视化91.二维图形92图形标记93.特殊坐标和图形94.其他命令95.填充命令106.三维图形107.符号绘图108.其他1

2、0五.MATLAB程序设计101.概述:102.命令文件113.程序文件11六.MATLAB图形用户界面(GUI)设计11七.基于MATLAB的大规模矩阵计算111.稀疏矩阵11八.基于MATLAB的最优化问题求解121.线性规划问题122.非线性问题123.二次规划问题12九.基于MATLAB的数据插值和拟合121.一维数据插值122.二维数据插值133.曲线拟合13十.基于MATLAB的图像处理初步131.图像分类132.图像的读取和显示13一.MATLAB入门who、whos和永久变量who 变量名 %检查内存变量。Whos %检查驻留变量的详细情况。MATLAB自定义的永久变量:eps

3、 %计算机中的最小正数 inf %无穷大pi %圆周率 NaN %不定量flops %浮点运算次数 i,j%虚数单位显示格式MATLAB中以短格式(5个有效数字)显示计算结果,可以用format命令改变数字显示格式1. 变量的存储和调用1) 存储当前工作空间中的变量Save %将所有的变量存入文件MATLAB.mat中Save mydate %将所有变量存入指定文件Save mydate x y z %将指定的变量存入指定的文件中2) 将数据文件的变量载入当前的工作空间将save换作load即可图形1 二维图形绘制命令Plot(x,y);2.三维图形绘制命令Mesh(z);2. 用户目录的建立

4、在命令窗口输入:cd c:mydir二.MATLAB数值计算1.常用命令:Reshape命令X=1:1:6; %产生6个元素的行向量Reshape(x,2,3); %利用X行向量产生一个2*3的向量diag命令:ar=rand(4,4) %产生一个4*4的0-1均匀随机向量d=diag(ar) %用ar的主对角元形成向量dD=diag(d)%利用d构成对角矩阵DSize:获取矩阵的行数和列数2.矩阵的保存和获取1)利用m文件利用文件编辑器编辑矩阵AM=1 2 3;4 5 6;7 8 9保存为在自己的目录下名的matrix.m在MATLAB命令窗口中只要输入matrix就可以调用AM矩阵2)通过

5、mat文件Mat文件是MATLAB中保存数据的一种标准格式二进制文件,通过save和load执行,如前所述3) 利用外部数据文件装入到指定矩阵中假如磁盘中已有名为c:mydirdate.dat的二进制数据文件,利用load c:mydirdate.dat命令可以在MATLAB工作空间中产生一个名为date的矩阵3.矩阵的运算和数组的运算矩阵运算是按矩阵的运算法则进行的;数组运算无论何种操作都是对元素逐个进行的,数组运算需要在运算符前加点号。4.线性方程组1)采用求逆运算:x=inv(A)*b;2)采用左除运算:x=Ab;说明:只有在A是方阵时可以采用求逆运算;求逆运算没有左除运算好;一般都用左

6、除运算吧在解欠定方程时,解得结果是所有结果中范最小的一个5.多项式1. 多项式的创建1) 多项式系数向量直接输入法2) 利用指令:p=poly(AR);AR为多项式的根或者特征多项式常用多项式的运算指令:R=roots(P)%求多项式的根PA=polyval(p;S)%按数组运算规则计算多项式值。P是多项式,S为矩阵PA=polyvalm(p;S)%按向量运算规则计算多项式值。r,p,k=residue(b,a)%部分分式展开。b,a分别是分子,分母多项式的系数向量。R,p,k分别是留数、极点、直项向量。P=polyfit(x,y,n)%用n阶多项式拟合x,y向量给定的数据。6.数值积分S=q

7、uad(fname,j积分下限,积分上限,tol,trace) %trace为1用图形展示积分过程,精确度缺省时取0.001S=quad8(fname,j积分下限,积分上限,精确度,trace)7.一般非线性方程组求解1) 单变量非线性方程求解先建立方程fname.m文件调用fzero求解Z=fzero(fname,x0,tol,trace)%x0为起始搜索点,一个函数可能有多个根,但结果只取离x0最近的根2)求解非线性方程组先建立方程组的m文件调用fsolve函数求解X=fsolve(fname,x0) %x0是对解的猜测值function q=myxyz(p)x=p(1);y=p(2);z

8、=p(3);q(1)=sin(x)+y2+log(z)-7;q(2)=3*x+2*y-z3+1;q(3)=x+y+z-5;调用x=fsolve('myxyz',1 1 1) 8.微分方程的数值求解t,x=ode23(fnanme,to,tf,x0,tol,trace)t,x=ode45(fnanme,to,tf,x0,tol,trace)先建立微分方程fname.m文件调用ode23或ode45函数。function yp=funt(t,y)yp=(y2-t-2)/4/(t+1);调用t,y=ode23('funt',0,10,2)注:该指令是针对一阶微分方程设

9、计的。因此对于高阶微分方程,必须演化成形如x=f(x,t)的一阶微分方程。三MATLAB的符号计算1.符号变量和符号表达式sym x %定义一个符号变量findsym(g)%确认符号表达式中的符号变量syms x,y,z %定义一组符号变量注:事实上,sym和syms在定义符号变量时除了个数的差别外,还有定义的结果也不同,注意在MATLAB中体会。f=sym(1+sin(x)subs(f,old,new)%用新的符号变量代替旧的符号变量,可以是一个变量也可以是一个数组。 2.微积分运算1)微分diff(f,t,n) %函数f对t求导,如果t缺省,则字符表上最接近x的符号变量求导;n表示求导次数

10、2)积分int(f,t,t0,tf) %函数f对x在t0到tf上求积分3)求极限limit(f,t,a,left或者right) %当t趋于a时,f的极限,当a缺省时,a为0,left或者right表示左右极限。4)求级数和symsum(s,t,a,b) %t从a到b时s的级数和5)求泰勒级数taylor(f,x,a)%函数f对符号变量x在a点附近的泰勒级数,a缺省时为0,详见help。命令栏输入taylortool可以调用泰勒图形展开界面。3.解方程1)代数方程solve(f,t) %解代数方程f=0或者solve(f(x)=g(x))也可以利用solve解方程组,详见help2)解微分方程

11、dsolve(s,s1,s2,x) %s1、s2、时初始条件3)线性代数MATLAB中大多数用于数值线性代数的计算命令,都可以用于符号变量线性代数运算4.化简和代换collect(s)%合并同类项expand(s)%将乘积形式化为和式simplify(s)%利用恒等式化简hornor(s) %将多项式化为嵌套式此外还有simple5.三种变换:傅立叶变换fourier(f,trans_var,eval_point) 反变换:ifourier()拉普拉斯变换laplace(f,trans_var,eval_point) 反变换:ilaplace()z变换ztrans(f,trans_index,

12、eval_point) 反变换:iztrans()5.MATLAB的符号表达式命令help symbolic四.MATLAB的图形和可视化1.二维图形plot(x,y) %最简单最常用的二维绘图命令fplot(fname,lims,tol) %自适应二维函数绘图命令,在函数变化率大的部分密集采样绘图,提高图形真实性。2图形标记title(图形名称) %给图形命名xlabel(x轴坐标) ylabel(y轴坐标名)text(x,y,标记) %在坐标点(x,y)处加标记legend(图例1,图例2,····)axis(x,y的坐标范围)axis(on) %显

13、示坐标 axis(off)另外绘图命令中还可以对图形的坐标,颜色,线型进行设定,详见help3.特殊坐标和图形loglog(x,y)%双对数坐标semilogy(x,y) %以x轴为对数坐标polar(theta,rho) %极坐标stair(x,y) %阶梯图形bar(x,y) %条形图stem(x,y)%火柴杆状图pie(x)%绘制饼状图 pie3(x)%绘制三维饼状图ribbon(x,y,c)%绘制带状图,c是颜色4.其他命令subplot(a,b,n) %将绘图区分为a*b区,选择其中的n区hold %在原来视图中绘图plotyy(x1,y1,x2,y2)%在同一坐标系中左右使用不同的

14、坐标5.填充命令fill(x1,y1,x2,y2,c) %用c颜色填充由(x1,y1)、(x2,y2)···确定的多边形erea(x,y,r) %用r色填充由x,y函数确定边界的区域6.三维图形1)绘图命令plot3(x,y,z) %最基本的三维图形函数,函数除了增加第三维坐标外,功能和plot相同mesh(x,y,z) %绘制三维网格图。在不需要特别精细的三维曲面结果时使用。surf(x,y,z) %绘制三维曲面图,各线条之间的补面用颜色填充2)视点view(方位角,俯视角)或者view(x,y,z) %x,y,z观察点坐标3)等高线contour(x,y,z,

15、n) %以z为高程值,x,y为横纵坐标的平面等值线图,n缺省值为10 contour3(x,y,z,n) %三维等值线图meshc(x,y,z) %绘制带等值线图的网线图其他相关的还有pcolor()、meshz()、surfc()等,详见help。7.符号绘图ezplot(f,a,b)%二维符号绘图ezplot3(f,a,b) %三维符号绘图ezmesh()、ezsurf()%三维符号绘图8.其他1)球面绘图sphere(n) %绘制单位球面,且球面上的网格线条数为ncylinder(r,n) %轴线定位z轴r表示柱面的母线,是向量;n表示柱面上网格线条数五.MATLAB程序设计1.概述:1

16、)MATLAB有两种工作方式:一种是交互式的命令行工作方式;一种是m文件的程序工作方式。2)m文件有两种:一种是命令文件,相当于将命令行的命令先集中写好存在m文件中;一种是函数文件。2.命令文件1)数据的输入输出result = input(prompt) %提示输入一个量disp(X) % isplay text or arraypause(n)%暂停n秒,n缺省时暂停至敲任意键结束。3.程序文件function 输出形参表=fname(输入形参表)函数体MATLAB中的程序设计同样着重掌握if语句,while语句,for语句和switch语句等,同时MATLAB中没有花括弧,每一条if或者

17、while语句都需要用end结束。六.MATLAB图形用户界面(GUI)设计太难,暂时跳过七.基于MATLAB的大规模矩阵计算1.稀疏矩阵 表 MATLAB提供的创建稀疏矩阵函数表sparseconverts a full matrix to sparse form by squeezing out any zero elements.S = sparse(A)S = sparse(i,j,s,m,n)spdiagsextracts all nonzero diagonals from the m-by-n matrix A.B = spdiags(A,d)A = spdiags(B,d,m,

18、n)A = spdiags(B,d,A)spconvertconverts a matrix D with rows containing i,j,s or i,j,r,s to the corresponding sparse matrix. S = spconvert(D)findlocates all nonzero elements of array X, and returns the linear indices of those elements in vector indind = find(X)ind = find(X, k)row,col,v = find(X, .)spe

19、yeorm an m-by-n sparse matrix with 1s on the main diagonalS = speye(m,n)fullconverts a sparse matrix S to full storage organizationA = full(S)八.基于MATLAB的最优化问题求解1.线性规划问题x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) %求解线性规划问题,注意f为列向量2.非线性问题1)有约束一元函数x = fminbnd(fun,x1,x2,options) %x1,x2是取值范围2)无约束多元函数x =

20、fminsearch(fun,x0,options) %x0是初始值向量x = fminunc(fun,x0,options) 注:当函数结束大于2时,使用fminnuc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好3)有约束多元函数x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) %nonlcon通过指定函数柄来使用非线性约束,如:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,mycon) %mycon是定义好的非线性等式和不等式约束,缺省时用代替。3.二次规划问题x = quad

21、prog(H,f,A,b,Aeq,beq,lb,ub,x0) % This MATLAB function returns a vector x that minimizes 1/2*x'*H*x + f'*x.九.基于MATLAB的数据插值和拟合1.一维数据插值1)vq = interp1(x,v,xq,method) %x、v是数据值,xq是要求点,method是具体算法method有四种:linear分段线性插值,缺省值 cubic分段三次多项式插值 spline三次样条插值,即在每个分段区间内构造一个三次多项式,使其插值函数满足插值条件,还要求在各个节点出具有光滑的条件 nearest最邻近区域插值2)三次样条插值 yy = spline(x,Y,xx) pp = spline(x,Y) %调用结果用yyi=ppvsl(pp,xxi)2.二维数据插值1)插值基点为网格节点(即节点

温馨提示

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

评论

0/150

提交评论