数学建模电子教案

上传人:痛*** 文档编号:176929332 上传时间:2022-12-24 格式:PPT 页数:160 大小:1.87MB
收藏 版权申诉 举报 下载
数学建模电子教案_第1页
第1页 / 共160页
数学建模电子教案_第2页
第2页 / 共160页
数学建模电子教案_第3页
第3页 / 共160页
资源描述:

《数学建模电子教案》由会员分享,可在线阅读,更多相关《数学建模电子教案(160页珍藏版)》请在装配图网上搜索。

1、数学建模数学建模电子教案电子教案重庆邮电大学重庆邮电大学数理学院数理学院沈世云沈世云第一节第一节 MATLAB简介简介n什么是什么是 MATLAB?nMATLAB 能干什么能干什么?n掌握掌握 MATLAB n应用实例应用实例重庆邮电大学重庆邮电大学-数学建模数学建模学习 MATLABn什么是什么是 MATLAB?nMATLAB 能干什么能干什么?n掌握掌握 MATLAB n应用实例应用实例重庆邮电大学重庆邮电大学-数学建模数学建模什么是 MATLAB?1.MATLAB 代表MATrix LABoratoryn它的首创者是美国新墨西哥大学计算机系的系主任它的首创者是美国新墨西哥大学计算机系的系

2、主任Cleve MolerCleve Moler博士,他在教授线性代数课程发现其博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了他语言很不方便,篇构思开发了MATLABMATLAB。最初采用。最初采用FORTRANFORTRAN语言编写,语言编写,2020世纪世纪8080年代后出现了年代后出现了MATLABMATLAB的第二版,全部采用的第二版,全部采用C C语言编写语言编写.n19841984年年MolerMoler博士和一批数学家及软件专家创建了博士和一批数学家及软件专家创建了MathWorksMathWorks公司,专门开发公司,专门开发MATLABMATLAB。n19931

3、993年出现了微机版,到年出现了微机版,到20032003年是年是6.56.5版版重庆邮电大学重庆邮电大学-数学建模数学建模2.一种演草纸式的科学计算语言3.MATLAB 是一高性能的技术计算语言.n强大的数值计算和工程运算功能n符号计算功能n强大的科学数据可视化能力 n多种工具箱 重庆邮电大学重庆邮电大学-数学建模数学建模MATLAB 能干什么?MATLAB可以进行:n数学计算、算法开发、数据采集n建模、仿真、原型 n数据分析、开发和可视化n科学和工程图形应用程序的开发,包括图形用户界面的创建。MATLAB广泛应用于:n数值计算、图形处理、符号运算、数学建模、系统辨识、小波分析、实时控制、动

4、态仿真等领域。重庆邮电大学重庆邮电大学-数学建模数学建模掌握 MATLAB MATLAB的构成:的构成:nMATLAB开发环境:进行应用研究开发的交互式平台开发环境:进行应用研究开发的交互式平台nMATLAB 数学与运算函数库:用于科学计算的函数数学与运算函数库:用于科学计算的函数nMATLAB 语言:进行应用开发的编程工具语言:进行应用开发的编程工具n图形化开发:二维、三维图形开发的工具图形化开发:二维、三维图形开发的工具n应用程序接口应用程序接口(API):用于与其他预言混编:用于与其他预言混编n面向专门领域的工具箱:小波工具箱、神经网络工具面向专门领域的工具箱:小波工具箱、神经网络工具箱

5、、信号处理工具箱、图像处理工具箱、模糊逻辑工箱、信号处理工具箱、图像处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。用的工具箱。重庆邮电大学重庆邮电大学-数学建模数学建模开发环境 包括:命令窗口、图形窗口、编辑窗口、包括:命令窗口、图形窗口、编辑窗口、帮助窗口。帮助窗口。重庆邮电大学重庆邮电大学-数学建模数学建模命令窗口n可在提示符后输入交互式命令可在提示符后输入交互式命令 n结果会自动的产生结果会自动的产生n例如:例如:MATLAB prompt()and cursor(|)command(typed at pro

6、mpt)MATLAB output重庆邮电大学重庆邮电大学-数学建模数学建模图形窗口在窗口中输入:nPlot(1,2,4,9,16,1,2,3,4,5)nMATLAB 划出如下图形:编辑窗口n用来创建和修改M-files(MATLAB 脚本)帮助窗口重庆邮电大学重庆邮电大学-数学建模数学建模The MATLAB Language MATLAB 语言的特点语言的特点nMatlab的基本数据单元是不需指定维数的矩阵。的基本数据单元是不需指定维数的矩阵。nMatlab的所有计算都是通过双精度进行的,在的所有计算都是通过双精度进行的,在内存中的数都是双精度的。内存中的数都是双精度的。ndouble 是

7、一个双精度浮点数,每个存储的双是一个双精度浮点数,每个存储的双精度数用精度数用64位。位。nchar用于存储字符,每个存储的字符用用于存储字符,每个存储的字符用16位。位。重庆邮电大学重庆邮电大学-数学建模数学建模程序程序M文件与文件与m函数函数图形显示图形显示流程控制流程控制其它输出其它输出函数函数语句语句变量变量各种运算符各种运算符MATLABMATLAB的程序构成:的程序构成:重庆邮电大学重庆邮电大学-数学建模数学建模常变量及其命名规则常变量及其命名规则n变量名可以有数字、字母、下划线构成;变量名可以有数字、字母、下划线构成;n变量的首字符必须是字母;变量的首字符必须是字母;n区分变量名

