ch05matlab学习资料.ppt_第1页
ch05matlab学习资料.ppt_第2页
ch05matlab学习资料.ppt_第3页
ch05matlab学习资料.ppt_第4页
ch05matlab学习资料.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB R2007基础教程 清华大学出版社 第5章 MATLAB 的数学运算 MATLAB R2007基础教程 清华大学出版社 教学目标 教学重点 教学内容 Date1 MATLAB R2007基础教程 清华大学出版社 教学目标 l掌握多项式运算及插值 l掌握函数操作 Date2 MATLAB R2007基础教程 清华大学出版社 教学内容 l多项式与插值 l函数运算 l微分方程 Date3 MATLAB R2007基础教程 清华大学出版社 多项式与插值 l多项式在数学中有着极为重要的作用,同 时多项式的运算也是工程和应用中经常遇 到的问题。MATLAB 提供了一些专门用 于处理多项式的函数,用户可以应用这些 函数对多项式进行操作。MATLAB 中对 多项式的操作包括多项式求根、多项式的 四则运算及多项式的微积分。 Date4 MATLAB R2007基础教程 清华大学出版社 多项式的表示 l在 MATLAB 中多项式用一个行向量表示 ,向量中的元素为该多项式的系数,按照 降序排列。如多项式 可以 表示为向量 p=9 7 4 3。用户可以创建向 量的方式创建多项式,再将其显示为多项 式, Date5 MATLAB R2007基础教程 清华大学出版社 多项式的四则运算 l由于多项式是利用向量来表示,多项式的四则 运算可以转化为向量的运算。 l多项式的加减为对应项系数的加减,因此可以 通过向量的加减来实现。但是在向量的加减中 两个向量需要有相同的长度,因此在进行多项 式加减时,需要将短的向量前面补 0。 l多项式的乘法实际上是多项式系数向量之间的 卷积运算,可以通过 MATLAB 中的卷积函数 conv 来完成。 l多项式的除法为乘法的逆运算,可以通过反卷 积函数 deconv 来实现。 Date6 MATLAB R2007基础教程 清华大学出版社 多项式的其他运算 l除多项式的四则运算外,MATLAB 还提供了多 项式的一些其他运算。这些运算及其对应的函 数如表所示。 函数 功能 roots 多项式求根 polyval 多项式求值 polyvalm 矩阵多项式求值 polyder 多项式求导 poly 求矩阵的特征多项式;或者求一个 多项式,其根为指定的数值 polyfit 多项式曲线拟合 residue 求解余项 Date7 MATLAB R2007基础教程 清华大学出版社 多项式的运算函数(1/2) lroots 函数和 poly 函数 这两个函数为功能互逆的两个函数。roots 函数 用于求解多项式的根。该函数的输入参数为多 项式的系数组成的行向量,返回值为由多项式 的根组成的列向量。poly 函数用于生成根为制 定数值的多项式。 lpolyval 函数 polyval 函数用于多项式求值。对于给定的多项 式,利用该函数可以计算该多项式在任意点的 值。 Date8 MATLAB R2007基础教程 清华大学出版社 多项式的运算函数(2/2) lpolyder 函数 l函数 polyder 用于多项式求导。该函数可以用 于求解一个多项式的导数、两个多项式乘积的 导数和两个多项式商的导数。该函数的用法为 : q = polyder(p) 该命令计算多项式 p 的导数。 c = polyder(a,b) 该命令实现多项式 a、b 的积的导 数。 q,d = polyder(a,b) 该命令实现多项式a、b 的商的 导数,q/d 为最后的结果。 Date9 MATLAB R2007基础教程 清华大学出版社 多项式拟合 l曲线拟合是工程中经常要用到的技术之一 。MATLAB 提供了曲线拟合工具箱满足 用户要求,另外,还提供了多项式拟合函 数。函数 polyfit 给出在最小二乘意义下 最佳拟合系数。该函数的调用格式为: p = polyfit(x,y,n) 其中x、y分别为待拟合数据的 x 坐标和 y 坐标,n 用于指定返回多项式的次数。 Date10 MATLAB R2007基础教程 清华大学出版社 数据插值 l根据已知数据推断未知数据,则需要使用 数据插值的概念。MATLAB 提供了对数 组的任意一维进行插值的工具,这些工具 大多需要用到多维数组的操作。本节将对 数据插值做简单的介绍,主要介绍一维插 值。 lMATLAB 中一维插值主要有: 多项式插值 快速傅立叶变换(FFT)插值。 Date11 MATLAB R2007基础教程 清华大学出版社 一维插值 l一维插值在曲线拟合和数据分析中具有重 要的地位。在 MATLAB 中,一维插值由 函数 interp1 实现。该函数的调用格式为 yi = interp1(x,y,xi,method) x、y:采用数据的 x 坐标和 y 坐标 xi :待插值的位置 method:采用的插值方法 l该语句返回函数在点 xi 处的插值结果。该 语句中的参数 method 可以选择的内容如 表所示。 参数对应方法 nearest最近邻插值 linear线性插值 spline三次样条插值 pchip或cubic三次插值 Date12 MATLAB R2007基础教程 清华大学出版社 外插运算 l当插值点落在已知数据集的外部时,需要对该 点进行插值估算,这种外插估值是比较难的。 MATLAB中没有指定外插算法时,对已知数据 集外部点上函数值的估计都返回NaN。 l需要外插运算时,可以通过interp1函数添加 extrap参数,指明所用的插值算法也用于外插 运算。 语法格式: yi = interp1(x,y,xi,method,extrap) Date13 MATLAB R2007基础教程 清华大学出版社 函数运算 l函数的表示 l数学函数图象的绘制 l函数极值 l函数求解 l数值积分 l含参数函数的使用 Date14 MATLAB R2007基础教程 清华大学出版社 函数的表示 lMATLAB 中提供了两种函数表示的方法 : 利用 M 文件将函数定义为 MALTAB 函数 将函数定义为 MALTAB 函数,当需要调用该 函数时,需要通过符号“”获取函数句柄, 利用函数句柄实现对函数的操作。 匿名函数方法 直接创建函数,如语句: fh = (x)1./(x-0.3).2 + 0.01) + 1./(x-0.9).2 + 0.04)-6; Date15 MATLAB R2007基础教程 清华大学出版社 数学函数图象的绘制 l函数图象具有直观的特性,可以通过函数图象查看出一 个函数的总体特征。MATLAB 提供了绘制函数图象的 函数 fplot,方便用户绘制函数的图象。下面介绍该函 数的用法。该函数的调用格式如下: fplot(fun,limits),y = f(x) fplot(fun,limits,LineSpec) fplot(fun,limits,tol) fplot(fun,limits,tol,LineSpec) fplot(fun,limits,n) fun 可以为 MATLAB 函数的 M 文件名,可以是包含变量 x 的字符 串,该字符串可以传递给函数 eval,还可以是函数句柄。 参数 limits用于指定绘制图象的范围。limits 是一个向量,用于指 定 x 轴的范围,格式为 xmin xmax。limits 也可以同时指定 y 轴的范围,格式为 xmin xmax ymin ymax。 Date16 MATLAB R2007基础教程 清华大学出版社 函数极值 l一元函数的极小值 lfminbnd 求得函数在给定区间内的局部极小值。 该函数的调用格式为 x = fminbnd(fun,x1,x2,options) fun 为函数句柄 x1 和 x2 分别用于指定区间的左右边界 options 用于指定程序的其他参数,其元素取值如表 所示。 名称描述 Display 控制结果的输出,参数可以为“off”,不输出任何结果; “iter”,输出每个插值点的值;“final”,输出最后结果; “notify”为默认值,仅当函数不收敛时输 出结果 FunValCheck 检测目标函数值是否有效。选择 on 则当函数返回数据为复 数或空数据时发出警告;off 则不发出警告 MaxFunEvals允许进行函数评价的最大次数 MaxIter最大迭代次数 OutputFcn指定每次迭代时调用的用户自定义的函数 TolX返回的 x 的误差 Date17 MATLAB R2007基础教程 清华大学出版社 多元函数的极小值 lMATLAB 提供了函数 fminsearch 用于计算多元函数的 极小值。fminsearch 函数内部应用了 Nelder-Mead 单 一搜索算法,通过调整 x 的各个元素的值来寻找f(x)的 极小值。该算法虽然对于平滑函数搜索效率没有其他算 法高,但它不需要梯度信息,从而扩展了其应用范围。 因此,该算法特别适用于不太平滑、难以计算梯度信息 或梯度信息价值不大的函数。 l用于求解函数极小值的函数还有 fminbnd。fminbnd 函数的用法与fminsearch 函数的用法基本相同,不同 之处在于:fminbnd 函数的输入参数为寻找最小值的区 间,并且只能用于求解一元函数的极值,fminsearch 函数的输入参数为初始值。 Date18 MATLAB R2007基础教程 清华大学出版社 函数求解 l可以使用函数 fzero() 来求一元函数的零点。寻找一元 函数零点时,可以指定一个初始点,或者指定一个区间 。当指定一个初始点时,此函数在初始点附近寻找一个 使函数值变号的区间,如果没有找到这样的区间,则函 数返回 NaN。该函数的调用格式为: x = fzero(fun,x0),x = fzero(fun,x1,x2):寻找 x0 附近或者 区间 x1,x2 内 fun 的零点,返回该点的 x 坐标; x = fzero(fun,x0,options),x = fzero(fun, x1,x2,options): 通过 options 设置参数; x,fval = fzero(.):返回零点的同时返回该点的函数值; x,fval,exitflag = fzero(.):返回零点、该点的函数值及程序 退出的标志; x,fval,exitflag,output = fzero(.):返回零点、该点的函数值 、程序退出的标志及选定的输出结果。 Date19 MATLAB R2007基础教程 清华大学出版社 数值积分 lMATLAB 中提供了用于积分的函数,包 括: 一元函数的自适应数值积分 一元函数的矢量积分 二重积分和三重积分 l这些函数如表所示。 函数功能 quad 一元函数的数值积分,采用自适应的 Simpson 方法 quadl 一元函数的数值积分,采用自适应的 Lobatto 方法 quadv一元函数的向量数值积分 dblquad二重积分 triplequad三重积分 Date20 MATLAB R2007基础教程 清华大学出版社 一元函数的积分 lMATLAB 中一元函数的积分可以用两个函数来实现: quad 和 quadl。函数 quad 采用低阶的自适应递归 Simpson 方法,函数 quadl 采用高阶自适应 Lobatto 方法,该函数是 quad8 函数的替代。函数 quad 的调 用格式如下: q = quad(fun,a,b),采用递归自适应方法计算函数 fun 在区间 上的积分,其精确度为 1e-6。 q = quad(fun,a,b,tol),指定允许误差,指定的误差 tol 需大于 1e-6。该命令运行更快,但是得到的结果精确度降低。 q = quad(fun,a,b,tol,trace),跟踪迭代过程,输出 fcnt a b-a Q 的值,分别为计算函数值的次数、当前积分区间的左边界、 步长和该区间内的积分值。 q,fcnt = quadl(fun,a,b,.),输出函数值的同时输出计算函数 值的次数。 Date21 MATLAB R2007基础教程 清华大学出版社 一元函数的矢量积分 l矢量积分相当于多个一元函数积分。当被 积函数中含有参数,需要对该参数的不同 值计算该函数的积分时,可以使用一元函 数的矢量积分。 l矢量积分返回一个向量,每个元素的值为 一个一元函数的积分值。quadv 函数与 quad 和 quadl 函数相似,可以设置积分 参数和结果输出。 Date22 MATLAB R2007基础教程 清华大学出版社 二重积分和三重积分 lMATLAB 中二重积分和三重积分分别由函数 dblquad() 和函数 triplequad() 来实现。首先介绍函数 dblquad() ,该函数的基本格式如下: q = dblquad(fun,xmin,xmax,ymin,ymax),函数的参数分别为 函数句柄、两个自变量的积分限,返回积分结果。 q = dblquad(fun,xmin,xmax,ymin,ymax,tol),指定积分结果 的精度。 q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method),指定 结果精度和积分方法,method 的取值可以是 quadl,也可 以是用户自定义的积分函数句柄,该函数的调用格式必须与 quad 的调用格式相同。 ltriplequad() 函数的调用格式和 dblquad() 基本相同, 在调用 triplequad() 函数时,需要六个参数指定积分限 。 Date23 MATLAB R2007基础教程 清华大学出版社 含参数函数的使用 l在很多情况下,需要进行运算的函数中包 含参数。在 MATLAB 中使用含参函数的 方式有两种: 嵌套函数 匿名函数。 Date24 MATLAB R2007基础教程 清华大学出版社 用嵌套函数提供函数参数 l使用含参函数的一个方法是编写一个 M 文件,该文件以函数参数作为输入,然后 调用函数的函数来处理含参函数,最后把 含参函数以嵌套函数的方式包含在 M 文 件中。 Date25 MATLAB R2007基础教程 清华大学出版社 用匿名函数提供函数参数 l使用含参函数还可以通过匿名函数来实现 ,函数的参数在使用之前必须先赋值。具 体步骤为: l首先创建一个含参函数,保存为 M 文件。函 数的输入为自变量 x 和函数参数; l在调用函数的函数前对参数赋值; l用含参函数创建匿名函数; l把匿名函数的句柄传递给函数的函数进行计 算。 Date26 MATLAB R2007基础教程 清华大学出版社 微分方程 lMATLAB 能够求解的微分方程类型包括: 常微分方程初值问题 常微分方程边值问题 时滞微分方程初值问题 偏微分方程 Date27 MATLAB R2007基础教程 清华大学出版社 常微分方程初值问题 lMATLAB 可以求解的常微分方程包括下 面三种类型: 显式常微分方程 线性隐式常微分方程, ,其 中 为矩阵 全隐式常微分方程 Date28 MATLAB R2007基础教程 清华大学出版社 显式常微分方程 lMATLAB 可以求解刚性方程和非刚性方程。求 解微分方程的命令格式为: t,y = solver(odefun,tspan,y0,options) odefun:待求解方程的句柄 tspan:为积分区间 y0:为一个向量,包括问题的初始条件 Options:用于指定求解算法。对于刚性方程和非刚 性方程,可以选择的算法不同。对于非刚性方程,可 以选择的算法如下: ode45:基于显式 Runge-Kutta(4,5) 规则求解 Date29 MATLAB R2007基础教程 清华大学出版社 l对于非刚性方程,可以选择的算法如下: ode45:基于显式 Runge-Kutta(4,5) 规则求 解 ode23:基于显式 Runge-Kutta(2,3) 规则求 解 ode113: 利用变阶 Adams

温馨提示

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

评论

0/150

提交评论