MATLABSimulink北航第二次课2_第1页
MATLABSimulink北航第二次课2_第2页
MATLABSimulink北航第二次课2_第3页
MATLABSimulink北航第二次课2_第4页
MATLABSimulink北航第二次课2_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 MATLAB在数值分析中的应用董素君新主楼 C-思考题n进行下列计算,给出不使用for和while等循环语句的计算方法;n1 . n2.求出y=x*sin(x) 在0 x sum(2.0:63)ans = 1.8447e+019 x=0.01*pi:0.01*pi:32*pi; y=x.*sin(x); plot(x,y) hold on gridmaxsort主要内容n1.1 MATLAB环境n1.2 基本程序元素n1.3 数据类型及常用函数n1.4 矩阵n1.5 字符串数组n1.6 程序设计n1.7 图形可视化n1.8 MATLAB在数值分析中的应用n1.9 图形用户界面GUI开发

2、1.8 MATLAB在数值分析中的应用n多项式n使用降幂系数的行向量表示,如n多项式表示为:p=1 -12 0 25 116nroots:求多项式等于0的根,根用列向量表示npoly:已知多项式的根,构建相应多项式npolyval(p,n):求多项式函数值npolyder(p):求多项式的微分多项式11625012234xxxx p=1 -12 0 25 116 r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672ip=poly(r)p = 1 -12 -0 25 116a=1 2 3 ; polyval(a,2)ans

3、 = 11polyder(a)ans = 2 21.8 MATLAB在数值分析中的应用n多项式n使用降幂系数的行向量表示,如n多项式表示为:p=1 -12 0 25 116nroots:求多项式等于0的根,根用列向量表示npoly:已知多项式的根,构建相应多项式npolyval(p,n):求多项式函数值npolyder(p):求多项式的微分多项式11625012234xxxx p=1 -12 0 25 116 r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672ip=poly(r)p = 1 -12 -0 25 116p

4、olyval(p,5)ans = -634 pp=polyder(p)pp = 4 -36 0 251.8 MATLAB在数值分析中的应用n多项式n使用降幂系数的行向量表示,如n多项式表示为:p=1 -12 0 25 116nroots:求多项式等于0的根,根用列向量表示npoly:已知多项式的根,构建相应多项式npolyval(p,n):求多项式函数值npolyder(p):求多项式的微分多项式11625012234xxxx求极值: p=1,-12,0,25,116;x=0:1:10;y=polyval(p,x);plot(x,y)hold ongridpp=polyder(p)xx=roo

5、ts(pp)yy=polyval(p,xx)plot(xx,yy,ro)1.8 MATLAB在数值分析中的应用n多项式n多项式的运算例14:相乘conva=1 2 3 ;b=1 2;c=conv(a,b)c = 1 4 7 6conv指令可以嵌套使用,如:conv(conv(a,b),c)ans = 1 8 30 68 97 84 36例15:相除deconvq,r=deconv(c,b)q = 1 2 3r = 0 0 0 0q 为商多项式,r为余多项式1.8 MATLAB在数值分析中的应用n插值n一维插值interp1()nyi=interp1(x,y,xi)nyi=interp1(x,y

6、,xi,method)nyi=interp1(x,y,xi,method,extrap)nmethod用于指定插值算法,其值可以是: nearest最近插值(执行速度最快,输出结果为直角转折) linear线性插值(默认值,在样本点上斜率变化很大) spline分段三次样条插值(最花时间,输出结果最平滑) cubic, pchip分段三次Hermite插值(最占内存,输出结果与spline差不多)n二维插值zi=interp2(x,y,z,xi,yi,method)n三维插值vi=interp3(x,y,z,v,xi,yi,zi,method)n三次样条插值pp=spline(x,y),返回三

7、次样条插值的分段多项式形式的向量,以进行插值计算:yi=ppval(pp,xi)例exp2_16.m1.8 MATLAB在数值分析中的应用n例2:多项式插值nys=0 0.9 0.6 1 0 0.1 -0.3 -0.7 -0.9 -0.2; %已有的样本点ysnxs=0:length(ys)-1; %已有的样本点xsnx=0:0.1:length(ys)-1;%新的样本点xny1=interp1(xs,ys,x,nearest); %插值产生新的样本点y1ny2=interp1(xs,ys,x,linear); %插值产生新的样本点y2ny3=interp1(xs,ys,x,spline);

