数学建模电子教案课件

上传人:沈*** 文档编号:241428874 上传时间:2024-06-25 格式:PPT 页数:160 大小:1.87MB
返回 下载 相关 举报
数学建模电子教案课件_第1页
第1页 / 共160页
数学建模电子教案课件_第2页
第2页 / 共160页
数学建模电子教案课件_第3页
第3页 / 共160页
点击查看更多>>
资源描述
数学建模数学建模电子教案电子教案重庆邮电大学重庆邮电大学数理学院数理学院沈世云沈世云第一节第一节 MATLAB简介简介n什么是什么是 MATLAB?nMATLAB能干什么能干什么?n掌握掌握MATLABn应用实例应用实例重庆邮电大学重庆邮电大学-数学建模数学建模学习MATLABn什么是什么是 MATLAB?nMATLAB能干什么能干什么?n掌握掌握MATLABn应用实例应用实例重庆邮电大学重庆邮电大学-数学建模数学建模什么是MATLAB?1.MATLAB代表MATrixLABoratoryn它的首创者是美国新墨西哥大学计算机系的系主任它的首创者是美国新墨西哥大学计算机系的系主任Cleve Cleve MolerMoler博士,他在教授线性代数课程发现其他博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了语言很不方便,篇构思开发了MATLABMATLAB。最初采用最初采用FORTRANFORTRAN语言编写,语言编写,2020世纪世纪8080年代后出现了年代后出现了MATLABMATLAB的的第二版,全部采用第二版,全部采用C C语言编写语言编写.n19841984年年MolerMoler博士和一批数学家及软件专家创建了博士和一批数学家及软件专家创建了MathWorksMathWorks公司,专门开发公司,专门开发MATLABMATLAB。n19931993年出现了微机版,到年出现了微机版,到20032003年是年是6.56.5版版重庆邮电大学重庆邮电大学-数学建模数学建模2.一种演草纸式的科学计算语言3.MATLAB是一高性能的技术计算语言.n强大的数值计算和工程运算功能n符号计算功能n强大的科学数据可视化能力n多种工具箱重庆邮电大学重庆邮电大学-数学建模数学建模MATLAB能干什么?MATLAB可以进行:n数学计算、算法开发、数据采集n建模、仿真、原型n数据分析、开发和可视化n科学和工程图形应用程序的开发,包括图形用户界面的创建。MATLAB广泛应用于:n数值计算、图形处理、符号运算、数学建模、系统辨识、小波分析、实时控制、动态仿真等领域。重庆邮电大学重庆邮电大学-数学建模数学建模掌握MATLABMATLAB的构成:的构成:nMATLAB开发环境:进行应用研究开发的交互式平台开发环境:进行应用研究开发的交互式平台nMATLAB 数学与运算函数库:用于科学计算的函数数学与运算函数库:用于科学计算的函数nMATLAB 语言:进行应用开发的编程工具语言:进行应用开发的编程工具n图形化开发:二维、三维图形开发的工具图形化开发:二维、三维图形开发的工具n应用程序接口应用程序接口(API):用于与其他预言混编用于与其他预言混编n面向专门领域的工具箱:小波工具箱、神经网络工具面向专门领域的工具箱:小波工具箱、神经网络工具箱、信号处理工具箱、图像处理工具箱、模糊逻辑工箱、信号处理工具箱、图像处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。用的工具箱。重庆邮电大学重庆邮电大学-数学建模数学建模开发环境 包括:命令窗口、图形窗口、编辑窗口、包括:命令窗口、图形窗口、编辑窗口、帮助窗口。帮助窗口。重庆邮电大学重庆邮电大学-数学建模数学建模命令窗口n可在提示符后输入交互式命令可在提示符后输入交互式命令 n结果会自动的产生结果会自动的产生n例如:例如:MATLAB prompt()and cursor(|)command(typed at prompt)MATLAB output重庆邮电大学重庆邮电大学-数学建模数学建模图形窗口在窗口中输入:nPlot(1,2,4,9,16,1,2,3,4,5)nMATLAB划出如下图形:编辑窗口n用来创建和修改M-files(MATLAB脚本)帮助窗口重庆邮电大学重庆邮电大学-数学建模数学建模TheMATLABLanguageMATLAB 语言的特点语言的特点nMatlab的基本数据单元是不需指定维数的矩阵。的基本数据单元是不需指定维数的矩阵。nMatlab的的所所有有计计算算都都是是通通过过双双精精度度进进行行的的,在在内存中的数都是双精度的。内存中的数都是双精度的。ndouble 是一个双精度浮点数,每个存储的双是一个双精度浮点数,每个存储的双精度数用精度数用64位。位。nchar用于存储字符,每个存储的字符用用于存储字符,每个存储的字符用16位。位。重庆邮电大学重庆邮电大学-数学建模数学建模程序程序M文件与文件与m函数函数图形显示图形显示流程控制流程控制其它输出其它输出函数函数语句语句变量变量各种运算符各种运算符MATLAB的程序构成:的程序构成:重庆邮电大学重庆邮电大学-数学建模数学建模常变量及其命名规则常变量及其命名规则n变量名可以有数字、字母、下划线构成;变量名可以有数字、字母、下划线构成;n变量的首字符必须是字母;变量的首字符必须是字母;n区分变量名的大小写区分变量名的大小写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的单位矩阵。例如: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 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)结果为: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.9007 -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的秩。例如: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为对角化的上三角矩阵。例如: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 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重庆邮电大学重庆邮电大学-数学建模数学建模如果要对两个以上的多项式进行相乘,以重复使用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 -14)、polyval(p,x)计算多项式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 3365)、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都没有重根,则可把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 -1p=-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)分别创建变量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=diff(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?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;?sym 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数学表达式命令格式nLimit(f),或limit(f,x)n Limit(f,x,a),或limit(f,a)n Limit(f,x,a,left)nLimit(f,x,a,right)重庆邮电大学重庆邮电大学-数学建模数学建模5.化简:1)、collect(f)将表达式中相同次幂的项合并,也可以再输入一个参数指定以哪个变量的幂次合并。2)、expand(f)将表达式展开。3)、horner(f)将表达式转换为嵌套格式。4)、factor(f)将表达式分解因式,并且分解后的多项式的所有系数都为有理数。5)、simplify(f)利用函数规则对表达式进行化简。重庆邮电大学重庆邮电大学-数学建模数学建模重庆邮电大学重庆邮电大学-数学建模数学建模第二节第二节MATLAB的的程序设计程序设计 重庆邮电大学重庆邮电大学-数学建模数学建模1 脚本文件和函数文件脚本文件和函数文件11 M脚本文件脚本文件 对于一些比较简单的问题对于一些比较简单的问题,在指令窗中直接输入指令计算,在指令窗中直接输入指令计算。对于复杂计算,采用脚本文件(对于复杂计算,采用脚本文件(Script file)最为合适最为合适。MATLAB只是按文件所写的指令执行只是按文件所写的指令执行。M脚本文件的特点是:脚本文件的特点是:脚本文件的构成比较简单,只是一串按用户意图排列而成的脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)(包括控制流向指令在内的)MATLAB指令集合。指令集合。脚本文件运行后脚本文件运行后,所产生的所有变量都驻留在,所产生的所有变量都驻留在 MATLAB基基本工作空间本工作空间(Base workspace)中。)中。只要用户不使用清除指只要用户不使用清除指令(令(clear),),MATLAB指令窗不关闭,这些变量将一直保指令窗不关闭,这些变量将一直保存在存在基本工作空间基本工作空间中中。M文件有两种形式文件有两种形式:脚本文件(脚本文件(Script File)和函数文件和函数文件(Function File)。)。这两种文件的扩展名,均为这两种文件的扩展名,均为“.m”。重庆邮电大学重庆邮电大学-数学建模数学建模1 脚本文件和函数文件(续脚本文件和函数文件(续1)12 M函数文件函数文件 与脚本文件不同与脚本文件不同,函数文件犹如一个,函数文件犹如一个“黑箱黑箱”,把一些数据,把一些数据送进并经加工处理,再把结果送出来。送进并经加工处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件定义的。提供的函数指令大部分都是由函数文件定义的。M函数文件的特点是:函数文件的特点是:从形式上看从形式上看,与脚本文件不同,与脚本文件不同,函数文件的笫一行总是以,函数文件的笫一行总是以“function”引导的引导的“函数申明行函数申明行”。从运行上看从运行上看,与脚本文件运行不同,与脚本文件运行不同,每当函数文件运行,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间,称为就会专门为它开辟一个临时工作空间,称为函数函数工作空间工作空间(Function workspace)。当执行文件最后一条。当执行文件最后一条指令时指令时,就结束该函数文件的运行,同时该临时函数空间,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。及其所有的中间变量就立即被清除。MATLAB允许使用比允许使用比“标称数目标称数目”较少的输入输出宗量,较少的输入输出宗量,实现对函数的调用实现对函数的调用。重庆邮电大学重庆邮电大学-数学建模数学建模1 脚本文件和函数文件(续脚本文件和函数文件(续2)13 M文件的一般结构文件的一般结构 由于从结构上看由于从结构上看,脚本文件只是比函数文件少一个,脚本文件只是比函数文件少一个“函数申函数申明行明行”,所以只须描述清楚函数文件的结构,所以只须描述清楚函数文件的结构。典型典型 M函数文件的结构如下函数文件的结构如下:函数申明行:位于函数文件的首行,以关键字函数申明行:位于函数文件的首行,以关键字 functio 开头,开头,函数名以及函数的输入输出宗量都在这一行被定义。函数名以及函数的输入输出宗量都在这一行被定义。笫一注释行:紧随函数申明行之后以笫一注释行:紧随函数申明行之后以%开头笫一注释行。该开头笫一注释行。该行供行供lookfor关键词查询和关键词查询和 help在线帮助使用在线帮助使用。在线帮助文本区在线帮助文本区:笫一注释行及其之后的连续以:笫一注释行及其之后的连续以%开头的所开头的所有注释行构成整个在线帮助文本。有注释行构成整个在线帮助文本。编写和修改记录:与在线帮助文本区相隔一个编写和修改记录:与在线帮助文本区相隔一个“空空”行,也行,也以以%开头,标志编写及修改该开头,标志编写及修改该M文件的作者和日期等文件的作者和日期等。函数体:为清晰起见,它与前面的注释以函数体:为清晰起见,它与前面的注释以“空空”行相隔。行相隔。重庆邮电大学重庆邮电大学-数学建模数学建模2 函数调用和参数传递函数调用和参数传递21 局部变量和全局变量局部变量和全局变量 局部(局部(Local)变量:它存在于函数空间内部的中间变量,变量:它存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本产生于该函数的运行过程中,其影响范围也仅限于该函数本身身。全局(全局(Global)变量:通过变量:通过 global 指令,指令,MATLAB也允许几也允许几个不同的函数空间以及基本工作空间共享同一个变量,这种被个不同的函数空间以及基本工作空间共享同一个变量,这种被共享的变量称为全局变量。共享的变量称为全局变量。22 函数调用函数调用 在在MATLAB中,调用函数的常用形式是:中,调用函数的常用形式是:输出参数输出参数1,输出参数输出参数2,=函数名函数名(输入参数输入参数1,输入参数输入参数2,)函数调用可以嵌套,一个函数可以调用别的函数,甚至调函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己用它自己(递归调用)。(递归调用)。重庆邮电大学重庆邮电大学-数学建模数学建模2 函数调用和参数传递(续)函数调用和参数传递(续)23 参数传递参数传递 MATLAB在函数调用上有一个与众不同之处在函数调用上有一个与众不同之处:函数所传递的:函数所传递的参数具有可调性参数具有可调性。传递参数数目的可调性来源于如下两个传递参数数目的可调性来源于如下两个MATLAB永久变量:永久变量:函数体内的函数体内的 nargin 给出调用该函数时的输入参数数目。给出调用该函数时的输入参数数目。函数体内的函数体内的 nargout 给出调用该函数时的输出参数数目。给出调用该函数时的输出参数数目。只要在函数文件中包括这两个变量,就可以知道该函数文件只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。调用时的输入参数和输出参数数目。值得注意:值得注意:nargin、nargout 本身都是函数本身都是函数,不是变量,所不是变量,所以用户不能赋值,也不能显示。以用户不能赋值,也不能显示。“变长度变长度”输入输出宗量:输入输出宗量:varargin、varrgout。具有接受具有接受“任意多输入任意多输入”、返回、返回“任意多输出任意多输出”的能力的能力。跨空间变量传递:跨空间变量传递:evalin。(参考(参考:circle.m,am1.m)重庆邮电大学重庆邮电大学-数学建模数学建模23 MATLAB的程序结构和控制流的程序结构和控制流231 程序结构程序结构 循环结构:循环结构:MATLAB提供两种循环方式。提供两种循环方式。顺序结构顺序结构 分支结构:分支结构:ifelseend。forend 循环和循环和while-end循环。循环。232 程序流控制程序流控制 常用指令:常用指令:return,echo,input,pause,keyboard,break。switch-case 结构。结构。try-catch 结构。结构。警示指令:警示指令:error,warning。重庆邮电大学重庆邮电大学-数学建模数学建模23 MATLAB的程序结构和控制流(续)的程序结构和控制流(续)233 图形用户界面(图形用户界面(GUI)编程编程 现代的主流应用程序已经从命令行的交互方式转变为以图现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。和控制的方便与灵活性。(面向对象编程)(面向对象编程)MATLAB能够以比较简单的方式实现一系列的图形界面功能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和能。通过对控件、菜单属性的设置和 Callback 的编写,就能的编写,就能够满足大多数用户的需求。够满足大多数用户的需求。控件的控件的 Callback 属性属性:Callback 属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句语句。当用户激活控件当用户激活控件对象(对象(例例如如:在控件对象图标上单击鼠标左键:在控件对象图标上单击鼠标左键)时,应用程)时,应用程序就运行序就运行 Callback 属性定义的子程序。属性定义的子程序。菜单的菜单的 Callback 属性属性:Callback 属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句语句。当用户激活菜单当用户激活菜单对象时,若没有子菜单就运行对象时,若没有子菜单就运行 Callback 属性定义的子程序。属性定义的子程序。若有,先运行若有,先运行 Callback 属性定义的子程序,再显示子菜单。属性定义的子程序,再显示子菜单。重庆邮电大学重庆邮电大学-数学建模数学建模24 M文件的调试文件的调试 编写编写 M文件时,错误(文件时,错误(Bug)在所难免。错误有两种:语法在所难免。错误有两种:语法(Syntax)错误和运行(错误和运行(Run-time)错误。错误。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在运行时发现,终止执行,并给出相应对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。的错误原因以及所在行号。运行错误是算法本身引起的,发生在运行过程中。相对语法运行错误是算法本身引起的,发生在运行过程中。相对语法错误而言,运行错误较难处理错误而言,运行错误较难处理。尤其是。尤其是M函数文件,它一旦运函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。行停止,其中间变量被删除一空,错误很难查找。有两种调试方法:直接调试法和工具调试法。有两种调试方法:直接调试法和工具调试法。重庆邮电大学重庆邮电大学-数学建模数学建模24 M文件的调试(续文件的调试(续1)直接调试法:可以用下面方法发现某些运行错误。直接调试法:可以用下面方法发现某些运行错误。在在M文件中,将某些语句后面的分号去掉,文件中,将某些语句后面的分号去掉,迫使迫使M文件输文件输出一些中间计算结果,以便发现可能的错误。出一些中间计算结果,以便发现可能的错误。在适当的位置,添加显示某些关键变量值的语句(包括使在适当的位置,添加显示某些关键变量值的语句(包括使用用 disp 在内)。在内)。利用利用 echo 指令,使运行时在屏幕上逐行显示文件内容。指令,使运行时在屏幕上逐行显示文件内容。echo on 能显示能显示M脚本文件;脚本文件;echo FunNsme on 能显示名为能显示名为FunNsme 的的M函数文件。函数文件。在原在原M脚本或函数文件的适当位置,增添指令脚本或函数文件的适当位置,增添指令 keyboard。keyboard 语句可以设置程序的断点语句可以设置程序的断点。通过将原通过将原M函数文件的函数申明行注释掉,可使一个中间函数文件的函数申明行注释掉,可使一个中间变量难于观察的变量难于观察的M函数文件变为一个所有变量都保留在基函数文件变为一个所有变量都保留在基本工作空间中的本工作空间中的M脚本文件。脚本文件。重庆邮电大学重庆邮电大学-数学建模数学建模第三节第三节 优化问题解法优化问题解法重庆邮电大学重庆邮电大学-数学建模数学建模一、无约束优化问题重庆邮电大学重庆邮电大学-数学建模数学建模二、线性规划问题重庆邮电大学重庆邮电大学-数学建模数学建模三、非线性规划问题重庆邮电大学重庆邮电大学-数学建模数学建模重庆邮电大学重庆邮电大学-数学建模数学建模重庆邮电大学重庆邮电大学-数学建模数学建模重庆邮电大学重庆邮电大学-数学建模数学建模第四节第四节图形处理图形处理重庆邮电大学重庆邮电大学-数学建模数学建模 基基 本本 绘绘 图图 函函 数数1plot,plot3建立向量或矩阵的图形2Loglogx、y轴都取对数标度建立图形3Semilogxx轴用于对数标度,y轴线性标度绘制图形4Semilogyy轴用于对数标度,x轴线性标度绘制图形5Title给图形加标题6Xlabel,Ylabel给x,y轴加标记7Text在图形指定的位置上加文本字符串8gtext在鼠标的位置上加文本字符串9grid打开网格线重庆邮电大学重庆邮电大学-数学建模数学建模 绘绘 图图 入入 门门1plot的基本调用格式2对於变化剧烈的函数,可用fplot来进行较精确的绘图3对符号函数作图可用ezplot重庆邮电大学重庆邮电大学-数学建模数学建模特殊二(三)维绘图函数1bar(x,y)(barh(x,y),bar3,bar3h)直方(水平)图2comet(x,y)(comet3)建立彗星流动图3errorbar(x,y,l,u)图形加上误差范围4polar(theta,rho)极坐标图5hist(y,x)向量统计的直方图,其中y为要统计的。当x为标6量时,x指定了统计的区间数;当x为向量时,以该向量中7各元素为中心进行统计,区间数等于x向量的长度。6rose(theta)极坐标频数累计柱状图重庆邮电大学重庆邮电大学-数学建模数学建模9fill实心图7stairs(x,y)阶梯图8stem(x,y,fill)针状图11compass罗盘图10feather羽毛图12quiver,quiver3向量场图,通常与contour(),gradient()13配合使用.13pie,pie3饼图重庆邮电大学重庆邮电大学-数学建模数学建模绘绘 制制 三三 维维 曲曲 面面mesh(z)语句给出矩阵语句给出矩阵Z元素的三消隐图,元素的三消隐图,surf和和mesh的的用法相似。为了方便测试立体绘图,用法相似。为了方便测试立体绘图,MATLAB提供了一个提供了一个peaks函数,可产生一个凹凸有致的曲面,包函数,可产生一个凹凸有致的曲面,包 含了三个局部含了三个局部极大点及三个局部极小点,极大点及三个局部极小点,要画出此函数的最快方法即是直要画出此函数的最快方法即是直接键入接键入peaks.三维三维函数还有meshc(),meshz(),surfc(),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重庆邮电大学重庆邮电大学-数学建模数学建模线 性 方 程 组 线性方程组的求解问题可以表述为:给定两个矩阵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=v,Dv=u)两个方程,两个输出 参数S=dsolve(Df=g,Dg=h,Dh=-2*f)方程组的解以S.f S.g S.h 结构数组的形式输出结果:u=tg(t-c)解解输入命令:y=dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)结果为:y=3e-2xsin(5x)解解输入命令:x,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)e2ty=-c1e-4t+c2e-4t+c2e-3t-c3e-3t+(c1-c2+c3)e2tz=(-c1e-4t+c2e-4t+c1-c2+c3)e2t 非 线 性 微 分 方 程 t,x=solver(f,ts,x0,options)ode45ode23ode113ode15sode23s由待解方程写成的m-文件名ts=t0,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软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.注意注意:解解:令 y1=x,y2=y11、建立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,03000,20);plot(T,Y(:,1),-)3、结果如图解解 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、结果如图图中,y1的图形为实线,y2的图形为“*”线,y3的图形为“+”线.第六节第六节回归分析回归分析一:一元线性与非线性回归分析引例:钢材消费量与国民收入的关系一元回归模型与回归分析MATLAB软件实现简介一元非线性回归模型 实验为了研究钢材消费量与国民收入之间的关系,在统计年鉴上查得一组历史数据。引例:钢材消费量与国民收入的关系 年份196419651966197819791980消费(吨)698872988144627362825收入(亿)109712841502294831553372试分析预测若1981年到1985年我国国民收入以4.5%的速度递增,钢材消费量将达到什么样的水平?钢材消费量-试验指标(因变量)Y;国民收入-自变量x;建立数据拟合函数y=E(Y|x)=f(x);作拟合曲线图形分析。问题分析:钢材消费量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)是线性形式还是非线性形式。回归模型及回归分析1、一元线性回归模型、一元线性回归模型或需要解决的问题:1)在回归模型中如何估计参数a、b和2?知识介绍 2)模型的假设是否正确?需要检验。3)利用回归方程对试验指标y进行预测或控制?参数估计设观测值为(xi,yi)(i=1,2,n),代入模型中,yi=a+bxi+i解出的参数记为则回归方程:最小二乘法:回归模型的假设检验提出问题:1、相关系数检验|r|1|r|1,线性相关|r|0,非线性相关模型:Y=a+bx+H0的拒绝域为:()-11|0r(n-2)-r(n-2)2、F-检验法平方和分解公式:记为实测值 估计值残差值,剩余平方和,越小越好认为线性回归效果好预测与控制给定的自变量x0,给出E(y0)的点估计量:y0的置信度为(1)%的预测区间为:设y在某个区间(y1,y2)取值时,应如何控制x的取值范围,这样的问题称为控制问题。小结:或模型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)回归系数a,b以及它们的置信区间残差向量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,cint,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.87791.0900(b的置信区间)r=79.124869.1244-29.3788-104.1112-83.5709-44.5286-109.7219-18.5724-55.6100-23.8029-51.4019449.6576-33.4128-109.36515.816092.1364-32.3827(残差向量)rint=(略)(参见残差分析图)stats=0.9631(R2)391.2713(F)0.0000(P0)第第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.03523.73682.33848.04021.24202.1y1=3006.83162.93325.93496.33674.4如果从数据的散点图上发现y与x没有直线关系,又如何计算?例如,试分析年龄与运动(旋转定向)能力年龄17192123252729第1人第2人20.4825.1326.1530.026.120.319.3524.3528.1126.331.426.9225.721.3假设模型 一元多项式回归在matlab 软件中用命令polyfit实现。如前面的例子,具体计算如下:输入:(phg1.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.9896 28.3186 27.0450 24.1689 19.6904拟合效果图:用polytool(x,y,2)还可以得到一个交互式画面。ExportParametersParametersCIPredictionPredictionCIResidualsAll在在工作空间中,输入工作空间中,输入yhat,回车,得到预测值。回车,得到预测值。实验内容1、确定企业年设备能力与年劳动生产率的关系某市电子工业公司有14个所属企业,各企业的年设备能力与年劳动生产率统计数据如下表。试分析企业年设备能力与年劳动生产率的关系。若该公司计划新建一个设备能力为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、测定某矿脉的金属含量xy23457810106.42109.2109.58109.5110109.93110.49xy111415151819110.59110.6110.9110.76111111.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.031556750387130564273604450395570405062591081278121258511126101061111998691615178104167126441468131179.3200.1163.2200.1146.0177.730.9291.9160.0339.4159.686.3237.5107.2155.0201.4100.2135.8223.3195.0 x1x2x3x4y1111.11111X=寻找关系:y=E(Y|x1,x2,x3,x4)=f(x1,x2,x3,x4)模型:假设:1、因变量Y是随机变量,并且它服从正态分布;2、f(x1,x2,x3,x4)是线性函数(非线性);2、多元线性回归模型模型要解决的问题可归纳为以下几个方面:1)在回归模型中如何估计参数i(i=0,1,m)和2?2)模型的假设(线性)是否正确?3)判断每个自变量xi(i=1,m)对Y的影响是否显著?4)利用回归方程对试验指标Y进行预测或控制?知识介绍参数估计 假 设 有 n个 独 立 观 测 数 据(xi1,xi2,xim,yi),i=1,2,n,要确定回归系数由最小二乘法求解结果y的估计值:拟合误差e=yy称为残差,残差平方和统计分析1、是的线性最小方差无偏估计2、3、残差平方和Q,由此得2的无偏估计4、对Y的样本方差S2进行分解回归模型的假设检验构造F-统计量及检验H0的拒绝域:注意:注意:衡量y与x1,x2,xm相关程度的指标可以定义复相关系数R,R的值越接近于1,它们的相关程度越密切。回归系数的检验主要判断每个自变量xi对y的影响是否显著。由此可得MATLAB软件实现b=regress(Y,X)或 b,bint,r,rint,stats=regress(Y,X,alpha)1、使用命令regress实现多元线性回归回归系数0,1,m以及它们的置信区间残差向量e=Y-Y及它们的置信区间相关系数R2,F-统计量和与F对应的概率p。引例求解:输入:(jzhui.m)x1=5.5 2.5 8 3 8 6 4 7.5 7;(20维)维)x2=31 55 67 55 70 40 50 62 59;x3=10 8 12 11 11 9 9;x4=8 6 9 16 8 13 11;y=79.3 200.1 135.8 223.3 195;X=ones(size(x1),x1,x2,x3,x4;b,bint,r,rint,stats=regress(y,X)计算结果:(输出)b=191.9158 -0.7719 3.1725 -19.6811 -0.4501 0 1 2 3 4bint=103.1071 280.7245(系数的置信区间)系数的置信区间)r=-6.3045 -4.2215 8.4422 23.4625 3.3938rint=(略)略)stats=0.9034(R2)35.0509(F)0.0000(p)Q=r*r2=Q/(n-2)=537.2092(近似)近似)残差向量分析图如何分析四个因素x1,x2,x3,x4对试验指标Y的作用大小?使用逐步回归方法。在MATLAB软件中使用以下命令:stepwise(X,y,inmodel,alfha)如上例,输入:如上例,输入:X=x1,x2,x3,x4;stepwise(X,y,1,2,3)模型中均方差历模型中均方差历史数据记载表史数据记载表参参变量数变量数据分析表据分析表经过观察,得到各种情况下的均方差对比:变量组合x1,x2x1,x3x1,x4x2,x3x2,x4x3,x4RMSE5351.96 61.77 23.96 52.96 44.75变量组合x1,x2x3x1,x2x4x1,x3x4x2,x3x4x1,x2x3,x4RMSE 24.65 54.43 45.86 24.64 25.39最佳回归方程范例:某化学反应问题这是一个非线性回归模型的实例这是一个非线性回归模型的实例 1、问题、问题为为了了研研究究三三种种化化学学元元素素:氢氢、n 戊戊烷烷和和异异构构戊戊烷烷与与生生成成物物的的反反应应速速度度Y(%)之之间间的的关关系系,经经试试验验测测定定得得到到某某些些数数据据。试试建建立立非非线线性性回回归归模模型型,并并进进行行统计分析。统计分析。2、假设及建模、假设及建模 在各因素与指标在各因素与指标(因变量因变量)之间的信息之间的信息“一无所知一无所知”的情况下,假设模型的情况下,假设模型Y=f(x1,x2,x3)+中的函数中的函数f 是多项式形式,即是多项式形式,即 y=b 0+b 1 x 1+b2x 2+b 3 x 3+(linearterms)b12 x 1x 2+b 13x 1 x3+b23
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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