1、1,大学计算机基础,北航计算机学院,教学课件,2,第11章 数学建模与MATLAB,4.1 数学建模,4.2 MATLAB应用,3,本章重点,什么是数学建模?其目的是什么?有哪些步骤? MATLAB有哪些特点和功能? MATLAB中如何绘制图形?如何进行科学计算?,4,11.1 数学建模,11.1.1 数学模型 11.1.2 数学建模的步骤,5,11.1.1 数学模型,6,数学模型(续),一个典型的数学模型: 牛顿第二定律 F=ma= mdx2/dt2 广义理解的数学模型: 以相应的客观原型作为背景加以一级抽象或多级抽象的数学概念、数学式子、数学理论等等都叫做数学模型。 狭义理解的数学模型:
2、反映特定问题或特定事物系统的数学符号系统叫做数学模型。,7,数学模型(续),数学模型的特征 实践性、应用性、综合性 数学模型的作用: 将客观原型化繁为简、化难为易,便于人们采用定量的方法去分析和解决实际问题。 在科学发展、科学预测、驾控市场经济乃至个人高效工作和生活等众多方面发挥着重要作用。,8,数学建模(Mathematical Modelling),数学建模 把现实世界中的实际问题加以提炼,抽象为数学模型,求出模型的解,验证模型的合理性,并用该数学模型所提供的解答来解释现实问题。数学知识的这一应用过程称为数学建模。,9,数学建模解决实际问题的例子,十字路口的交通问题: 方案一: 将几种不同
3、的交通控制的设计方案交给交通队进行实地试验,进行观测,最后找出最优的方案。 方案二: 一种办法是由研究人员调查路口的车流规律,收集有关的数据资料。使用数学和统计学的手段提炼出这些量之间的关系并且进行分析和比较,就可以找到最优的控制管理方案。交通管理的数学模型。,10,11.1.2 数学建模的步骤,建模准备,了解问题的实际背景,明确其实际意义,掌握对象的各种信息。用数学语言来描述问题。,根据实际对象的特征和建模的目的,对问题进行必要的简化,并用精确的语言提出一些恰当的假设。,在假设的基础上,利用适当的数学工具来刻划各变量之间的数学关系,建立相应的数学结构。,利用获取的数据资料,对模型的所有参数做
4、出计算。,对所得的结果进行数学上的分析。,验证模型的准确性、合理性和适用性。,11,数学建模,什么是数学建模? 数学建模的目的是什么?有哪些步骤? 看一个实际问题: 超市产品的竞争,12,某商品降价销售,乙超市应该如何应对?,超市产品的竞争,影响乙超市销量的因素有很多,怎么办?,13,超市产品的竞争(续),假设 甲、乙超市此商品型号、规格、质量等均一致。 乙超市此商品销售量的降低是由于甲超市“降价销售”造成的(没有受到其它促销、换购、装修等活动影响)。,简化实际问题,14,超市产品的竞争(续),经调查得知乙超市此商品销售数据如下: 甲乙超市此商品价格一样时,乙超市平均日销售量是280件。 甲超
5、市售价高于乙超市2元、1元、0.5元时,乙超市平均日销售量分别是550件、408件、327件。 甲超市售价低于乙超市2元、1元、0.5元时,乙超市平均日销售量分别是33件、173件、236件。,15,超市产品的竞争(续),服从线性分布,使用曲线拟合,16,超市产品的竞争(续),17,如何计算乙超市此商品利润? 利润=日销量(件)*每件商品的利润(元/件) 日销量:y 每件商品的利润 :xb-x0 其中xb为乙超市售价, x0为商品成本价 差价x: xb-xa 其中xa为甲超市售价 利润= y(xb-x0 ),超市产品的竞争(续),y= 287-125x,18,利润= y (xb-x0 )=(2
6、87-125x) (xb-x0 )= 287-125 (xb-xa ) (xb-x0 ),超市产品的竞争(续),y= 287-125x,19,超市产品的竞争(续),利润=-125 xb2 +(125x0+ 125xa+287) xb -287x0-125xa x0 若商品成本价x0 =16, 甲超市售价xa =25,则乙超市应如何定价? 可以计算得出乙超市此商品定价为21.648时可获得最大利润。 计算的结果是否正确?如果遇到难以计算的数学式子怎么办? 利用MATLAB中提供的绘图、求极值等功能进行计算和验证。,20,超市产品的竞争(续),21,若上例中甲超市又降价至20,则乙超市应如何定价?
7、价格竞争的结果是什么? 数学建模有哪些步骤? 建立数学模型有哪些方法?,思考,22,例2:护卫舰与航空母舰的汇合问题 某航空母舰派其护卫舰去搜寻其跳伞的飞行员,护卫舰找到飞行员后,航母通知它尽快返回与其汇合并通报了航母当前的航速与方向。确定护卫舰航行角度,使其能尽快与航母汇合。,护卫舰与航空母舰的汇合,23,假设: 可以测定护卫舰与航空母舰之间的距离。 航空母舰沿直线航行。 护卫舰速度大于航空母舰速度。,护卫舰与航空母舰的汇合(续),24,护卫舰与航空母舰的汇合(续),25,已知航空母舰在A处沿与x轴夹角为1的方向以速度v1行驶,护卫舰以速率v2行驶,求护卫舰航行方向(与x轴夹角为2)及汇合地
8、点P(x,y)?,护卫舰与航空母舰的汇合(续),26,护卫舰与航空母舰的汇合(续),可化为:,由题意知:|BP| /v2 = |AP|/v1 即: |BP| =(v2/v1) |AP| 即: |BP|2 =(v2/v1) 2 |AP| 2 记v2/ v1=a 由假设知:a1 上式化为:|BP|2 =a2 |AP| 2 即:,27,护卫舰与航空母舰的汇合(续),令:,则上式可简记成 :,(航母的路线方程),(护卫舰的路线方程 ),28,11.2 MATLAB应用,11.2.1 MATLAB简介 11.2.2 MATLAB入门知识 11.2.3 二维图形的绘制 11.2.4 绘制三维图形 11.2
9、.5 科学计算 11.2.6 M文件,29,11.2.1 MATLAB简介,MATLAB概述,MATLAB特点,MATLAB界面,MATLAB功能简介,30,MATLAB的发展,MATLAB 发 展 史,1984年,MathWorks公司成立,MATLAB正式推向市场。,2000 年 10 月底推出了MATLAB 6.0 正式版。,2006年3月MATLAB R2006a (MATLAB 7.2,Simulink 6.4) 正式发布。,31,MATLAB 新变化,(1)更新了10个产品模块。,(2)增加了多 达350个新特性。,(3)增加了对64位Windows的支持。,(4)推出了.net工
10、具箱。,32,MATLAB概述,Matlab、Mathematica和Maple是当今流行的三大数学软件。,Matlab的优势是强大的矩阵计算以及仿真能力。,Matlab名字的由来: Matrix + Laboratory = Matlab。,33,MATLAB在航天航空、生物医学、物理学、通信、DSP、科学计算、网络控制、系统建模仿真技术、自动控制、图形图像处理、生命科学、财务、电子商务、数据分析等不同领域的广泛应用以及它自身所具备的独特优势,使其被教育界所关注。,MATLAB概述(续),34,MATLAB概述(续),在我国,清华大学、上海交通大学等高等学校以及中国科学院系统也分别将MATL
11、AB作为本科生和研究生的必修课或选修课。,美国等发达国家的一些著名高等院校已将MATLAB作为本科生和部分研究生的必修课。,35,MATLAB概述(续),?如何获取MATLAB资料及最新信息?,MATLAB书籍专柜,提供MATLAB学习、交流的网站,,36,MATLAB特点,编程简单,易学易懂。,同VC,VB,Fortran等比较,Matlab编写简单,所以编程效率高,易学易懂。 Matlab更加接近我们书写计算公式的思维方式,用编写程序犹如在演算纸上排列出公式与求解问题。,通俗地称为 “演算纸”,37,MATLAB特点(续),编程简单,易学易懂。,高版本的Matlab已逐步扩展到科学及工程计
12、算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。,38,MATLAB特点(续),编程简单,易学易懂。,实践证明,可在几个小时的时间内学会Matlab的基础知识,在短短几个小时的使用中就能初步掌握它。从而能够进行高效率和富有创造性的计算。,真正难于掌握的是各类专业知识,39,MATLAB特点(续),用户使用方便,Matlab把编辑、编译、链接和执行融为一体。能在同一画面上进行灵活操作、快速排除错误从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。,40,MATLAB特点(续),扩充能力强,Matlab丰富的库函数
13、。 方便地调用有关的Fortran,C语言的子程序。,41,MATLAB特点(续),语句简单,内涵丰富,Mat1ab语言中最基本最重要的成分是函数,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性)。,42,MATLAB特点(续),高效方便的矩阵和数组运算,规定了各种运算符,另外给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便。,43,MATLAB特点(续),方便的绘图功能,Matlab有一系列绘图函数(命令),只需调用不同的绘图函数(命令),在图上标
14、出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。,44,MATLAB特点(续),开放性,MATLAB具有各类工具箱,还可以自己生成工具箱。,其它语言通过MATLAB接口可以方便的使用其函数。,在Word中通过Notebook可以方便的使用MATLAB绘图等功能,45,MATLAB界面,命令窗口是MATLAB提供的编程环境,46,MATLAB功能简介,数学运算,例:求X412X30X2116=0的根,47,画出函数y=x3-x2-x+1的图形,求导、判断各区间曲线弧的情况、极值点、拐点,48,MATLAB功能简
15、介(续),绘制图形,高效、易学的图形功能是其它语言无法比拟的。,49,MATLAB 功能简介(续),自动控制系统仿真,例:观察正弦函数输出波形。,50,11.2.2 MATLAB入门知识,MATLAB运行环境与安装 MATLAB的工作方式 MATLAB常用命令 向量与矩阵的表示 MATLAB常用函数 MATLAB语言基础 课后习题,51,MATLAB运行环境与安装,MATLAB可以运行于多种操作系统之下, 如:Windows、OS/2、Unix、VMS等。,52,MATLAB的工作方式,例:计算5*9的值,交互式,多次输入重复语句怎么办?,53,当前目录,?如何更改当前目录,Matlab重新启
16、动后,必须重新设置当前目录,54,MATLAB常用命令,help 帮助命令 what 显示目录内容命令 who、whos 显示变量命令 save 保存结果命令 load 取出结果命令 clear 清除变量命令 size 计算变量大小命令,55,help 帮助命令举例,联想Dos下的help命令,56,what 显示目录内容命令举例,what 显示目录里的M-、MAT-、MEX-文件,57,who、whos 显示变量命令举例,who 显示当前变量 whos 更详细的显示当前变量,58,save 保存结果命令举例,save test save test a b,以mat文件格式保存,59,load
17、 取出结果命令,取出mat文件内数据,60,load 取出结果命令(续),load wxj2.dat,文本文件必须是m行n列,取出文本文件内数据,61,clear 清除变量命令,删除工作空间中的变量,62,size 计算变量大小命令,注意:MATLAB常用变量是矩阵,计算变量大小命令,63,向量与矩阵的表示,X=10 即1 1矩阵,MATLAB 是面向对象的语言,其基本数据结构就是矩阵。而且大多数函数都可以以矩阵为参数。,64,向量与矩阵的表示(续),X=1 2 3 4 5 即1 5矩阵 或向量1 2 3 4 5,向量或矩阵在一行放不下怎么办?,表达式在一行写不下怎么办?,65,向量与矩阵的表
18、示(续),66,向量与矩阵的表示(续),等间隔的向量也要逐个输入吗?,67,向量与矩阵的表示(续),;的作用,68,矩阵行、列的增、删、改,MATLAB中矩阵修改、增大、缩小极其方便。,例:改变一列,69,矩阵行、列的增、删、改(续),例:增加一列,增加一行,70,矩阵行、列的增、删、改(续),例:删除一列,删除一行,71,矩阵输入小结,1)输入矩阵必须以“ ”为首尾。 2)行与行之间的分隔用“; ”或回车键。 3)同行各元素的分隔用“,”或空格。,72,MATLAB常用函数,三角函数,指数、对数函数,复数函数,绘图函数,73,三角函数,74,指数、对数函数,75,复数函数,76,绘图函数,二
19、维绘图plot(X,Y),三维绘图plot3(X,Y,Z),77,MATLAB语言基础,变量与赋值语句 数据类型 基本运算符 各种运算,78,变量与赋值语句,首字符 + 其它字符,变量的命名规则:,合法的变量名:Student_Name、S12_00、aaa、bbb_X_Y 不合法的变量名:_asds、1first、a#qw、123,变量名区分大、小写,79,变量与赋值语句(续),变量的值由赋值语句决定:,B的长度是多少?,80,变量与赋值语句(续),MATLAB中矩阵的大小动态变化,使用极其方便。,81,工作区,特殊量 ans 用于结果的缺省变量名 pi 圆周率 inf 无穷大,如1/0 r
20、ealmin 最小可用正实数 realmax 最大可用正实数,打开MATLAB时,会自动建立一个工作区, 此时只提供几个特殊量,如pi(3.1415926)等。运行MATLAB的程序或命令时,产生的所有变量被加入到工作区。除非用特殊的命令删除某变量,否则该变量在关闭MATLAB之前一直保存在工作区。工作区在MATLAB运行期间一直存在,关闭MATLAB后,工作区自动消除。,82,数据类型,数据类型 :矩阵、对象与类等常用数据类型是矩阵,83,基本运算符,基本运算符,“+”:加 “-”:减 “*”:乘 “/”:右除 “”:乘方 “.*” :点乘 “./” :点除 “.” :点乘方,84,各种运算
21、,数学运算逻辑运算字符串矩阵行、列的增与删,85,数学运算,+ -,86,数学运算(续),*,2 3 5 6,*相当于,87,数学运算(续),*,A B必须满足A的列数等于B的行数。 若A是m行n列,B必须是n行k列。 令C= A B,则C是m行k列。,任意两个矩阵A、B都能相乘吗?,A B、 B D、 A D 这些运算成立吗?,88,数学运算(续),*,89,数学运算(续),.*,.*是对应元素相乘。,A.*B、A.*D、B.*D这些运算成立吗?,90,数学运算(续),.*,* 与.*有什么区别?,*是普通乘运算, .*是对应元素相乘,91,数学运算(续),/是普通除运算, ./是对应元素除
22、,是普通乘方运算, .是对应元素乘方,92,*逻辑运算,93,字符串,94,例题,在闭区间0, 2上生成间距为0.1 的一维数组,赋值给变量x,并计算下列各式:y1=2*sin(x)y2=2.*sin(x)z1=sin(x)*cos(x)z2=sin(x).*cos(x)w1=x2w2=x.2 最后比较y1、y2的结果、 z1、z2 的结果及w1、w2的结果,给出解释。,95,11.2.3 二维图形的绘制,二维曲线绘图指令:plot,对离散数据的默认处理方法:自动将离散的点用直线连接,使其成为连续的曲线。,96,plot的基本调用格式,常用格式plot(X,Y) X,Y是同维向量时,绘制以X,
23、Y元素为横、纵坐标的曲线。,例:绘制y=sin(x)及z=cos(x)图形,97,plot例子,例:绘制y=sin(x)及z=cos(x)图形,98,plot的基本调用格式,常用格式plot(X,Y) X 是向量, Y是矩阵(有一维与X同维)时,绘制多根不同颜色的曲线。,例:绘制y=sin(x)、y= 2sin(x)、 y= 3sin(x)图形,99,plot例子,例:绘制y=sin(x)、y= 2sin(x)、 y= 3sin(x)图形,100,plot的基本调用格式,常用格式plot(X,Y,s) 其中s是用来指定颜色、线型和数据点形的字符串 缺省线型为“实线” 同一图形上不同曲线的缺省颜
24、色依次为蓝、绿、红 、 青、紫、黄、黑,101,曲线的颜色、线型和数据点形,颜色: b(蓝) 、g(绿)、r(红) 、 c(青) 、 m(紫) 、 y(黄) 、 k(黑) 、 w(白),线型:-(实线) 、 :(虚线) 、 -.(点划线) 、 - -(双划线),数据点形:.(黑点) 、 +(加号) 、 *(星号) 、 o(空心圆圈) 、 d(菱形)、p (五角星) 、 h(六角星) 、 x(X号)、s(方块),102,颜色、线型和数据点形的组合,颜色+线型 plot(x,y, r-. ),颜色+数据点型 plot(x,y, rd),103,图形标注,图形名:title(s ) 横坐标名:xla
25、bel(s ) 纵坐标名:ylabel(s ) 在(x,y)处写注释:text(x,y,s ) 其中s为字符串,104,图形标注(续),105,从图形上获取数据,x,y=ginput(n) %用鼠标从二维图形上获取n个点的数据坐标(x,y) 该指令在数值优化、工程设计中十分有用。,例:获取函数y=e 0.3x cos(0.5x)的二个近似零点,106,从图形上获取数据(续),放大图形,重新获取,107,绘图的应用求根,求根函数的常见格式:fzero( s,x1),其中s为字符串表达式,x1为初始的猜测值,函数fzero所求根与初始的猜测值有关,函数fzero是根据是否穿越横轴来决定根,因此无法
26、确定函数仅触及横轴或不穿越的根,108,求根(例),例:计算cos(x)=0在区间0,3的根。,109,求根步骤1:作图,例:计算(sin2x)e-0.1x-0.5|x|=0在区间-10,10的根。,作图:,110,求根步骤2:获得初始近似值,例:计算(sin2x)e-0.1x-0.5|x|=0的根。,用鼠标获得近似值:,111,求根步骤3:求得精确值,例:计算(sin2x)e-0.1x-0.5|x|=0的根。,求得精确值:,112,求根步骤3:求得精确值(续),根据近似值 求得精确值:,?五个根都正确吗?,113,求根步骤3:求得精确值(续),114,gtext指令,gtext(s) %将字
27、符串(数组)放置到图形上。,例子,115,图例,建立图例:legend(s) 例: legend(y=sin(x),z=x) 删除图例:legend off,绘制图形,并改变图例位置。,116,绘制多条曲线,方法一:plot(x,y)其中x为向量,y为矩阵,plot命令打开一个称为图形窗口的窗口,将坐标轴缩扩以适应数据,绘制数据。如果已经存在一个图形窗口,则plot命令会清除当前图形窗口的图形,绘制新的图形。,方法二:plot(x1,y1,x2,y2)其中x1,y1,x2,y2均为向量,方法三:设置hold on,将新的plot命令产生的图形画在原来的图形上。hold off或关闭图形窗口将结
28、束这种状态。,117,绘制多条曲线(续),例:在区间0 , 2上绘制曲线y=sin(x)及y=cos(x),118,绘制椭圆,当a=0.5时绘制椭圆的图形。,119,利用参数方程绘制椭圆,120,多幅图形,subplot(m,n,p)可在窗口中,画出多幅不同坐标系中的图形该命令把窗口分为m *n个区域,在每个区域中分别画一个图。子图沿第一行从左至右编号,接着排第二行,依此类推。,例:画出四幅图形,分别显示下列图形: y=sin(x) %图名:图1 y=cos(x) %图名:图2 y=x %图名:图3 y=x2 %图名:图4,121,多幅图形(续),122,多个窗口,figure(p)指定在p号
29、窗口中画出图形。,例:使用2个窗口分别显示下列图形: y=sin(x) %图名:A y=x2 %图名:B,123,如何绘制极坐标表示的图形,使用polar函数 例:r=5(1+cost),124,11.2.4 绘制三维图形,三维绘图包括绘制三维线图、网格图、曲面图。网格图和曲面图的绘制比线图复杂一些,主要表现在:绘图数据的准备、三维图形的色彩、明暗、光照等。,125,三维线图指令,三维线图指令plot3(X,Y,Z) X,Y,Z是同维向量时,绘制以X,Y,Z元素为坐标的三维曲线。 三维线图指令plot3与plot指令的使用十分相似,如:颜色、线型和数据点形的设置,图形标注指令(增加zlabel
30、(s )),多条曲线的绘制等。,126,三维线图举例,例:绘制三维线图x=t,y=sin(10t),z=cos(10t)),例:绘制三维线图x=sin(t),y=cos(t),z=cos(2t),127,三维网格图与曲面图,三维网格图mesh(X,Y,Z)三维曲面图surf(X,Y,Z) 上述指令中, X,Y,Z均为相同维数的矩阵。,128,绘图数据的准备,绘制三维网格图、曲面图之前,要进行绘图数据的准备,步骤如下: 1. 确定自变量t,w的取值。 例:t=0:0.1*pi:2*pi; w=0:0.1*pi:4*pi 2. 构成XOY平面上的“格点”矩阵。 例:X,Y=meshgrid(t,w
31、) 3. 生成“格点”处函数值。例:Z=f(X,Y),129,绘图数据的准备(续),1. 确定自变量t,w的取值。 例:t=0:0.1*pi:2*pi; w=0:0.1*pi:4*pi,130,绘图数据的准备(续),2. 构成XOY平面上的“格点”矩阵。 例:X,Y=meshgrid(t,w),131,绘图数据的准备(续),3. 生成“格点”处函数值。例:Z=f(X,Y),例:绘制三维网格图、曲面图:z=sin(y)*cos(x),132,网格图与曲面图举例,例:绘制三维网格图、曲面图:z=sin(y)*cos(x),显示三维网格图,显示三维曲面图,插补明暗处理,133,surf与surfl,
32、指令surfl与surf的用法完全一样,区别是surf 只具有颜色效果,而surfl具有真实的光学效果,134,颜色控制colormap,指令colormap(t), t有如下取值:autumn、bone、colorcube、cool、copper、flag、gray、hot、hsv、jet、lines、pink、prism、spring、summer、winter、white等,135,peaks函数,peaks函数产生曲面,其格式:peaks(n),136,peaks函数例子,peaks函数产生曲面,其格式:peaks(n),137,绘制图形步骤,138,动态图形,例:设计简单运动图形,使
33、小球沿正弦曲线运动。,例:设计简单运动图形,使小球沿螺旋线 :x=sint, y=cost, z=t运动。,139,动态图形例子1,例:设计简单运动图形,使小球沿正弦曲线运动。,140,动态图形例子2,例:设计简单运动图形,使小球沿螺旋线 :x=sint, y=cost, z=t运动。,141,11.2.5 科学计算,常用科学计算功能 多项式的运算、拟合、插值 求解线性方程组、求函数零点、极值点 矩阵运算、数理统计 求积分、解常微分方程 Laplace变换及其反变换 信号处理中的计算:卷积、Fourier变换及其逆变换、数字滤波 系统分析中的计算:线形时不变对象LTI、LTI的阶跃响应、冲击响
34、应,142,多项式的运算、拟合、插值,常用函数 多项式相乘:conv 多项式相除:deconv 根据已知根构造多项式:poly 求多项式的根:roots 计算多项式的值:polyval、polyvalm 求拟合多项式:polyfit,143,求多项式的根,求解多项式方程的函数roots(p) (它能够给出全部根(包含重根) ,其中p是多项式的系数向量) 。 例:求解多项式方程 x2+5x+6=0,144,求多项式的根(续),145,多项式系数向量的输入,例:求解多项式方程 x4+10x3-20=0,?怎样输入系数向量,146,根据已知根构造多项式,根据已知的根构造多项式函数是poly(x) (
35、其中x是多项式方程的根) 。 例:求以X=-2 -3为根的多项式,147,根据已知根构造多项式例子,例:求以X=-2 -3为根的多项式方程,148,例:在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如下表,求此化合物的浓度y与时间t的拟合函数,并绘制拟合函数的图形。,多项式拟合的例子,149,拟合,在生产实践和科学实验中的数据(data), 根据一组二维数据,即平面上的若干点,要求确定一个一元函数yf(x),即曲线,使这些点与曲线总体来说尽量接近,这就是数据拟合成曲线的思想,简称为曲线拟合(fitting a curve)曲线拟合的目的是根据实验获得的数据去建立因变量与自变量
36、之间有效的经验函数关系,为进一步的深入研究提供线索,150,拟合函数,多项式函数拟合:p=polyfit(x,y,n) 其中n表示多项式的最高阶数,x,y为将要拟合的数据,它是用数组的方式输入。输出参数p为拟合多项式的系数。,151,拟合函数(续),拟合函数:y=-0.0445t2+1.0711t+4.3252,152,插值与拟合,在工程实践和科学实验中,常常需要从一组实验观测数据,揭示自变量x与因变量y之间的关系,一般可以用一个近似的函数关系式yf(x)来表示通常可以采用两种方法:插值和拟合,153,插值,插值在工程实践和科学实验中有着非常广泛而又十分重要的应用。,信息技术中的图像重建、图像
37、放大中为避免图像的扭曲失真的插值补点、建筑工程的外观设计。,化学工程实验数据与模型的分析、天文观测数据、地理信息数据的处理如(天气预报)以及社会经济现象的统计分析等等,154,插值的方法,绘制地图:根据已得到的一系列关于某地区地理边界的测量数据,绘制一条平面曲线(地图的边界线)。,155,插值的方法(续),每两点之间,采用已知类型的曲线段连接,并根据实际情况,加上衔接点处的光滑性要求例如样条曲线和三次样条插值,在边界上的测量点不是太多的情况下,绘制出来的地图边界效果可能不是很好如何改善? 增加测量点数。 改进插值方法。,156,一维插值,一维插值: yi =interp1( x,y, xi,
38、method ),其中x,y为原始数据(向量),yi为在被插值点xi处的插值结果;method表示采用的插值方法,常用的有如下几种:nearest是最邻近插值,linear线性插值;spline三次样条插值;cubic立方插值缺省为线性插值,X必须是单调的,并且xi不能够超过x的范围,157,一维插值举例,例:在一 天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,10,18,24,28,27,25,20,18,15,13,推测下午15点的温度,并绘制此天24小时的温度曲线,例:采用上例中4小时的环境温度数据( 12,9,18,28,25,18,13)插值计算上午2、6
39、、10时的温度(9,10,24)并比较linear线性插值与spline三次样条插值的精度。,158,*多维插值,多维插值: interpN( ),N=2,3,分别为二、三、维插值 二维插值例:zi=interp2(x,y,z,xi,yi, method ) 其中x,y,z为原始数据(向量),zi为在被插值点(xi,yi)处的插值结果;method表示采用的插值方法,常用类似一维插值,x和y必须是单调的网格,159,求解方程组,x1+3x2=5 解线性方程组5x1+6x2=9,1 3 5 A= b= AX=b5 6 9,X=Ab,160,求解方程组(续),两种格式: solve(eqn1,eq
40、n2,.,eqnn) solve(eqn1,eqn2,.,eqnn,var1,var2,.,varn) 其中eqni表示第i个方程,vari表示第i个变量,i=1,2,N,sin(xy) ex*y0 例:解方程组x2y2,161,求极值,一元函数求极小值,fminbnd( s,x1,x2),其中s为字符串表达式, (x1,x2)为极小值所在区间,162,一元函数求极值,例:求sin(x)在0到2之间的极小值点,163,一元函数求极值(续),如何求sin(x)在0到2之间的极大值?,164,积分,积分有不定积分、定积分、重积分等。,Matlab中的积分有数值积分和符号积分,同数值积分比较而言,符
41、号积分的优点是指令简单、适应性强,缺点是可能占用机器时间较长、有时结果表达式相当冗长。,165,数值积分,积分,quad( s,x1,x2),其中s为字符串表达式, x1为积分下限,x2为积分上限,166,积分,例:计算,例:计算重积分,167,符号积分,不定积分,int(s, v),其中s为字符串表达式, v为指定变量,168,积分举例,例:计算cos(x)dx 和 sin(x)dx,计算定积分,169,*重积分举例,计算三重积分,170,*矩阵运算,常用矩阵函数矩阵运算 特征值与特征向量,171,常用矩阵函数,函数zeros形成元素全为0的矩阵 函数eye形成单位矩阵,即对角元素为1,其它
42、元素为0 函数det(A)求得矩阵的行列式 A生成A的转置矩阵 tril生成下三角矩阵 triu生成上三角矩阵 函数inv(A)求得A的逆矩阵。,172,矩阵的运算,+ - * /,任意二个矩阵都能进行这些运算吗?,173,*特征值与特征向量,对n阶矩阵A, 如果数和n维非零向量x使Ax= x成立,则数称A的特征值,非零向量x称为A的特征向量。函数eig(A)求得A的特征值和特征向量。,174,*数理统计,数理统计学是应用概率论的基本理论,根据试验或观察得到的数据,对研究对象的客观规律性做出种种合理的估计和判断。,相关函数有:mean、 max、 min、 sum、 sort(排序)、std(
43、求标准差)、var(求方差)等,175,11.2.6 M文件,什么是M文件? 如何建立、编辑、使用M文件? M文件有哪些类型? 命令M文件、函数M文件 M文件中可以使用哪些语句? 赋值语句、条件语句、循环语句、跳出循环语句,要求掌握,176,M文件的建立与运行,177,M文件的类型,命令M文件:由一条或多条matlab语句组成。,函数M文件: 有输入、输出变量。 第一行定义函数名及输入、输出变量。,要求掌握,178,命令M文件,命令M文件没有输入参数,也不返回输出参数。 命令M文件中的命令可以访问MATLAB工作区中的所有变量,而且其中的所有变量也成为工作区的一部分。命令文件运行结束,命令文件
44、产生的变量保留在工作区,直至关闭MATLAB或用命令删除。,179,例:生成M文件绘制椭圆,180,函数M文件,函数M文件的文件名必须与其函数名相同。 函数M文件的第一行有特殊的要求,其形式必须为 function输出变量列表=函数名(输入变量列表) 函数体语句; 函数M文件不能访问工作区中的变量,它的所有变量均为局部变量。只有输入、输出变量才保留在工作区,例:生成M文件,根据给出a的值绘制椭圆。,181,MATLAB语句,MATLAB是一种开发工具,它有自己的语法。语句是组成MATLAB程序的基本单位。前面已经介绍了简单的赋值语句,下面将介绍几种其它语句:,条件语句循环语句跳出循环语句,18
45、2,条件语句,条件语句的作用 条件语句的常见格式 If end ifelseend 条件语句的嵌套 例:编写M文件求x、y的最大值,并将其赋值给mMax,183,循环语句,循环语句的作用 两种循环语句 forend whileend 二种循环语句比较 二种循环语句可以实现同样的功能吗? 何时用for循环? 何时用while循环? 如何结束循环? 循环语句执行完毕 跳出循环语句:break,184,绘制一组椭圆,当a=0.5,1.5,2.5,3.5,4.5时绘制椭圆的图形并比较形状的变化。,185,旋转的球体,186,MATLAB数学建模举例,护卫舰与航空母舰的汇合问题中,已知:b、v1、v2、 1 编制M文件求点P及2,并绘图显示护卫舰及航母的轨迹。,187,MATLAB数学建模举例(续),令:,则上式可简记成 :,(航母的路线方程),(护卫舰的路线方程 ),188,matlab数学建模举例(续),189,常用命令,axis equal 采用等长刻度坐标轴 box on 当前坐标成封闭模式(box off 开启) view(at,bt) 通过方位角at、俯视角设置视点bt,