




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,MATLAB入门,肖剑,重庆大学数学与统计学院,2,MATLAB最初是20世纪70年代后期由新墨西哥大学计算机科学系主任的Cleve Moler用Fortran语言设计的,现在的MATLAB程序是1984年MathWorks公司用 C语言开发的。,MATLAB 简介,3,MATLAB的主要应用领域,(1)数值分析 (2)数值和符号计算 (3)工程与科学绘图 (4)控制系统的设计 (5)数字图像处理 (6)数字信号处理 (7)通讯系统设计与仿真 (8)财务与金融工程,4,将数学和计算机技术结合创造性地解决实际问题 熟练掌握MATLAB的命令操作方式 掌握MATLAB程序设计方法 以MATLA
2、B为操作平台完成各种不同的任务,实验方法,猜想验证求解发现,5,MATLAB桌面,命令窗口,工作空间浏览,命令历史窗口,6,命令窗口、编辑窗口、图形窗口,7,变量,变量名的第一个字符必须是一个英文字母,最多 可包括31个字符; 变量名可由英文字母、数字和下划线混合组成;,在命令窗口中直接输入变量名称创建 A9 A 9,8,x=linspace(0, pi, 11) %11个从0到pi的等间隔数.,1)数组构造:,常采用“first:increment:last”和函数“linspace”两种方式来创建数组,如 x=1:5 (从1到5公差为1的等差数组) x=0 : 0.1 : 1 (从0到1,
3、 公差为0.1),数组的创建,9,x(1:5) 表示x的第1到第5个元素构成 的数组. x(1:2:5) x(2,1,4),x(3) 表示x的第3个元素,2) 数组的操作,10,A=1 2 3;B=2 2 2;,3) 数组的运算,A.*B=2 4 6;,A./B=0.5000 1.0000 1.5000;,A.B=1 4 9;,sin(A)=0.8415 0.9093 0.1411;,11,max(v) 求最大值 min (v) 求最小值 sum(v) 求和 mean(v) 求平均值 sort(v) 按升序排列,数组函数,返 回,12,创建矩阵(二维数组)的常用方法:,直接输入法三条规则: 矩
4、阵元素必须在方括号 之内; 同一行相邻元素间用逗号或空格分隔; 矩阵的行与行之间必须用分号分隔. 例3. 二阶矩阵 A=1 2; 3 4,A = 1 2 3 4,矩阵-线性代数(二维数组),13,命令文件(脚本式M文件) 无输入参数,不返回参数 对文件命名,保存在当前工作目录中. zyt.m,M文件分为命令文件和函数文件两种,x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y),14,函数文件(函数式M文件) 可输入参数,也可返回参数 主要用来定义函数子程序,它由function起头,后跟的函数名必须与文件名相同。,例4 计算第n个F
5、ibonnaci数的函数文件fibfun.m function f=fibfun(n) if n2 f=fibfun(n-1)+fibfun(n-2); else f=1; end,15,MATLAB 程序中的流程控制,条件控制有选择地运行程序块 1. if / elseif 语句 分析下列程序,说明运行结果及原因 clear a=100;b=10; if ab) %显示字符串ab end,16,2. for循环 语法: for 变量 =初值:步长:终值 可执行语句 end,例5 求1+2+100(sum100.m) mysum=0; for i=1:1:100 mysum=mysum+i;
6、end mysum,17,3. while循环 while循环将循环体中的语句循环执行不定次数。 语法: while 条件表达式 循环体语句 end,例6 求1+2+100(sum100w.m) mysum=0; i=1; while (i help sin, type magic, clear,clc,常用MATLAB指令,19,+ 加 .+ 点加 - 减 .- 点减 矩阵幂 . 点幂 * 乘 .* 点乘 / 右除 ./ 点右除 左除 . 点左除,1 .算术运算符,2.关系运算符 大于 = 大于等于 = 等于 = 不等于,3.逻辑运算符 y=cos(x); plot(y) figure, p
7、lot(x,y),plot(y): 以y的值为纵坐标,y的下标为横坐标。 plot(x,y): 以x为横坐标,以y为纵坐标,22,处理图形,(2)hh = xlabel(string): 在当前图形的x轴上加图例string,hh = ylabel(string): 在当前图形的y轴上加图例string,hh = title(string): 在当前图形的顶端上加图例string,hh = zlabel(string): 在当前图形的z轴上加图例string,1、在图形上图例和标注,23,例8 在区间0,2*pi画sin(x)的图形,并加注图例“自变量 X”、“函数Y”、“示意图”, 并加格栅
8、.,解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自变量X) ylabel(函数Y) title(示意图) grid on,24,例9 在区间0,2*pi画sin(x),并分别标注“sin(x)” ”cos(x)”.,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x),命令gtext(string)用鼠标放置标注在现有的图上. 运行命令gtext(string)时,屏幕上出现当前图形,在 图形上出现一个交叉的十字,该十字
9、随鼠标的移动移动, 当按下鼠标左键时,该标注string放在当前十交叉的位 置.,(3) hh = gtext(string),25,2、定制坐标,Axis(xmin xmax ymin ymax zmin zmax),例10 在区间0.005,0.01显示sin(1/x)的图形。,解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 -1 1),定制图形坐标,将坐标轴返回到自动缺省值,Axis auto,26,3、图形保持,(1) hold on hold off,例11 将y=sin(x)、y=cos(
10、x)分别用点和线画出在同一屏幕上。,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z) hold on plot(x,y),保持当前图形, 以便继续画图到当前图上,释放当前图形窗口,27,同时绘制多条曲线 plot(x1,y1,x2,y2,),例12. 衰减振荡曲线函数: y=e -0.5x sin 5x图形.,x=0:0.1:4*pi; y= exp(-0.5*x) ;y1=y .*sin(5*x); plot(x,y1,x,y,-r,x,-y,-r),28,plot(X,Y,s) s参数: - 实线 . 点 * 星号 上三角 : 点线
11、 o 圆 s 方形 右三角 - 虚线 + +号 v 下三角 p 正五边形 y 黄色 m 紫红色 c 蓝绿色 r 红色 g 绿色 b 蓝色 w 白色 k 黑色 上述参数的不同组合可以为图形设置不同的线形、颜色和标识,调用时以单引号来引用,各选项直接相连,不需要分隔符。,29,【例13】 x=0:0.1*pi:pi; y=sin(x); z=cos(x); plot(x,y,-k,x,z,-.rd),30,图形窗口的分割,subplot命令实现图形窗口分割.在一个图形窗口中显示几幅图象,对几个函数进行比较 subplot(m,n,i):把图形窗口分割为m行n列子窗口,并选定第i个窗口为当前窗口。,
12、subplot(2,2,1) subplot(2,2,2) subplot(2,2,3) subplot(2,2,4),31,解x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(sin(x) subplot(2,2,2);plot(x,z),title(cos(x) subplot(2,2,3);plot(x,a),title(sin(x)cos(x) subplot(2,2,4);plot(x,b),title(s
13、in(x)/cos(x),例14 将屏幕分割为四块,并分别画出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。,32,空间三维作图,三维曲线 : plot3,设三维曲线的参数方程为:x=x(t),y=y(t),z=z(t), 则其图形可由下面的命令绘出:,例15:三维螺旋线,plot3的用法与 plot 类似, t=0:0.1:10*pi; x=2*t; y=sin(t); z=cos(t); plot3(x,y,z);,plot3(x,y,z,s),33,空间三维作图,网格生成函数:meshgrid,x, y 为给定的向量,X, Y 是网格
14、划分后得到的网格矩阵,绘制由函数 z=z(x,y) 确定的曲面时,首先需产生一个网格矩阵,然后计算函数在各网格点上的值。,若 x = y, 则可简写为 X,Y= meshgrid(x),X,Y= meshgrid(x,y),34,调用格式: surf(x,y,z) 绘制三维曲面图,x,y,z为图形坐标向量 例17: X,Y,Z=peaks(30) peaks为matlab 自动生成的三维测试图形 surf(X,Y,Z),35,函数的曲线 使用ezplot和ezplot3函数,可以方便的绘制二维和三维参数曲线. ezplot函数调用格式: ezplot(f,xmin,xmax,ymin,ymax
15、) f是一个字符串 ezplot(x,y,tmin,tmax),36,ezplot3函数调用格式:ezplot3(x,y,z,tmin,tmax) 例19.绘制如下参数方程的曲线图,利用ezplot3函数可以 绘制该方程曲线图 ezplot3(exp(t/10),sin(t)*cos(t),t,0,6*pi),37,函数的曲面 ezmesh绘制函数表示曲面的网格图,也可以利用ezsurf绘制函数表示的曲面 ezmesh命令格式:ezmesh(f,domain) ezmesh(x,y,z,smin,smax,tmin,tmax) 例20.绘制如下函数的曲面图,ezmesh(y2-3*x*y+x2
16、,-4,4,-4,4),38,t=-pi:pi/10:pi; x y z=cylinder(1+sin(t); surf(x,y,z) axis square,柱面和球面,k=5; n=2k-1; theta=pi*(-n:2:n)/n; phi=(pi/2)*(-n:2:n)/n; x=cos(phi)*cos(theta); y=cos(phi)*sin(theta); z=sin(phi)*ones(size(theta); colormap(0 0 0; 1 1 1) C=hadamard(2k); surf(x,y,z,C) axis square,39,x,y=meshgrid(-
17、6:0.2:6); z=x.2-y.2; mesh(x,y,z) colormap(0 0 1) x,y=meshgrid(-8:0.5:8); z=x.2-y.2; ii=find(abs(x)6|abs(y)6); z(ii)=zeros(size(ii); mesh(x,y,z),矩形域上的马鞍面,40,t=0:.1:2*pi;r=0:0.1:2; x=r*cos(t);y=r*sin(t); zz=x.2-y.2; surfc(x,y,zz) figure mesh(x,y,zz) colormap(0 0 1),圆域上的马鞍面,41,符号变量与符号表达式,在数学应用中,常常需要做极限
18、、微分、求导数等运算,MATLAB称这些运算为符号运算。MATLAB的符号运算功能是通过调用符号运算工具箱(Symbolic Math Toolbox)内的工具实现,其内核是借用Maple数学软件。MATLAB的符号运算工具箱包含了微积分运算、化简和代换、解方程等几个方面的工具,42,符号表达式的创建,syms符号变量1符号变量2 f=表达式 例22.符号多项式运算 syms x f=2*x2+3*x-5; g=x2+x-7; h1 = f+g h2 = expand(f*g ) factor(h2),h1=3*x2+4*x-12 h2 = 2*x4+5*x3- 16*x2-26*x+35 a
19、ns =(x-1)*(2*x+5)* (x2+x-7),43,A1=subs(A, old, new)修改表达式 用new置换符号表达式A中的old 得到新的符号表达式A1。 例23. 求符号多项式的值 syms a x f=a*x2+3*x+4; f1=subs(f,a,2) subs(f1,x,5),符号表达式中变量替换,f1 = 2*x2+3*x+4 ans = 69,44,复杂表达式的化简,syms x y z a b c f=(x+y)*(a+bc)z/(x+a)2 pretty(f),常用化简命令: 降幂排列:collect(P,x); 展开:expand(P); 3. 重叠: h
20、orner(P); 4. 因式分解: factor(P); 5. 化简: simplify(P),45,级数求和运算,S=symsum(f,n,a,b),syms k n S=symsum(k,k,1,n); S1=simple(S) S1 =1/2*n*(n+1) S=symsum(k2,k,1,n); S2=simple(S) S2 =1/6*n*(n+1)*(2*n+1),例24.计算级数,46,符号变量和表达式的建立,【例25】用符号计算验证三角等式 syms fai1 fai2 y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2) y =
21、sin(fai1-fai2),返 回,47,解:可用以下程序完成: clear; syms x y=log(x+2)/(1-x); dy=diff(y,x) dy3=diff(y,x,3) pretty(dy3) 函数pretty(),其功能是使它作用的表达式更符合数学上的书写习惯。,例26:求函数 的一阶和三阶导数。,48,函数的极值,1、一元函数的极值,函数命令:fminbnd,调用格式: x,feval,exitflag=fminbnd(fun,x1,x2),%求fun在区间(x1,x2)上的极值. 返回值: x:函数fun在(x1,x2)内的极值点 feval:求得函数的极值 exit
22、flag: exitflag0,函数收敛于解x处 exitflag=0,已达最大迭代次数 exiflag0,函数在计算区间内不收敛.,49,例27:求函数,在,上的极小值.,fun=inline(x+pi)*exp(abs(sin(x+pi),x,feval,exitflag=fminbnd(fun,-pi/2,pi/2),fun = Inline function: fun(x) = (x+pi)*exp(abs(sin(x+pi) x = -1.2999e-005 feval = 3.1416 exitflag = 1,50,xx=-pi/2:pi/200:pi/2; yxx=(xx+pi
23、).*exp(abs(sin(xx+pi); plot(xx,yxx) xlabel(x),grid on % 可以用命令xx,yy=ginput(1) 从局部图上取出极值点及相应函数值,51,2、 多元函数的极值,函数命令:fminsearch 调用格式:x,feval,exitflag=fminsearch(fun,x0) % 求在x0附近的极值,例28:求,的极小值.,function f=myfunmin2(v) x=v(1); y=v(2); f=100*(y-x2)2+(1-x)2;,52,sx,sfeval=fminsearch(myfunmin2,2 3),sx = 1.000
24、0 1.0000 sfeval = 2.1718e-010,53,3、函数零点,函数命令:fzero 求一元函数的零点 调用格式:x,feval,exitflag=fzero(fun,x0),例29:求,的零点。,(1)采用符号计算 S=solve(sin(t)2*exp(-0.1*t)-0.5*abs(t),t) S = 0.,54,y=inline(sin(t).2.*exp(-0.1*t)-0.5*abs(t),t); t=-10:0.01:10; Y=y(t); plot(t,Y,r); % r 用红色作图 hold on %在原来基础上作图 plot(t,zeros(size(t),
25、k); %y横为0,黑色 xlabel(t);ylabel(y(t) hold off,(2)数值法求解,zoom on %获局部放大图 tt,yy=ginput(5);zoom off %用鼠标获5个零点猜测值 tt yy,55,56,tt = -2.0046 -0.5300 -0.1152 0.6221 1.6820 yy = -0.0088 -0.0088 -0.0088 -0.0088 -0.0088,57,t1,y1=fzero(y,-0.1) -0.1附近找 t1 = -0.5198 y1 = 0 t2,y2=fzero(y,2) t2 = 1.6738 y2 = 2.2204e-016,输出: 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2),单变量方程,solve()语句的用法,例30: 求解方程 ax2+bx+c = 0,输入: x= solve(a*x2+b*x+c) 或 solve(a*x2+b*x+c=0),1)符号解,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报书 标题
- 公司工作总结范文(15篇)
- 2025年注会职业道德知识试题及答案
- 2025年证券从业资格证考试深度辅导试题及答案
- 注册会计师考试信息来源评估试题及答案
- 注册会计师复习交流平台试题及答案
- 2025至2030年中国电感调频式位移传感器数据监测研究报告
- 微生物实验的观察能力考核试题及答案
- 成长课题申报书
- 美学课题申报书范文
- 2024年新人教版四年级数学下册《第6单元第2课时 小数加减法》教学课件
- 初中语文名著“整本书阅读”教学策略实践与研究
- 劳动合同(模版)4篇
- 第19课+资本主义国家的新变化+教案 高一下学期统编版(2019)必修中外历史纲要下
- 5.15钢铁长城教学设计2023-2024学年八年级历史下册
- 客观题法律职业资格考试(试卷二)试卷及解答参考(2025年)
- 公司法涉税实务手册-北京律协-2024-WN8
- 137案例黑色三分钟生死一瞬间事故案例文字版
- 人教版初三化学下册鉴别真假黄金
- 2024-2030年中国虾青素行业发展分析及投资风险预警与发展策略研究报告
- 直播电商策划与运营 课件 项目1 认识直播电商、项目2 主播人设打造与能力塑造
评论
0/150
提交评论