《数学建模讲座(2009年6月4日 石.ppt》由会员分享,可在线阅读,更多相关《数学建模讲座(2009年6月4日 石.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB数学建模讲座(数学建模讲座(2009年年6月月4日日 石家庄)石家庄)MATLAB软件介绍软件介绍彭建平彭建平石家庄经济学院数理学院石家庄经济学院数理学院 Tel:0311-87207109Email:MATLAB数学软件数学软件MATLAB 使用简介使用简介命令行编辑入门命令行编辑入门Mat lab的变量及管理的变量及管理MATLAB 常用函数介绍常用函数介绍简单实例简单实例MATLAB数学软件数学软件 数学软件:指那些用于数学符数学软件:指那些用于数学符号运算、数值计算和绘制几何图形号运算、数值计算和绘制几何图形用的计算机软件包或软件平台。用的计算机软件包或软件平台。数学软件数
2、学软件MATLAB数学软件大体上分为三类:数学软件大体上分为三类:(1)以符号运算为主发展起来的软件。例如,以符号运算为主发展起来的软件。例如,Mathematica、Maple等。等。Mathematica软件开始软件开始时主要针对符号运算而创立的后来才加入数值计时主要针对符号运算而创立的后来才加入数值计算的软件使它更完整,更便于使用。算的软件使它更完整,更便于使用。(2)以数值计算为主发展起来的软件,如以数值计算为主发展起来的软件,如MATLAB有有“电子草稿纸电子草稿纸”的美誉。的美誉。(3)以几何作图为主的软件,如几何画板。数以几何作图为主的软件,如几何画板。数学软件有很多,这里仅提到
3、几种典型的软件。学软件有很多,这里仅提到几种典型的软件。MATLABMATLAB 使用简介使用简介是是一一种种解解释释式式语语言言.简简单单易易学学、代代码码短短小小高高效效、计计算算功功能能强强大大、图图形形绘绘制制和和处处理理容容易易、可可扩扩展展性强性强.矩阵的数值运算、数值分析、模拟矩阵的数值运算、数值分析、模拟数据可视化、数据可视化、2D/3D的绘图的绘图 可以与可以与FORTRAN、C/C+做数据链接做数据链接几百个核心内部函数几百个核心内部函数大量可选用的工具箱大量可选用的工具箱MATLAB是是Matrix Laboratory(矩阵实验室)(矩阵实验室)的缩写的缩写.MATLA
4、B 使用简介使用简介MATLAB鼠标双击鼠标双击Windows桌面上图标桌面上图标在在Windows“开始开始”菜单的菜单的“程序程序”选项中选择选项中选择“MATLAB”退出退出MATLAB命令窗口键入命令窗口键入“quit”或或“Ctrl+Q”鼠标选择菜单鼠标选择菜单 file Exit MATLABMATLAB 使用简介使用简介启动启动 MATLABMATLABMATLAB桌面桌面命令窗口命令窗口工作空间浏览工作空间浏览命令历史窗命令历史窗口口MATLAB命令窗口、编辑窗口、图形窗口命令窗口、编辑窗口、图形窗口MATLAB 使用简介使用简介MATLABMat lab的帮助系统的帮助系统(
5、1)帮助命令)帮助命令help;(2)帮助窗口。帮助窗口。进入帮助窗口的步骤如下进入帮助窗口的步骤如下 Launch Pad(分类帮助窗口)分类帮助窗口)选中选中“Help”打开打开MATLABMATLAB命令行编辑入门命令行编辑入门1、简单的运算、简单的运算步骤如下:步骤如下:(1)用键盘在命令窗口)用键盘在命令窗口输入输入以下以下内容内容:(12+2*(7-4)/(32)(2)按)按Enter键,该指令就被执行。键,该指令就被执行。(3)命令窗口)命令窗口显示显示所得所得结果结果:ans=2 MATLAB2、Mat lab表达式的输入表达式的输入Mat lab语句由表达式和变量组成,有两语
6、句由表达式和变量组成,有两种常见的形式:种常见的形式:(1)表达式)表达式;(;(2)变量)变量=表达式表达式(1)输入输入:(2)按)按 Enter 键。键。(3)显示显示:y=(12+2*(7-4)/(32)y=2MATLAB(1)输入输入:(2)按)按 Enter 键。键。(3)显示显示:x=3 y=x3-x(1/4)+2.15*sin(x)y=25.9873MATLAB3、指令的续行输入、指令的续行输入若一个表达式在一行写不下,可若一个表达式在一行写不下,可换行换行,但,但必须在行尾必须在行尾加加上上四个英文句号四个英文句号。(1)输入输入:(2)按)按 Enter 键。键。(3)显示
7、显示:s=1-1/2+1/3-1/4+1/5-1/6.+1/7-1/8s=0.6345MATLAB4、用、用键重新显示该语句,键重新显示该语句,输入输入:y1=2*sin(0.3*pi)/(1+sqrt(5)y1=0.5000MATLAB注意:注意:(1)当命令行有错误,)当命令行有错误,Mat lab会用红色会用红色字体提示;字体提示;(2)同一行中若有多个表达式,则必须用)同一行中若有多个表达式,则必须用分号或逗号隔开,若表达式后面是分号,分号或逗号隔开,若表达式后面是分号,将不显示结果。将不显示结果。(3)输入为:输入为:MATLABMat lab的变量及管理的变量及管理1、变量名的命名
8、规则、变量名的命名规则(1)以字母开头,后面可跟字母、数字和)以字母开头,后面可跟字母、数字和下短线;下短线;(2)大小写字母有区别;)大小写字母有区别;(3)不超过)不超过31个字符。个字符。Example:fun,Zheng12MATLAB2、Mat lab的预定义变量的预定义变量ans用于结果的缺省变量名用于结果的缺省变量名pi圆周率圆周率eps计算机的最小数计算机的最小数=inf无穷大无穷大NaN不定值不定值i 或或 j-1的开方的开方=realmin最小可用正实数最小可用正实数=realmax最大可用正实数最大可用正实数=MATLAB3、Mat lab的变量管理的变量管理(1)who
9、-查询查询Mat lab内存变量;内存变量;whos-查询全部变量详细情况查询全部变量详细情况。(2)clear-清除内存中的全部变量。清除内存中的全部变量。(3)save sa X -将将X 变量保存到变量保存到sa.mat文件。文件。(4)load sa X -调用调用sa.mat文件中变量文件中变量X。注意:注意:save只对数据和变量保存,不能保存命令只对数据和变量保存,不能保存命令。MATLABMat lab常用函数介绍常用函数介绍函数名函数名解释解释Mat lab函数命令函数命令幂函数幂函数xasqrt(x)=x(1/2)指数函数指数函数axexp(x)对数函数对数函数log(x)
10、log2(x)log10(x)MATLAB函数名函数名 解释解释Mat lab函数命令函数命令三三角角函函数数sin(x)cos(x)tan(x)cot(x)sec(x)csc(x)MATLAB函数名函数名解释解释Mat lab函数命令函数命令反反三三角角函函数数asin(x)acos(x)atan(x)acot(x)asec(x)acsc(x)绝对值绝对值函数函数abs(x)MATLAB n=0:1:63;S=sum(2.n)S=1.8447e+019例例2.计算计算sin x 在在 处的值处的值clear x=pi./8,6,4,3,y=sin(x)y=0.3827 0.5000 0.70
11、71 0.8660MATLAB 使用简介使用简介-例例1.计算级数计算级数:S=1+2+22+23+263=MATLAB例例3.衰减振荡曲线函数衰减振荡曲线函数: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);MATLAB 使用简介使用简介MATLABMatlab语言最基本的赋值语句结构为:语言最基本的赋值语句结构为:变量名列表变量名列表=表达式表达式注注1:整个赋值语句以;结束,则不在屏幕上返回结:整个赋值语句以;结束,则不在屏幕上返回结果,否则立即返回结果。果,否
12、则立即返回结果。注注2:多个语句可在同一行,用逗号分开。:多个语句可在同一行,用逗号分开。注注3:表达是太长可以用续行符号:表达是太长可以用续行符号语句 命令行基础命令行基础命令行编辑入门命令行编辑入门-MATLAB命令行编辑入门命令行编辑入门-简单运算简单运算例例1.求求12+2(7-4)32(12+2*(7-4)/32ans=2 MATLAB表达式输入表达式输入常见两种形式常见两种形式:表达式;变量表达式表达式;变量表达式例例2.建立变量建立变量y使其值为使其值为3,并计算并计算时时x的的值值.MATLAB命令行编辑入门命令行编辑入门-y=3;x=y3-sqrt(y)x=25.2679 指
13、令的续行输入指令的续行输入若一个表达式在一行写不下若一个表达式在一行写不下,可换行可换行,但必须但必须在行尾加上四个英文句点在行尾加上四个英文句点.例例3.求求的值的值.S=1-1/2+1/3-1/4+1/5-1/6.+1/7-1/8MATLAB命令行编辑入门命令行编辑入门-S=0.6345 利用控制键回调以前的指令利用控制键回调以前的指令,进行新的计算或输入进行新的计算或输入具体办法是具体办法是:先用键先用键调出已输入过的指令调出已输入过的指令;然后移动然后移动光标光标,进行修改即可进行修改即可.MATLAB变量及管理变量及管理 变量名的命名规则变量名的命名规则 以字母开头以字母开头,后面可
14、跟字母、数字和下短线后面可跟字母、数字和下短线;大小写字母有区别大小写字母有区别;不超过不超过31个字符个字符.例如例如cel2_3,f,F和和Dui31是四个合法的变量是四个合法的变量.MATLAB命令行编辑入门命令行编辑入门-MATLAB预定义变量预定义变量ans 用于结果的缺省变量名用于结果的缺省变量名pi 圆周率圆周率 eps 计算机的最小数计算机的最小数inf 无穷大无穷大NaN 不定量(不定量(Not a Number)i或或j i=j=-1的开方的开方realmin 最小可用正实数最小可用正实数realmax 最大可用正实数最大可用正实数MATLAB命令行编辑入门命令行编辑入门-
15、MATLAB的变量管理的变量管理用用who检查检查MATLAB内存变量内存变量鍵入鍵入whos,获得驻留变量的详细情况获得驻留变量的详细情况:全部变量名全部变量名,变变量的数组维数量的数组维数,占用字节数占用字节数,变量的类别变量的类别(如双精度如双精度),),是否复数等是否复数等.变量的存取变量的存取save sa X Y Z%选择内存中的变量选择内存中的变量X,Y,Z保存为保存为sa.mat文件文件清空内存清空内存,从从sa.mat向内存装载变量向内存装载变量Z.clear%清除内存中的全部变量清除内存中的全部变量load sa Z%把把sa.mat文件中的文件中的Z变量装入内存变量装入内
16、存who%检查内存中有什么变量检查内存中有什么变量MATLAB命令行编辑入门命令行编辑入门-MATLAB的文件管理的文件管理what 返回当前目录下返回当前目录下M、MAT、MEX文件列表文件列表dir 列出当前目录下的所有文件列出当前目录下的所有文件cd 显示当前的工作目录显示当前的工作目录type(文件名文件名)在命令窗口下显示该文件的内容在命令窗口下显示该文件的内容delete(文件名文件名)删除删除M文件文件which(文件名文件名)显示显示M文件所在的目录文件所在的目录MATLAB文件管理命令文件管理命令MATLAB函数 Matlab由包括许多标准函数,每个函数都由包括许多标准函数,
17、每个函数都完成某一特定功能的代码组成。完成某一特定功能的代码组成。Matlab也允许用户编写自己所需的函数,也允许用户编写自己所需的函数,其扩展名为其扩展名为.m,其中必须以关键字其中必须以关键字function开头开头.MATLABsin 正弦函数正弦函数 asin 反正弦函数反正弦函数 cos 余弦函数余弦函数 acos 反余弦函数反余弦函数 tan 正切函数正切函数 atan 反正切函数反正切函数 cot 余切函数余切函数 acot 反余切函数反余切函数 sec 正割函数正割函数 asec 反正割函数反正割函数 csc 余割函数余割函数 acsc 反余割函数反余割函数 sinh 双曲正弦
18、函数双曲正弦函数 asinh 反双曲正弦函数反双曲正弦函数 cosh 双曲余弦函数双曲余弦函数 acosh 反双曲余弦函数反双曲余弦函数 tanh 双曲正切函数双曲正切函数 atanh 反双曲正切函数反双曲正切函数 sech 双双曲正割函数曲正割函数 asech 反双曲正割函数反双曲正割函数 csch 双曲余割函数双曲余割函数 acsch 反双曲余割函数反双曲余割函数 coth 双曲余切函数双曲余切函数 acoth 反双曲余切函数反双曲余切函数 MATLAB的函数的函数MATLAB 常用函数常用函数MATLABabs(x)绝对值绝对值sqrt(x)开平方开平方conj(z)共轭复数共轭复数ro
19、und(x)四舍五入四舍五入floor(x)舍去正小数舍去正小数rat(x)化为分数表示化为分数表示gcd(x,y)最大公因数最大公因数exp(x)自然指数自然指数log(x)e为底的对数为底的对数Log10(x)10为底的对数为底的对数angle(z)复数复数z的相角的相角real(z)复数复数z的实部的实部imag(z)复数复数z的虚部的虚部fix(x)舍去小数取整舍去小数取整ceil(x)加入正小数取整加入正小数取整sign(x)符号函数符号函数rem(x,y)求求x除以除以y的余数的余数lcm(x,y)最小公倍数最小公倍数pow2(x)以以2为底的指数为底的指数log2(x)以以2为底
20、的对数为底的对数MATLAB 常用函数介绍常用函数介绍MATLAB2.程序程序M文件文件以以.m格式进行存取,包含一连串格式进行存取,包含一连串的的MATLAB指令和必要的指令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。数据为命令窗口中的数据,没有输入参数,也不会返回参数。程序运行时只需在工作空间中键入其名称即可。程序运行时只需在工作空间中键入其名称即可。MATLAB的程序类型的程序类型MATLAB的程序类型有三种,一种是在命令窗口下执行的的程序类型有三种,一种是在命令窗口
21、下执行的脚本脚本M文件;另外一种是可以存取的文件;另外一种是可以存取的M文件,也即程序文件;文件,也即程序文件;最后一种是函数(最后一种是函数(function)文件。文件。1.脚本脚本M文件文件在命令窗口中输入并执行,它所用的变量都要在工作空间在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出中获取,不需要输入输出参数的调用,退出MATLAB后就后就释放了。释放了。MATLAB(1)函数定义行(关键字)函数定义行(关键字function)functionout1,out2,.=filename(in1,in2,.)输入和输出(返回)的参数个数分别由输入和
22、输出(返回)的参数个数分别由nargin和和nargout两个两个MATLAB保留的变量来给出。保留的变量来给出。(2)第一行帮助行第一行帮助行,即,即H1行行以(以(%)开头,作为)开头,作为lookfor指令搜索的行指令搜索的行(3)函数体说明及有关注解)函数体说明及有关注解以(以(%)开头,用以说明函数的作用及有关内容)开头,用以说明函数的作用及有关内容(4)函数体语句)函数体语句函数体内使用的除返回和输入变量这些在函数体内使用的除返回和输入变量这些在function语句中直接语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之引用的变量以外的所有变量都是局部变量,即在该函数
23、返回之后,这些变量会自动在后,这些变量会自动在MATLAB的工作空间中清除掉。如果希的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。它们设置为全局变量。3.函数文件函数文件与在命令窗口中输入命令一样,函数接受输入参数,然后执行与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用并输出结果。用help命令可以显示它的注释说明。命令可以显示它的注释说明。具有标准的基本结构。具有标准的基本结构。MATLAB流程控制循环语句循环语句 for,while条件转移条件转移 if end
24、,if elseif else end开关语句开关语句 switch case注释语句注释语句%中断语句中断语句 break暂停语句暂停语句 pause回显语句回显语句 echo on/offMATLAB1.1.for循环语句循环语句基本格式基本格式for for 循环变量起始值:步长:终止值循环变量起始值:步长:终止值 循环体循环体 endend步长缺省值为步长缺省值为1,可以在正实数或负实数范围,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值止值时,循环结束;对于负数,循环变量的值小于终止值时
25、,循环结束。循环结构可以嵌套小于终止值时,循环结束。循环结构可以嵌套使用。使用。MATLAB2.while循环语句循环语句基本格式基本格式while 表达式表达式 循环体循环体 end若表达式为真,则执行循环体的内容,执行后若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。环体,向下继续执行。While循环和循环和for循环的区别在于,循环的区别在于,while循环结构的循环体被执循环结构的循环体被执行的次数不是确定的,而行的次数不是确定的,而for结构中循环体的执行次数是确定的。结构中循环体的执行次数是
26、确定的。MATLAB3.if,else,elseif语句语句(1)if 逻辑表达式逻辑表达式 执行语句执行语句 end(2)if 逻辑表达式逻辑表达式 (3)if 逻辑表达式逻辑表达式1 执行语句执行语句1 执行语句执行语句1 else elseif 逻辑表达式逻辑表达式2 执行语句执行语句2 执行语句执行语句2 end end MATLAB4.switch语句语句 switch 表达式(可以是标量或字符串)表达式(可以是标量或字符串)case 值值1 语句语句1 case 值值2 语句语句2 .otherwise 语句语句3 endMATLABMATLAB程序的基本组成结构程序的基本组成结构
27、说明说明清除命令:清除命令:清除清除workspace中的变量和图形(中的变量和图形(clear,close)定义变量:定义变量:包括全局变量的声明及参数值的设定包括全局变量的声明及参数值的设定逐行执行命令:逐行执行命令:指指MATLAB提供的运算指令或工具箱提供的运算指令或工具箱 提供的专用命令提供的专用命令控制循环控制循环:包含包含for,if then,switch,while等语句等语句 逐行执行命令逐行执行命令 end绘图命令:绘图命令:将运算结果绘制出来将运算结果绘制出来当然更复杂程序还需要调用子程序。当然更复杂程序还需要调用子程序。MATLABGraphicsMATLAB提供了丰
28、富的绘图功能提供了丰富的绘图功能help graph2d可得到所有画二维图形的命令可得到所有画二维图形的命令help graph3d可得到所有画三维图形的命令可得到所有画三维图形的命令MATLAB1.基本的绘图命令基本的绘图命令plot(x1,y1,option1,x2,y2,option2,)x1,y1x1,y1给出的数据分别为给出的数据分别为x,yx,y轴坐标值,轴坐标值,option1option1为选项为选项参数,以逐点连折线的方式绘制参数,以逐点连折线的方式绘制1 1个二维图形;同时类个二维图形;同时类似地绘制第二个二维图形。似地绘制第二个二维图形。这是这是plotplot命令的完全
29、格式,在实际应用中可以根据需命令的完全格式,在实际应用中可以根据需要进行简化。比如:要进行简化。比如:plot(x,y)plot(x,y);plot(x,y,option)plot(x,y,option)选项参数选项参数optionoption定义了图形曲线的颜色、线型及标示定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。符号,它由一对单引号括起来。MATLAB2.选择图像选择图像 figure(1););figure(2););figure(n)打开不同的图形窗口,以便绘制不同的图形。打开不同的图形窗口,以便绘制不同的图形。3.grid on:在所画出的图形坐标中加入栅格在所画出
30、的图形坐标中加入栅格 grid off:除去图形坐标中的栅格除去图形坐标中的栅格4.hold on:把当前图形保持在屏幕上不变,同时把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。允许在这个坐标内绘制另外一个图形。hold off:使新图覆盖旧的图形使新图覆盖旧的图形5.设定轴的范围设定轴的范围 axis(xmin xmax ymin ymax)axis(equal):将:将x坐标轴和坐标轴和y坐标轴的单位刻坐标轴的单位刻度大小调整为一样。度大小调整为一样。MATLAB6.文字标示文字标示text(x,y,字符串字符串)在图形的指定坐标位置在图形的指定坐标位置(x,y)处,
31、标示单引号括起来的处,标示单引号括起来的字符串。字符串。title(字符串字符串)在所画图形的最上端显示说明该图形标题的字符串。在所画图形的最上端显示说明该图形标题的字符串。xlabel(字符串字符串),ylabel(字符串字符串)设置设置x,y坐标轴的名称。坐标轴的名称。输入特殊的文字需要用反斜杠(输入特殊的文字需要用反斜杠()开头。)开头。7.legend(字符串字符串1,字符串字符串2,字符串字符串n)在屏幕上开启一个小视窗,然后依据绘图命令的先在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。后次序,用对应的字符串区分图形上的线。MATLAB8.subp
32、lot(m,n,k):分割图形显示窗口m:上下分割个数,n:左右分割个数,k:子图编号9.semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。semilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。10.了解应用型绘图指令:可用于数值统计分析或离散数据处理bar(x,y);hist(y,x)stairs(x,y);stem(x,y)MATLABExamples例例1 计算球体积计算球体积r=2;%有有“;”不显示结果不显示结果v=4/3*pi*r3%没有没有“;”显示结果显示结果注意:注意:1、可多个命令写一行,命令间用、可多个命
33、令写一行,命令间用“,”或或“;”分开。分开。2、允许使用、允许使用键来编辑前面的命令。键来编辑前面的命令。1.简单的运算简单的运算1、基本操作、基本操作MATLAB2.变量和数据变量和数据(1)变量有数值型和字符型两类,变量类型和)变量有数值型和字符型两类,变量类型和数组大小无需预先定义。数组大小无需预先定义。(2)常用的常量)常用的常量 i或或j复数单位复数单位 pipi(3)变量名以字母开头,后可跟字母、数字和下划)变量名以字母开头,后可跟字母、数字和下划线,区分大小写。线,区分大小写。(4)变量查询用)变量查询用who或或whos,清除变量用,清除变量用clear。(5)数据显示格式是
34、整数作为整数显示,实数显示)数据显示格式是整数作为整数显示,实数显示4位小数,可通过位小数,可通过format命令改变。命令改变。(6)数据保存用)数据保存用save,调用用,调用用load。Inf无穷大无穷大MATLAB例例2 变量定义、查询和清除变量定义、查询和清除a=1+2*iA=This is a stringwho%变量查询变量查询whos%变量查询变量查询a%显示变量显示变量a的值的值clear a A;%清除变量清除变量a和和Aclear;%清除所有变量清除所有变量MATLAB例例3 数据显示、保存和调用数据显示、保存和调用b=5c=piformat rational;cform
35、at;csave;%当前所有变量和数据保存到数据文件当前所有变量和数据保存到数据文件matlab.matclear;cload;cMATLAB二、作图图形可直接保存为图形可直接保存为M文件,也可以将其作为图片剪贴文件,也可以将其作为图片剪贴到到WORD文档或其它应用程序中,图形的颜色、线文档或其它应用程序中,图形的颜色、线型、标记均可设定。型、标记均可设定。1.曲线图曲线图 plot(x,y)作出以数据作出以数据(x(i),y(i)为节点的折线图为节点的折线图 fplot(fun,a,b)作出函数作出函数fun在区间在区间a,b上的曲线上的曲线图图 plot3(x,y,z)作出空间曲线图作出空
36、间曲线图MATLAB例例4 作平面曲线的图形作平面曲线的图形x=-1:0.2:2;y=abs(x).2.*sin(5*x);plot(x,y,:ro);close;fplot(x3-x-1,-1,2)close;%关闭已有图形窗口关闭已有图形窗口fplot(tan(x),sin(x),cos(x),-2*pi,2*pi,-2*pi,2*pi)MATLAB例例5 作空间曲线的图象作空间曲线的图象clear;close;t=0:0.1:20;r=exp(-0.2*t);h=0.5*pi*t;x=r.*cos(h);y=r.*sin(h);z=t;plot3(x,y,z)MATLAB2.曲面图曲面图
37、 x,y=meshgrid(xa,ya)生成生成x-y平面上的网格数平面上的网格数据据 mesh(x,y,z)绘制网面图绘制网面图例例6 作曲面图象作曲面图象clear;close;%关闭已有图形窗口关闭已有图形窗口xa=-2:0.2:2;ya=xa;x,y=meshgrid(xa,ya);z=x.*exp(-x.2-y.2);mesh(x,y,z)MATLAB三、符号运算三、符号运算 符号运算的变量、表达式均为符号对象,应当用符号运算的变量、表达式均为符号对象,应当用sym或或syms生成。如生成。如syms a,b,c;%生成符号变量生成符号变量a,b,c例例7 多项式运算举例多项式运算举
38、例syms x;f=(x-1)3;g=(x+1)3;h=f*gs=expand(h)%展开展开hf=factor(s)%因式分解因式分解hsub=subs(s,x,x2+x+1)%变量代换变量代换hsim=simple(hsub)%化简化简MATLAB四、代数方程(组)求根四、代数方程(组)求根 roots 求多项式方程的根求多项式方程的根 fzero 求一元函数在求一元函数在a,b的实根的实根(要求函数在要求函数在a,b两点异号两点异号)fsolve 求方程(组)的数值解求方程(组)的数值解 solve 方程(组)求解方程(组)求解MATLABMATLAB五、曲线插值与拟合五、曲线插值与拟合
39、1.一维插值一维插值 Y1=interp1(X,Y,X1,method)其中其中X和和Y为原始数据点;为原始数据点;X1为加细的数据点或是我们为加细的数据点或是我们希望得到插值数据的数据点。希望得到插值数据的数据点。method是指定插值方法:是指定插值方法:linear 线性插值线性插值 spline 三次样条插值三次样条插值 cubic 三次插值三次插值pp=spline(x,y)得到样条插值的分段多项式得到样条插值的分段多项式b,c=unmkpp(pp)b显示样条函数的结点显示样条函数的结点,c显示样条显示样条函数的各个分段三次多项式的系数函数的各个分段三次多项式的系数.MATLAB例例
40、12 三次多项式插值三次多项式插值clear;close;x=linspace(0,2*pi*300,19);y=502.8,525.0,514.3,451.0,326.5,188.6,92.2,59.6,62.2,102.7,147.1,191.6,236.0,280.5,324.9,369.4413.8,458.3,502.8;plot(x,y,o);axis(0,2000,0,550);%可见,可以用三次多项式插值,下面画出柱高插值曲可见,可以用三次多项式插值,下面画出柱高插值曲线图。线图。xi=0:2*pi*300;yi=interp1(x,y,xi,cubic);plot(xi,yi
41、);MATLAB例例13 三次样条插值三次样条插值x=1:12;y=5 6 9 15 25 29 31 30 22 25 27 24;close;plot(x,y,x,y,+)pp=spline(x,y);b,c=unmkpp(pp)MATLABMATLAB2.二维插值二维插值 ZI=interp2(x,y,z,xi,yi)使用双线性插值使用双线性插值 ZI=interp2(x,y,z,xi,yi,spline)使用二元三次样条使用二元三次样条插值插值 ZI=interp2(x,y,z,xi,yi,cubic)使用二元三次插值使用二元三次插值其中其中x,xi为行向量,为行向量,y,yi为列向量
42、,为列向量,z为矩阵。为矩阵。ZI=griddata(x,y,z,xi,yi)使用三角形线性使用三角形线性插值插值 ZI=griddata(x,y,z,xi,yi,cubuc)使用三使用三角形三次插值角形三次插值其中其中x,y,z均为向量(不必单调)均为向量(不必单调)xi,yi为网格向量。为网格向量。MATLAB例例15 二元函数插值二元函数插值x=129 140 108 88 185 195 105 157 107 77 145 162 162 117;y=7 141 28 147 22 137 85 -6 -81 3 45 -66 84 -38;z=4 8 6 8 6 8 8 9 9 8
43、 8 9 4 9;h=-z;xi=75:5:200;yi=-50:10:150;hi=griddate(x,y,h,xi,yi,cubic);%采用三角形三次插值采用三角形三次插值mesh(xi,yi,hi);view(-60,30);contour(xi,yi,hi,-5,-5,k)%等高线图等高线图MATLAB3.曲线拟合曲线拟合 p=polyfit(x,y,n)按按n次多项式拟合次多项式拟合例例16 线性函数拟合线性函数拟合x=100 110 120 130 140 150 160 170 180 190;y=45 51 54 61 66 70 74 78 85 89;close;plo
44、t(x,y)p=polyfit(x,y,1)MATLAB例例17 非线性函数化为线性函数拟合非线性函数化为线性函数拟合t=0 1 2 3 4 5 6 7 8 9 10;u=100 75 55 40 30 20 15 10 10 5 5;close;plot(t,u)T=t;U=log(u);p=polyfit(T,U,1)b=p(1)a=exp(p(2)MATLAB例例18 多项式函数拟合多项式函数拟合x=34 36 37 38 39 39 39 40 40 41 42 43 43 45 47 48;y=1.30 1.00 0.73 0.90 0.81 0.70 0.60 0.50 0.44 0.56 0.30 0.42 0.35 0.40 0.41 0.60;close;plot(x,y)p=polyfit(x,y,2)xi=linspace(34,48,1000);%绘图的绘图的X轴数据轴数据z=polyval(p,xi);%得到多项式在数据点处的值得到多项式在数据点处的值close;plot(x,y,ko,xi,z,r-)