8、的大小写区分变量名的大小写n每个变量名最长只能包含每个变量名最长只能包含19个字符。个字符。重庆邮电大学重庆邮电大学-数学建模数学建模一.矩阵:1.矩阵的建立与表示法:在命令窗口中输入:A=1,2,3;4,5,6;7,8,9 可以得到:A=1 2 3 4 5 6 7 8 9若要显示整行或整列,则可以用(:)冒号来表示。冒(:)代表矩阵中行(ROWS)或列(COLUMNS)的全部。例如执行命令:A(:,2),就会显示第2列的全部,结果为:ans=2 5 8重庆邮电大学重庆邮电大学-数学建模数学建模n其他特殊矩阵的生成方法:1)、eye(m,n)或eye(m)产生m*n 或 m*m的单位矩阵。例如

9、:eye(3,4)与eye(3)分别产生如下矩阵:1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 12)、zeros(m,n)或 zeros(m)产生m*n 或m*m 的零矩阵。例如:zeros(3,4)与zeros(3)分别产生如下矩阵:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0重庆邮电大学重庆邮电大学-数学建模数学建模3)、ones(m,n)或ones(m)产生m*n或m*m的全部元素为1的矩 阵。例如:ones(3,4)与ones(3)分别产生如下矩阵:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

10、1 1 1 1 12.常用矩阵函数:1)、d=eig(A)返回矩阵A的特征值所组成的列向量;v,d=eig(A)返回分别由矩阵A的特征向量和特征值(以其为主对角线元素,其余元素为零)的两个矩阵。例如执行命令:v,d=eig(A)结果为:重庆邮电大学重庆邮电大学-数学建模数学建模 v=d=0.2320 0.7858 0.4082 16.1168 0 0 0.5253 0.0868 -0.8165 0 -1.1168 0 0.8187 -0.6123 0.4082 0 0 -0.0000 其中v(:,i)为d(i,i)所对应的特征向量。2)、det(A)计算行列式A的值。例如:det(A)结果为:

11、ans=0重庆邮电大学重庆邮电大学-数学建模数学建模 3)、expm(A)对矩阵A求幂。例如:expm(A)结果为:ans=1.0e+006*1.1189 1.3748 1.6307 2.5339 3.1134 3.6929 3.9489 4.8520 5.75524)、inv(A)求矩阵A的逆。例如:inv(A)结果为:Warning:Matrix is close to singular or badly scaled.Results may be inaccurate.RCOND=2.055969e-018.ans=1.0e+016*-0.4504 0.9007 -0.4504 0.90

12、07 -1.8014 0.9007 -0.4504 0.9007 -0.4504重庆邮电大学重庆邮电大学-数学建模数学建模5)、orth(A)返回对应于A的正交化矩阵。例如:orth(A)结果为:ans=0.2148 0.8872 0.5206 0.2496 0.8263 -0.38796)、poly(A)若A为一矩阵,则返回A的特征多项式。例如:poly(A)结果为:ans=1.0000 -15.0000 -18.0000 -0.0000 若A为一向量,则返回以A的元素为根的特征多项式。例如:r=1,2,3;p=poly(r)结果为:p=1 -6 11 -67)、rank(A)计算矩阵A的秩

13、。例如:r=rank(A)结果为:r=2 重庆邮电大学重庆邮电大学-数学建模数学建模3.矩阵的四则运算符号:加 “+”减 “”乘 “*”除 “/”共轭转置 “”非共轭转置“.”例如:b=1+2i;3+4ib=1.0000+2.0000i 3.0000+4.0000ibans=1.0000-2.0000i 3.0000-4.0000ib.ans=1.0000+2.0000i 3.0000+4.0000i重庆邮电大学重庆邮电大学-数学建模数学建模4.矩阵分解:1)、q,r=qr(A)将矩阵A做正交化分解,使得A=q*r。q为单位矩阵(unitary matrix),其范数(norm)为1。r为对角

14、化的上三角矩阵。例如:q,r=qr(A)q=-0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165 -0.8616 -0.3015 0.4082 r=-8.1240 -9.6011 -11.0782 0 0.9045 1.8091 0 0 -0.0000 norm(q)ans=1.0000重庆邮电大学重庆邮电大学-数学建模数学建模2)、L,U=lu(A)将矩阵A做对角线分解,使得A=L*U,L为下三角矩阵(lower triangular matrix),U为上三角矩阵(upper triangular matrix)。例如:L,U=lu(A)L=0.1429

15、 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U=7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 0.0000重庆邮电大学重庆邮电大学-数学建模数学建模二、多项式:多项式是用向量形式来表示,从最右边算起,第一个为0阶系数,第二个为1阶系数,依次类推。例如一个一元三次多项式:4x3+3x2+2x+1 用4 3 2 1来表示。1.多项式的运算:1)、乘:conv指令执行多项式的相乘运算,指令格式为:z=conv(x,y)例如:x=1 3 5;y=2 4 6;z=conv(x,y)z=2 10 28 38 30重庆邮电大学重庆邮

16、电大学-数学建模数学建模如果要对两个以上的多项式进行相乘,以重复使用conv指令,例如:(x,y同上)conv(conv(x,y),x)ans=2 16 68 172 284 280 1502)、分解:与1)相反,用deconv指令,其指令格式为:z,r=deconv(x,y)表示x除以 y商为z,余数为r。例如:z,r=deconv(z,x)z=2 4 6 r=0 0 0 0 0重庆邮电大学重庆邮电大学-数学建模数学建模3)、求根:roots指令用于求多项式的根。例如:fx=1 3 2;rootoffx=roots(fx)rootoffx=-2 -1 4)、polyval(p,x)计算多项式