8、%插值产生新的样本点y3ny4=interp1(xs,ys,x,cubic); %插值产生新的样本点y4nplot(xs,ys,+k,x,y1,:r,x,y2,-m,x,y3,-c,x,y4,-b) %分别绘制不同方法产生的曲线nlegend(sampled point,nearest,linear,spline,cubic) exm19.m1.8 MATLAB在数值分析中的应用1.8 MATLAB在数值分析中的应用n拟合n最小二乘法多项式拟合函数np=ployfit(x,y,n) 或 p,s=ployfit(x,y,n) (x,y)为已知数据,n为多项式阶数;输出参数p为拟合生成的多项式的系

9、数向量(长度为n+1),s为结构参数n通过调用y=polyval(p,x)可以获得x处估计相应的多项式函数值y n样条拟合函数nhelp splines可快速查看函数列表n使用这些函数拟合得到曲线函数sp以后,可利用fnval()计算任意自变量下的函数值1.8 MATLAB在数值分析中的应用n例18:多项式的拟合nclcnclearnx=0:0.1:2*pi; %生成样本点xny=sin(x)+0.5*rand(size(x); %生成样本点y,通过随机矩阵np=polyfit(x,y,3) %拟合出多项式(3阶)ny1=polyval(p,x); %求多项式的值nplot(x,y,+,x,y

10、1,-r) %绘制多项式曲线,以验证结果n程序运行结果如图3-1所示:n图3-1多项式拟合示例程序运行结果图1.8 MATLAB在数值分析中的应用n微/积分n已知函数y=f(x),在区间a,b内y对x的积分为n梯形法数值积分: z=trapz(y):单位步长计算y的积分,否则需乘以步长n自适应simpson法数值积分:quad() q=quad(fun,a,b) q=quad(fun,a,b,tol) q=quad(fun,a,b,tol,trace,p1,p2,)n输入:fun为被积函数,表达式必须使用点运算符(.*、./ 和.)以支持向量;a,b即积分上下限;tol绝对误差限(默认1.e-

11、6);p1,p2直接传递给函数fun的已知参数 n输出:q积分结果n自适应Lobatto法数值积分:quadl()n使用方法同上y=exp(-0.5*t).*sin(t+pi/6)1.8 MATLAB在数值分析中的应用n例例42 对对进行数值积分。n用梯形求积函数trapz()、自适应Simpson求积(低阶)函数quad()和自适应Lobatto求积(高阶)函数quad了()进行计算。n注:被积函数func()的表达式必须是向量形式: y=exp(-0.5*t).*sin(t+pi/6),式中t和y为向量,所以用到点乘符号“.*”。function xIntegrationclear all

12、clc% the interval: a, b, the step: da = 0; % 积分下限b = 3*pi; % 积分上限d = pi/1000; % 积分步长 t = a:d:b;y = func(t);format long % 梯形数值积分y_trapz = trapz(y) * d % 自适应Simpson法y_quad = quad(func,a,b)y_quadl = quadl(func,a,b)disp(Results:)disp( Trapz Qquad Quadl)disp(y_trapz,y_quad,y_quadl)function y = func(t) y

13、= exp(-0.5*t) .* sin(t+pi/6);1.8 MATLAB在数值分析中的应用n梯形法数值积分: z=trapz(y)n自适应simpson法数值积分:quad() q=quad(fun,a,b) q=quad(fun,a,b,tol) q=quad(fun,a,b,tol,trace,p1,p2,)y=exp(-0.5*t).*sin(t+pi/6)a = 0; % 积分下限b = 3*pi; % 积分上限d = pi/1000; % 积分步长1.9 句柄图形系统n句柄图形对象n层次结构n创建:nRoot,figure,axed,uicontrol,uimenu,uicon

14、textmenu,uitoolbar,uibuttongroup,uipanelnimage,light,line,patch1.9 句柄图形系统n句柄图形对象n对象的句柄:n创建对象时,MATLAB返回的用于标识此对象的数值n每个对象都有一个独一无二的句柄,通过操作句柄,可查看对象的所有属性或修改大部分属性n将“句柄值为h的对象”简称为“对象h”n根对象的句柄值为0,图形窗口的句柄值默认为正整数,其他对象的句柄值为系统随机产生的正整数n图形对象属性n每个图形对象都有一个属性列表,记录了该图形对象的所有信息n属性列表示一个结构体,字段名为对象的属性名,字段值为对象的属性值n对图形对象进行操作就

15、是对图形对象属性值的操作1.9 句柄图形系统n句柄图形对象n基本操作n获取对象属性值: get(h), a=get(h), get(figure), get(h,PropertyName)n设置对象属性值: set(h,PropertyName,PropertyValue),set(h), set(h,PropertyName)n获取当前的图形、坐标轴和对象 gcf:获取当前图形窗口句柄值 gca:获取当前图形窗口中当前坐标轴的句柄值 gco:获取当前图形窗口中当前对象的句柄值 gcbf:获取正在执行的回调程序对应的对象所在窗口句柄值 gcbo:获取正在执行的回调程序对应的对象句柄值 get(

16、0,ScreenSize)ans =1 1 1280 800 set(0,Units,norm); get(0,ScreenSize)ans = 0 0 1 1 figure(Units,norm,position,0 0 1 1)1.9 句柄图形系统n句柄图形对象n基本操作n查找对象: h=findobj:返回根对象及其子对象数柄 h=findobj(P1,Values1,-logical,P2,Value2) h=findall(h_list):查找h_list包含的所有对象及其子对象,包含句柄隐藏的对象 h=allchild(h_list):查找对象的所有子对象 h=ancestor(h

17、_list,type):查找对象给定类型的父对象n复制对象 copyobj(h,p)n删除对象 delete(h) clf或cla close(h) 或者 close name figure(1) set(1,HandleVisibility,off) findobjans= 0 h=findall(0,type,figure) delete(h)1.9 句柄图形系统n句柄图形对象n图形对象的共有属性属 性属性描述有效属性值BeingDeleted调用DeletedFcn时,该属性值为on;只读on、offBusyAction指定如何处理中断调用函数cancel、queueButtonDown

18、Fcn当在对象上按下鼠标时,执行的回调程序字符串或函数句柄Children所有子对象的句柄图形对象的句柄向量Clipping设定坐标轴子对象是否能超出坐标轴范围,仅对坐标轴子对象有效;值为on时可超出坐标轴范围on 、off(text对象例外,默认值为off)CreateFcn当创建一个对象时,执行的回调程序字符串或函数句柄DeletedFcn当删除一个对象时,执行的回调程序字符串或函数句柄HandleVisibility指定对象句柄是否可见on 、off、callbackHitTest指定对象是否可通过鼠标单击称为当前对象on 、offInterruptible指定一个回调程序是否可被随后的

19、回调程序中断on 、offParent父对象的句柄图形对象的句柄Selected指定对象是否被选择上on 、offSelectionHighlight指定对象被选择时是否突出显示on 、offTag用户指定的对象标签字符串Type指明对象类型,只读,root,figure,axes,unicontrol类型字符串UserData用户存储的数据,用于多个对象之间的数据传递任一矩阵Visible指定对象的可见性on 、off1.9 句柄图形系统n图形对象的属性n根对象n图形窗口对象(get(gcf)nfigure,figure(h), figure(PropertyName,PropertyVal

20、ue,) WindowStyle 标准normal、模式(独占式)modal、嵌入式dockedn坐标轴对象(get(gca)naxes, axes(h), h=axes(PropertyName, PropertyValue, ) ColorOrder、LineStyleOrder h=get(gcf,Child) get(h,type)ans =axes get(h,Colororder) x=0:1:10; y=1:1:7*sin(x) plot(x,y)1.9 句柄图形系统n图形对象的属性n核心图形对象nimage:属性Cdata定义了image对象的图像数据 Image(x,y,C)

21、n line:属性xdata, ydata, zdata line(x,y,z,属性1,属性1值)ntext: 属性string Text(x,y,str) text(string,int_0 xint_ydF(u,v),Fontsize,16)nlight:属性Position,Stylenpatch:属性Vertices,Facesnrectangle:属性Position,Curvaturensurface:属性XData,YData,ZData,VerterNormals1.9 句柄图形系统n图形对象的属性nuicontrol对象nh=uicontrol(parent,Property

22、Name,PropertyValue,) Callback: 所有语句写好,语句间利用逗号或分号分隔,语句中每个单引号全部换成两个单引号,最外层加一对单引号 如果语句比较多字符串比较长,可用连接符 和分行符将该字符串写成多行if ishandle(h0) set(h1,lael,datestr(clock);else stop(t) delete(t)endif ishandle(h0),set(h1,lael,datestr(clock);else,stop(t),delete(t),endif ishandle(h0),. set(h1,lael,datestr(clock);. else

23、,stop(t),delete(t),end1.9 句柄图形系统n图形对象的属性nuicontrol对象nh=uicontrol(parent,PropertyName,PropertyValue,) Min,Max,Value Check boxesRadio button:Value (On)=Max/(Off)=Min Slider:MinValue figure(menubar,none); uimenu(label,&Open); h=uimenu(label,界面选择); uimenu(h,label,界面A,Accelerator,E,Callback,1); uimen

24、u(h,label,界面B,Accelerator,F,Callback,2);uimenu(label,菜单2)1.9 句柄图形系统n图形对象的属性n工具栏和工具栏按钮nht=uitoolbar(h,P1,V1,)nhtt=uipushtool(ht,P1,V1,)n可视化表格(Excell表格)nh=uitable(data,datas,P1,V1,)nH=uitable(4,3) 创建空表格h=uitable(10,3,Position,50 50 250 200);set(h,ColumnNames,姓名,学号,成绩)h=uitable(data,1,2,3;4,5,6)1.9 句柄图

25、形系统n例h0=figure(menubar,none,Position,200 60 450 450,. Name,设置曲线的形状和颜色设置曲线的形状和颜色);h1=axes(parent,h0,Position,0.15 0.45 0.75 0.45,. Visible,on);Xlabel(自变量自变量x);ylabel(自变量自变量y);title(y=sinx);x=0:0.1:2*pi;y=sin(x);k=line(x,y);set(0,DefaultUicontrolfontsize,12)p1=uicontrol(parent,h0,Position,80 120 50 30

26、,. string,加号加号,callback,set(k,marker,+);p2=uicontrol(parent,h0,Position,200 120 50 30,. string,圆圈圆圈,callback,set(k,marker,o);p3=uicontrol(parent,h0,Position,80 80 50 30,. string,红色红色,callback,set(k,color,r);p3=uicontrol(parent,h0,Position,200 80 50 30,. string,绿色绿色,callback,set(k,color,r);1.10 图形用户界

27、面GUI开发环境nGUIDEGraphical User Interface Development Environmentn GUI 图形界面布局n GUI 编程n四种样板:nBlank GUI:空样板nGUI with Uicontrols:包含一些unicontrol对象nGUI with Axes and Menu:包含菜单栏和坐标轴图形对象nModel Question Dialog:一个对话框编辑器1.10 图形用户界面GUI开发环境n编辑界面包括3部分:n对象选择区:nuicontrol对象:Push Button,Slider,Radio Button,Check Box,Ed

28、it Text,Static Text,Pop-up Menu,Listbox,Toggle Button,nAxesnPanel,Button GroupnActiveX ControlnGUI工具栏nGUI布局区1.10 图形用户界面GUI开发环境n编辑界面包括3部分:n对象选择区:nGUI工具栏nGUI布局区n两个文件:nFIG文件(.fig):包含GUI对象的属性设置及其布局信息 nM文件(.m):包含控制GUI对象执行的回调函数.1.8 图形用户界面GUI开发n菜单编辑器菜单编辑器 :1.8 图形用户界面GUI开发n句柄图形对象nuicontrol对象 n属性查看器属性查看器 :1.

29、8 图形用户界面GUI开发nGUI的的M文件文件ngui_State:结构体,指定结构体,指定Opening函数和函数和Output函数;函数;nvarargin:1*4的单元数组:的单元数组:n1为所要执行回调函数的函数名,为所要执行回调函数的函数名,n24为回调函数输入参数:为回调函数输入参数: 2-hObject:为当前回调函数对应的为当前回调函数对应的GUi对象数柄对象数柄 3-eventdata:为未定义的保留参数为未定义的保留参数 4-handles:为当前为当前GUI所有对象数柄和用户定义的数据所有对象数柄和用户定义的数据n主函数运行机制主函数运行机制n开始运行输入参数为空,创建

30、开始运行输入参数为空,创建GUI;n如果输入参数大于如果输入参数大于1,且第一个参数为字符串,则将其传给,且第一个参数为字符串,则将其传给gui_State.Callbackn启动启动GUI默认默认gui_mainfcn,当,当gui_State.Callback为空,则运行为空,则运行OpenFcn和和OutFcn,创建,创建handles结构体,否则运行结构体,否则运行Callback指指定的子函数定的子函数1.10 图形用户界面GUI开发环境nGUI的数据管理机制nGUI数据容器handles结构体(handles.tag1.value)n作为输入参数传递给每个回调函数,使得它们可以随意访问GUI数据 Temp=get(handles.a,String) Temp=get(handles.a); str=Temp.Stringn注意:handles只能存储GUI布局区设置的组件,要将M文件创建的组件数据存入handles两种方法: 在M文件中采用存贮用户数据的方法人为加上 采用guihandles函数更新h1=axes(parent,h0,Position,0.15 0.45 0.75 0.45,. Visible,on);handles.axes=h1;ha

温馨提示

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

评论

0/150

提交评论