17、p在x出的值,其中x可以是点或向量或矩阵。例如:p=1 -6 11 -6;x=1;p1=polyval(p,x)结果为:p1=0 x=1,2,3;p2=polyval(p,x)结果为:p2=0 0 0重庆邮电大学重庆邮电大学-数学建模数学建模 x=A;p3=polyval(p,x)结果为:p3=0 0 0 6 24 60 120 210 336 5)、polyder(p)求p的微分多项式。例如:p=1-6 11-6;dp=polyder(p)dp=3 -12 11重庆邮电大学重庆邮电大学-数学建模数学建模 6)、r,p,k=residue(x,y)求x/y的部分因式分解。若多项式x,y都没有重

18、根,则可把x/y的比值表示为x/y=r1/(s-p1)+r2/(s-p2)+.+rn/(s-pn)+ks例如 用residue指令求x/(x2+3x+2)的部分因式分解:x=1 0;y=1 3 2;r,p,k=residue(x,y)r=2 -1 p=-2 -1 k=重庆邮电大学重庆邮电大学-数学建模数学建模n当输入三个参数 r,p,k 时,该函数又会生成原来的函数。例如:?x,y=residue(r,p,k)x=1 0 y=1 3 2重庆邮电大学重庆邮电大学-数学建模数学建模三 符号变量、符号表达式、抽象函数:函数sym用于生成符号变量和符号表达式,如:x=sym(x)a=sym(alpha

19、)分别创建变量x,alpha f=sym(a*x2+b*x+c)创建变量表达式f,但要注意此式并没有自动创建变量a,b,c,x。可以用函数syms对多个变量同时定义,如:syms a b c x 函数sym也可以用来表示确定的函数,如 f=sym(f(x)生成函数f(x)。重庆邮电大学重庆邮电大学-数学建模数学建模四 常见符号计算:1.微分:diff是求微分最常用的函数。其输入参数既可以是函数表达式,也可以是符号矩阵。Diff(f,x,n)表示对f关于x求n阶导数。例如:1).下面程序段将生成表达式sin(ax),并分别对其中的x和a求导。?syms a x?f=sin(a*x);?df=di

20、ff(f,x)df=cos(a*x)*a?dfa=diff(f,a)dfa=cos(a*x)*x重庆邮电大学重庆邮电大学-数学建模数学建模2)、若输入参数为矩阵,将对矩阵中的每个元素求导。?syms a x?A=-sin(a*x),sin(a*x);cos(a*x),cos(a*x)A=-sin(a*x),sin(a*x)cos(a*x),cos(a*x)?dy=diff(A,x)dy=-cos(a*x)*a,cos(a*x)*a -sin(a*x)*a,-sin(a*x)*a重庆邮电大学重庆邮电大学-数学建模数学建模3)、可用函数jacobian来计算Jacobi矩阵。?syms r l f

21、?x=r*cos(l)*cos(f);?y=r*cos(l)*sin(f);?z=r*sin(l);?J=jacobian(x;y;z,r l f)J=cos(l)*cos(f),-r*sin(l)*cos(f),-r*cos(l)*sin(f)cos(l)*sin(f),-r*sin(l)*sin(f),r*cos(l)*cos(f)sin(l),r*cos(l),0 重庆邮电大学重庆邮电大学-数学建模数学建模2.积分:用函数int来求符号表达式的积分。命令格式为:int(f,r,x0,x1)其中f为所要积分的表达式,r为积分变量,若为定积分,则x0,x1为积分上下限。例:?sym x;?s

22、ym k real?f=exp(-(k*x)2)f=exp(-k2*x2)?int(f,x,-inf,inf)ans=signum(k)/k*pi(1/2)重庆邮电大学重庆邮电大学-数学建模数学建模3.级数求和:函数用于对符号表达式求和。例:?syms k;?s1=symsum(1/k2,1,inf)s1=1/6*pi2 重庆邮电大学重庆邮电大学-数学建模数学建模4.极限:用函数limit来求表达式的极限。函数limit的常用调用格式:n 数学表达式 命令格式 n Limit(f),或limit(f,x)n Limit(f,x,a),或 limit(f,a)n Limit(f,x,a,left

23、)n Limit(f,x,a,right)(lim0 xfx)(limxfax)(limxfax)(limxfax重庆邮电大学重庆邮电大学-数学建模数学建模5.化简:1)、collect(f)将表达式中相同次幂的项合并,也可以再输入一个参数指定以哪个变量的幂次合并。2)、expand(f)将表达式展开。3)、horner(f)将表达式转换为嵌套格式。4)、factor(f)将表达式分解因式,并且分解后的多项式的所有系数都为有理数。5)、simplify(f)利用函数规则对表达式进行化简。重庆邮电大学重庆邮电大学-数学建模数学建模重庆邮电大学重庆邮电大学-数学建模数学建模第二节第二节MATLAB

24、的的程序设计程序设计 重庆邮电大学重庆邮电大学-数学建模数学建模1 脚本文件和函数文件脚本文件和函数文件11 M脚本文件脚本文件 对于一些比较简单的问题对于一些比较简单的问题,在指令窗中直接输入指令计算,在指令窗中直接输入指令计算。对于复杂计算,采用脚本文件(对于复杂计算,采用脚本文件(Script file)最为合适)最为合适。MATLAB只是按文件所写的指令执行只是按文件所写的指令执行。M脚本文件的特点是:脚本文件的特点是:脚本文件的构成比较简单,只是一串按用户意图排列而成脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)的(包括控制流向指令在内的)MATLAB

25、指令集合。指令集合。脚本文件运行后脚本文件运行后,所产生的所有变量都驻留在,所产生的所有变量都驻留在 MATLAB基本工作空间基本工作空间(Base workspace)中。只要用户不使用清除)中。只要用户不使用清除指令(指令(clear),),MATLAB指令窗不关闭,这些变量将一直指令窗不关闭,这些变量将一直保存在保存在基本工作空间基本工作空间中中。M文件有两种形式文件有两种形式:脚本文件(脚本文件(Script File)和函数文件和函数文件(Function File)。这两种文件的扩展名,均为)。这两种文件的扩展名,均为“.m”。重庆邮电大学重庆邮电大学-数学建模数学建模1 脚本文件

26、和函数文件(续脚本文件和函数文件(续1)12 M函数文件函数文件 与脚本文件不同与脚本文件不同,函数文件犹如一个,函数文件犹如一个“黑箱黑箱”,把一些数据,把一些数据送进并经加工处理,再把结果送出来。送进并经加工处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件定义的。提供的函数指令大部分都是由函数文件定义的。M函数文件的特点是:函数文件的特点是:从形式上看从形式上看,与脚本文件不同,与脚本文件不同,函数文件的笫一行总是,函数文件的笫一行总是以以“function”引导的引导的“函数申明行函数申明行”。从运行上看从运行上看,与脚本文件运行不同,与脚本文件运行不同,每当函数文件

27、运行,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间,称为就会专门为它开辟一个临时工作空间,称为函数函数工作空间工作空间(Function workspace)。当执行文件最后一条。当执行文件最后一条指令时指令时,就结束该函数文件的运行,同时该临时函数空间,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。及其所有的中间变量就立即被清除。MATLAB允许使用比允许使用比“标称数目标称数目”较少的输入输出宗量,较少的输入输出宗量,实现对函数的调用实现对函数的调用。重庆邮电大学重庆邮电大学-数学建模数学建模1 脚本文件和函数文件(续脚本文件和函数文件(续2)

28、13 M文件的一般结构文件的一般结构 由于从结构上看由于从结构上看,脚本文件只是比函数文件少一个,脚本文件只是比函数文件少一个“函数申函数申明行明行”,所以只须描述清楚函数文件的结构,所以只须描述清楚函数文件的结构。典型典型 M函数文件的结构如下函数文件的结构如下:函数申明行:位于函数文件的首行,以关键字函数申明行:位于函数文件的首行,以关键字 functio 开头,开头,函数名以及函数的输入输出宗量都在这一行被定义。函数名以及函数的输入输出宗量都在这一行被定义。笫一注释行:紧随函数申明行之后以笫一注释行:紧随函数申明行之后以%开头笫一注释行。开头笫一注释行。该行供该行供lookfor关键词查

29、询和关键词查询和 help在线帮助使用在线帮助使用。在线帮助文本区在线帮助文本区:笫一注释行及其之后的连续以:笫一注释行及其之后的连续以%开头的开头的所有注释行构成整个在线帮助文本。所有注释行构成整个在线帮助文本。编写和修改记录:与在线帮助文本区相隔一个编写和修改记录:与在线帮助文本区相隔一个“空空”行,行,也以也以%开头,标志编写及修改该开头,标志编写及修改该M文件的作者和日期等文件的作者和日期等。函数体:为清晰起见,它与前面的注释以函数体:为清晰起见,它与前面的注释以“空空”行相隔。行相隔。重庆邮电大学重庆邮电大学-数学建模数学建模2 函数调用和参数传递函数调用和参数传递21 局部变量和全

30、局变量局部变量和全局变量 局部(局部(Local)变量:它存在于函数空间内部的中间变量,)变量:它存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本产生于该函数的运行过程中,其影响范围也仅限于该函数本身身。全局(全局(Global)变量:通过)变量:通过 global 指令,指令,MATLAB也允许几也允许几个不同的函数空间以及基本工作空间共享同一个变量,这种被个不同的函数空间以及基本工作空间共享同一个变量,这种被共享的变量称为全局变量。共享的变量称为全局变量。22 函数调用函数调用 在在MATLAB中,调用函数的常用形式是:中,调用函数的常用形式是:输出参数输

31、出参数1,输出参数输出参数2,=函数名函数名(输入参数输入参数1,输入参数输入参数2,)函数调用可以嵌套,一个函数可以调用别的函数,甚至调函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己用它自己(递归调用)。(递归调用)。重庆邮电大学重庆邮电大学-数学建模数学建模2 函数调用和参数传递(续)函数调用和参数传递(续)23 参数传递参数传递 MATLAB在函数调用上有一个与众不同之处在函数调用上有一个与众不同之处:函数所传递的:函数所传递的参数具有可调性参数具有可调性。传递参数数目的可调性来源于如下两个传递参数数目的可调性来源于如下两个MATLAB永久变量:永久变量:函数体内的函数体内的

32、 nargin 给出调用该函数时的输入参数数目。给出调用该函数时的输入参数数目。函数体内的函数体内的 nargout 给出调用该函数时的输出参数数目。给出调用该函数时的输出参数数目。只要在函数文件中包括这两个变量,就可以知道该函数文件只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。调用时的输入参数和输出参数数目。值得注意:值得注意:nargin、nargout 本身都是函数,不是变量,所本身都是函数,不是变量,所以用户不能赋值,也不能显示。以用户不能赋值,也不能显示。“变长度变长度”输入输出宗量:输入输出宗量:varargin、varrgout。具有接受。具

33、有接受“任意多输入任意多输入”、返回、返回“任意多输出任意多输出”的能力的能力。跨空间变量传递:跨空间变量传递:evalin。(参考(参考:circle.m,am1.m)重庆邮电大学重庆邮电大学-数学建模数学建模23 MATLAB的程序结构和控制流的程序结构和控制流231 程序结构程序结构 循环结构:循环结构:MATLAB提供两种循环方式。提供两种循环方式。顺序结构顺序结构 分支结构:分支结构:ifelseend。forend 循环和循环和while-end循环。循环。232 程序流控制程序流控制 常用指令:常用指令:return,echo,input,pause,keyboard,break

34、。switch-case 结构。结构。try-catch 结构。结构。警示指令:警示指令:error,warning。重庆邮电大学重庆邮电大学-数学建模数学建模23 MATLAB的程序结构和控制流(续)的程序结构和控制流(续)233 图形用户界面(图形用户界面(GUI)编程)编程 现代的主流应用程序已经从命令行的交互方式转变为以图现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。和控制的方便与灵活性。(面向对象编程)(面向对象编程)MATLAB能够以比较简单的方式实现一

35、系列的图形界面功能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和能。通过对控件、菜单属性的设置和 Callback 的编写,就能的编写,就能够满足大多数用户的需求。够满足大多数用户的需求。控件的控件的 Callback 属性属性:Callback 属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句。当用户激活控件语句。当用户激活控件对象(例如对象(例如:在控件对象图标上单击鼠标左键:在控件对象图标上单击鼠标左键)时,应用程)时,应用程序就运行序就运行 Callback 属性定义的子程序。属性定义的子程序。菜单的菜

36、单的 Callback 属性属性:Callback 属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句。当用户激活菜单语句。当用户激活菜单对象时,若没有子菜单就运行对象时,若没有子菜单就运行 Callback 属性定义的子程序。属性定义的子程序。若有,先运行若有,先运行 Callback 属性定义的子程序,再显示子菜单。属性定义的子程序,再显示子菜单。重庆邮电大学重庆邮电大学-数学建模数学建模24 M文件的调试文件的调试 编写编写 M文件时,错误(文件时,错误(Bug)在所难免。错误有两种:语法)在所难免。错误有两种:语法(Syntax)

37、错误和运行()错误和运行(Run-time)错误。)错误。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在运行时发现,终止执行,并给出相应对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。的错误原因以及所在行号。运行错误是算法本身引起的,发生在运行过程中。相对语法运行错误是算法本身引起的,发生在运行过程中。相对语法错误而言,运行错误较难处理错误而言,运行错误较难处理。尤其是。尤其是M函数文件,它一旦运函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。行停止,其中间变量被删除

38、一空,错误很难查找。有两种调试方法:直接调试法和工具调试法。有两种调试方法:直接调试法和工具调试法。重庆邮电大学重庆邮电大学-数学建模数学建模24 M文件的调试(续文件的调试(续1)直接调试法:可以用下面方法发现某些运行错误。直接调试法:可以用下面方法发现某些运行错误。在在M文件中,将某些语句后面的分号去掉,文件中,将某些语句后面的分号去掉,迫使迫使M文件输文件输出一些中间计算结果,以便发现可能的错误。出一些中间计算结果,以便发现可能的错误。在适当的位置,添加显示某些关键变量值的语句(包括使在适当的位置,添加显示某些关键变量值的语句(包括使用用 disp 在内)。在内)。利用利用 echo 指

39、令,使运行时在屏幕上逐行显示文件内容。指令,使运行时在屏幕上逐行显示文件内容。echo on 能显示能显示M脚本文件;脚本文件;echo FunNsme on 能显示名为能显示名为FunNsme 的的M函数文件。函数文件。在原在原M脚本或函数文件的适当位置,增添指令脚本或函数文件的适当位置,增添指令 keyboard。keyboard 语句可以设置程序的断点语句可以设置程序的断点。通过将原通过将原M函数文件的函数申明行注释掉,可使一个中间函数文件的函数申明行注释掉,可使一个中间变量难于观察的变量难于观察的M函数文件变为一个所有变量都保留在基函数文件变为一个所有变量都保留在基本工作空间中的本工作

40、空间中的M脚本文件。脚本文件。重庆邮电大学重庆邮电大学-数学建模数学建模第三节第三节 优化问题解法优化问题解法重庆邮电大学重庆邮电大学-数学建模数学建模一、无约束优化问题无约束极小化问题的标准性为:)(minxF其中x 为n 维变元向量。用 MATLAB 求解以上问题的基本步骤为:1、首先建立函数形式的 M-文件 fun.m:function f=fun(x)f=F(x)2、命令的基本格式:(1),min(21xxfunfx (2),(min0 xfunufx;或),(min0 xfunsfx (3),(min0optionsxfunufx;或),(min0optionsxfunsfx (4)

41、,(0 xfunleastsqx 或),(0optionsxfunleastsqx 重庆邮电大学重庆邮电大学-数学建模数学建模例1:Rosenbrock函数21221221)1()(100),(xxxxxf的最优解(极小)为)1,1(x,极小值为0f。试用不同算法求数值最优解。初始值选为)2,2.1()0(x。二、线性规划问题重庆邮电大学重庆邮电大学-数学建模数学建模例 2、6,2,1,90008.003.010005.002.070005.002.085003.003.003.001.001.001.0.6.064.072.032.028.04.0max0635241654321654321

42、jxxxxxxxxxxxxxtsxxxxxxzj 三、非线性规划问题二次规划的标准型为:bAxtsxcHxxzTT.21min 重庆邮电大学重庆邮电大学-数学建模数学建模例 3、0,0222.2262),(min2121212221212121xxxxxxtsxxxxxxxxf 重庆邮电大学重庆邮电大学-数学建模数学建模一般非线性规划的标准型为:VUBxVLBxGtsxF0)(.0)(min 其中x为n维变元向量,)(xG为m维非线性函数组成的向量。用 MATLAB 软件求解的基本步骤如下:1、首先建立函数形式的 M 文件 fun.m:function f,g=fun(x);f=F(x);g=

43、G1(x);G2(x);Gm(x);2、命令的基本格式有如下三个:(1)x=constr(fun,x0);(2)x=constr(fun,x0,options);(3)x=constr(fun,x0,options,VLB,VUB)重庆邮电大学重庆邮电大学-数学建模数学建模重庆邮电大学重庆邮电大学-数学建模数学建模第四节第四节图形处理图形处理重庆邮电大学重庆邮电大学-数学建模数学建模 基基 本本 绘绘 图图 函函 数数1 plot,plot3 建立向量或矩阵的图形2 Loglog x、y轴都取对数标度建立图形3 Semilogx x轴用于对数标度,y轴线性标度绘制图形4 Semilogy y轴

44、用于对数标度,x轴线性标度绘制图形5 Title 给图形加标题6 Xlabel,Ylabel 给x,y轴加标记7 Text 在图形指定的位置上加文本字符串8 gtext 在鼠标的位置上加文本字符串9 grid 打开网格线重庆邮电大学重庆邮电大学-数学建模数学建模 绘绘 图图 入入 门门1 plot的基本调用格式 2 对於变化剧烈的函数,可用fplot来进行较精确的绘图 3 对符号函数作图可用ezplot 重庆邮电大学重庆邮电大学-数学建模数学建模特 殊 二(三)维 绘 图 函 数1 bar(x,y)(barh(x,y),bar3,bar3h)直方(水平)图2 comet(x,y)(comet3

45、)建立彗星流动图3 errorbar(x,y,l,u)图形加上误差范围4 polar(theta,rho)极坐标图5hist(y,x)向量统计的直方图,其中y为要统计的。当x为标 量时,x指定了统计的区间数;当x为向量时,以该向量中 各元素为中心进行统计,区间数等于x向量的长度。6 rose(theta)极坐标频数累计柱状图重庆邮电大学重庆邮电大学-数学建模数学建模9 fill 实心图7 stairs(x,y)阶梯图8 stem(x,y,fill)针状图11 compass 罗盘图10 feather 羽毛图12 quiver,quiver3 向量场图,通常与contour(),gradien

46、t()配合使用.13 pie,pie3 饼图重庆邮电大学重庆邮电大学-数学建模数学建模绘绘 制制 三三 维维 曲曲 面面mesh(z)语句给出矩阵语句给出矩阵Z元素的三消隐图,元素的三消隐图,surf和和mesh的的用法相似。为了方便测试立体绘图,用法相似。为了方便测试立体绘图,MATLAB提供了一个提供了一个peaks函数,可产生一个凹凸有致的曲面,包函数,可产生一个凹凸有致的曲面,包 含了三个局部含了三个局部极大点及三个局部极小点,极大点及三个局部极小点,要画出此函数的最快方法即是要画出此函数的最快方法即是直接键入直接键入peaks.三维三维函数还有meshc(),meshz(),surf

47、c(),surfl(),contourf(),waterfall()等.重庆邮电大学重庆邮电大学-数学建模数学建模第五节第五节 解方程解方程重庆邮电大学重庆邮电大学-数学建模数学建模一 般 的 代 数 方 程 函数solve用于求解一般代数方程的根,假定S为符号表达式,命令solve(S)求解表达式等于0的根,也可以再输入一个参数指定未知数。例:syms a b c x S=a*x2+b*x+c;solve(S)ans=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2)b=solve(S,b)b=-(a*x2+c)/x重庆邮电大学重庆邮电大学-

48、数学建模数学建模线 性 方 程 组 线性方程组的求解问题可以表述为:给定两个矩阵A和B,求解满足方程AX=B或XA=B的矩阵X。方程AX=B的解用X=AB或X=inv(A)*B表示;方程XA=B的解用X=B/A或X=B*inv(A)表示。不过斜杠和反斜杠运算符计算更准确,占用内存更小,算得更快。线 性 微 分 方 程 函数dsolve用于线性常微分方程(组)的符号求解。在方程中用大写字母D表示一次微分,D2,D3分别表示二阶、三阶微分,符号D2y相当于y关于t的二阶导数。函数dsolve 的输出方式 格式 说明y=dsolve(Dyt=y0*y)一个方程,一个输出参数u,v=dsolve(Du

49、=v,Dv=u)两个方程,两个输出 参数S=dsolve(Df=g,Dg=h,Dh=-2*f)方程组的解以S.f S.g S.h 结构数组的形式输出例例 1 求 21 udtdu 的通解.解解 输入命令:dsolve(Du=1+u2,t)结 果:u=tg(t-c)例例 2 求微分方程的特解.15)0(,0)0(029422yyydxdydxyd 解解 输入命令:y=dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)结 果 为:y=3e-2xsin(5x)例例 3 求微分方程组的通解.zyxdtdzzyxdtdyzyxdtdx244354332解解 输入命令:x,

50、y,z=dsolve(Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z,t);x=simple(x)%将x化简 y=simple(y)z=simple(z)结 果 为:x=(c1-c2+c3+c2e-3t-c3e-3t)e2t y=-c1e-4t+c2e-4t+c2e-3t-c3e-3t+(c1-c2+c3)e2t z=(-c1e-4t+c2e-4t+c1-c2+c3)e2t 非 线 性 微 分 方 程 t,x=solver(f,ts,x0,options)ode45 ode23 ode113ode15sode23s由待解方程写成的m-文件名ts=t0,

51、tf,t0、tf为自变量的初值和终值函数的初值ode23:组合的2/3阶龙格-库塔-芬尔格算法ode45:运用组合的4/5阶龙格-库塔-芬尔格算法自变量值函数值用于设定误差限(缺省时设定相对误差10-3,绝对误差10-6),命令为:options=odeset(reltol,rt,abstol,at),rt,at:分别为设定的相对误差和绝对误差.1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成.2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.注意注意:例例 4 0)0(;2)0(0)1(1000222xxxdtdx

52、xdtxd解解:令 y1=x,y2=y1则微分方程变为一阶微分方程组:0)0(,2)0()1(1000211221221yyyyyyyy1、建立m-文件vdp1000.m如下:function dy=vdp1000(t,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=1000*(1-y(1)2)*y(2)-y(1);2、取t0=0,tf=3000,输入命令:T,Y=ode15s(vdp1000,0 3000,2 0);plot(T,Y(:,1),-)3、结果如图050010001500200025003000-2.5-2-1.5-1-0.500.511.52 例例 5 解微分

53、方程组.1)0(,1)0(,0)0(51.0321213312321yyyyyyyyyyyy解解 1、建立m-文件rigid.m如下:function dy=rigid(t,y)dy=zeros(3,1);dy(1)=y(2)*y(3);dy(2)=-y(1)*y(3);dy(3)=-0.51*y(1)*y(2);2、取t0=0,tf=12,输入命令:T,Y=ode45(rigid,0 12,0 1 1);plot(T,Y(:,1),-,T,Y(:,2),*,T,Y(:,3),+)3、结果如图024681012-1-0.8-0.6-0.4-0.200.20.40.60.81图中,y1的图形为实

54、线,y2的图形为“*”线,y3的图形为“+”线.第六节第六节回归分析回归分析一:一元线性与非线性回归分析 引例:钢材消费量与国民收入的关系 一元回归模型与回归分析 MATLAB软件实现 简介一元非线性回归模型 实验 为了研究钢材消费量与国民收入之间的关系,在统计年鉴上查得一组历史数据。引例:钢材消费量与国民收入的关系 年 份196419651966197819791980消费(吨)698872988144627362825收入(亿)109712841502294831553372 试分析预测若1981年到1985年我国国民收入以4.5%的速度递增,钢材消费量将达到什么样的水平?钢材消费量-试验

55、指标(因变量)Y;国民收入-自变量 x;建立数据拟合函数 y=E(Y|x)=f(x);作拟合曲线图形分析。问题分析:10001500200025003000350050010001500200025003000 钢材消费量y与国民收入x的散点图y=a+bx回归分析是研究变量间相关关系的一种统计分析。特点:试验指标(因变量)是随机变量。图形解释:y=E(Y|x)=f(x)假设:f(x)=ax+bxx0E(Y|x0)y0 x1E(Y|x1)假设:(y=E(Y|x)=f(x))1)Y是一个正态随机变量,即Y服从正态分 布,并且有方差 D(Y)=2。2)根据观测值作的散点图,观察出函数f(x)是线性形

56、式还是非线性形式。回归模型及回归分析1、一元线性回归模型、一元线性回归模型),0(;2NbxaY),(2bxaNY或需要解决的问题:1)在回归模型中如何估计参数a、b和2?知识介绍 2)模型的假设是否正确?需要检验。3)利用回归方程对试验指标y进行预测或控制?),(,0000dydyxbay区间估计估计量参数估计 设观测值为(xi,yi)(i=1,2,n),代入模型中,yi=a+bxi+i解出的参数记为ba,则回归方程:xbay21)(),(mininiibxaybaQ最小二乘法:残差值iiiiyyxbay回归模型的假设检验0:;0:10bHbH提出问题:1、相关系数检验DYDXYXr),co

57、v(niiniiniiiyyxxyyxxr12121)()()(|r|1|r|1,线性相关|r|0,非线性相关模型:Y=a+bx+H0的拒绝域为:)2(|0nrr()-11|0r(n-2)-r(n-2)2、F-检验法平方和分解公式:niiniiiniiyyyyyy121212)()()(UQLyy记为)2,1()2,1()2/(10nFFnFnQUF拒绝域实测值 估计值残差值,剩余平方和,越小越好认为线性回归效果好预测与控制给定的自变量x0,给出E(y0)的点估计量:00 xbayy0的置信度为(1)%的预测区间为:),(00nndydyxxnLxxnntd202)(11)2(22nQ 设y在

58、某个区间(y1,y2)取值时,应如何控制x的取值范围,这样的问题称为控制问题。小结:),0(;2NbxaY),(2bxaNY或 模型1、估计参数a,b,2;2、检验模型正确与否;(即b0)3、预测或控制;已知数据已知数据(x(xi i,y,yi i)(i)(i=1,2,=1,2,n),n),如何利用如何利用MATLABMATLAB软件实现以上的统计计算?软件实现以上的统计计算?MATLAB软件实现使用命令regress实现一元线性回归模型的计算 b=regress(Y,X)或 b,bint,r,rint,stats=regress(Y,X,alpha)nnyyxx11Y,11X回归系数a,b以

59、及它们的置信区间残差向量e=Y-Y及它们的置信区间相关系数R2,F-统计量和与0对应的概率p。残差及其置信区间可以用rcoplot(r,rint)画图。默认值是0.05引例求解引例求解输入:输入:(hg1.m)x=1097 1284 1502 1394 1303 1555 1917 2051 2111 2286 2311 2003 2435 2625 2948 3155 3372;y=698 872 988 807 738 1025 1316 1539 1561 1765 1762 1960 1902 2013 2446 2736 2825;X=ones(size(x),x,pause c,c

60、int,r,rint,stats=regress(y,X,0.05),pausercoplot(r,rint)输出:c=-460.5282(参数a)0.9840(参数b)cint=-691.8478 -229.2085 (a的置信区间)0.8779 1.0900 (b的置信区间)r=79.1248 69.1244 -29.3788-104.1112 -83.5709 -44.5286 -109.7219 -18.5724 -55.6100 -23.8029 -51.4019 449.6576 -33.4128 -109.3651 5.8160 92.1364 -32.3827(残差向量)rin

61、t=(略)(参见残差分析图)stats=0.9631(R2)391.2713(F)0.0000(P0)xbay51015-400-2000200400600Residual Case Order PlotResidualsCase Number第第12个数据点个数据点异常,可删出异常,可删出预测x1(1)=3372;(hgy1.m)for i=1:5 x1(i+1)=1.045*x1(i);%未来五年国民收入以4.5%的 速度递增 y1(i+1)=-460.5282+0.9840*x1(i+1);%钢材的预 测值endx1,y1结果x1=3372.0 3523.7 3682.3 3848.0

62、4021.2 4202.1y1=3006.8 3162.9 3325.9 3496.3 3674.4 如果从数据的散点图上发现y与x没有直线关系,又如何计算?例如,试分析年龄与运动(旋转定向)能力年龄 17 19 21 23 25 27 29第1人第2人20.48 25.13 26.15 30.0 26.1 20.3 19.3524.35 28.11 26.3 31.4 26.92 25.7 21.3152025301820222426283032假设模型),0(;23221NaxaxaY 一元多项式回归在matlab 软件中用命令polyfit实现。如前面的例子,具体计算如下:输入:(phg

63、1.m)x1=17:2:29;x=x1,x1;y=20.48 25.13 26.15 30.0 26.1 20.3 19.35 24.35 28.11 26.3 31.4 26.92 25.7 21.3;p,S=polyfit(x,y,2);p 注意:x,y向量的维数要一致。向量的维数要一致。S是一个数据结构,是一个数据结构,用于其它函数的计算。用于其它函数的计算。计算y的拟合值:输入:Y,delta=polyconf(p,x,S);Y结果:Y=22.5243 26.0582 27.9896 28.3186 27.0450 24.1689 19.6904 22.5243 26.0582 27.

64、9896 28.3186 27.0450 24.1689 19.6904拟合效果图:152025301520253035用polytool(x,y,2)还可以得到一个交互式画面。ExportParametersParameters CIPredictionPrediction CIResidualsAll),0(;23221NaxaxaY在工作空间中,输入在工作空间中,输入yhat,回车,得到预测值。,回车,得到预测值。实验内容1、确定企业年设备能力与年劳动生产率的关系 某市电子工业公司有14个所属企业,各企业的年设备能力与年劳动生产率统计数据如下表。试分析企业年设备能力与年劳动生产率的关系。

65、若该公司计划新建一个设备能力为9.2千瓦/人的企业,估计劳动生产率将为多少?企业设备能力(千瓦/人劳动生产率企业设备能力劳动生产率12.86.784.89.822.86.994.910.633.07.2105.210.742.97.3115.411.153.48.4125.511.863.98.8136.212.174.09.1147.012.4 一矿脉有13个相邻样本点,人为地设定一个原点,现测得各样本点与原点的距离x,与该样本点处某种金属含量y的一组数据如下:2、测定某矿脉的金属含量xy 2 3 4 5 7 8 10106.42 109.2 109.58 109.5 110 109.93

66、110.49xy 11 14 15 15 18 19 110.59 110.6 110.9 110.76 111 111.2试建立合适的回归模型。(首先画散点图)二,多元线性与非线性回归分析 引例:某建材公司的销售量因素分析 多元线性回归模型 MATLAB软件实现 简介多元非线性回归模型 实验1)了解回归分析的基本原理;2)掌握MATLAB的实现方法;3)练习用回归分析方法解决实际问题;实验目的 某建材公司对某年20个地区的建材销售量Y(千方)、推销开支、实际帐目数、同类商品竞争数和地区销售潜力分别进行了统计。试分析推销开支、实际帐目数、同类商品竞争数和地区销售潜力对建材销售量的影响作用。试建立回归模型,且分析哪些是主要的影响因素。引例:某建筑材料公司的销售量因素分析 设:推销开支x1 实际帐目数x2 同类商品竞争数x3 地区销售潜力x4 12345678910111213141516171819205.52.58.03.03.02.98.09.04.06.55.55.06.05.03.58.06.04.07.57.03155675038713056427360445039557040

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!