MATLAB教程-第六章.ppt

上传人:xiao****1972 文档编号:6279662 上传时间:2020-02-21 格式:PPT 页数:131 大小:1.36MB
返回 下载 相关 举报
MATLAB教程-第六章.ppt_第1页
第1页 / 共131页
MATLAB教程-第六章.ppt_第2页
第2页 / 共131页
MATLAB教程-第六章.ppt_第3页
第3页 / 共131页
点击查看更多>>
资源描述
第六章数值计算 MATLAB提供大量具有强大数值计算功能的函数 本章着重介绍关于数值计算的函数 目录 6 1多项式运算6 2插值运算6 3数据分析6 4功能函数6 5微分方程组数值解习题 6 1多项式运算 1 多项式表示法2 多项式求值3 多项式乘法和除法4 多项式的微积分 5 多项式的根和由根创建多6 多项式部分分式展开7 多项式曲线拟合8 多曲线拟合图形用户接口 MATLAB提供了关于多项式的函数 多项式的值 多项式的根和微分 多项式拟合曲线 部分分式 多项式函数 1 多项式表示法 MATLAB采用行向量表示多项式系数 多项式系数按降幂排列 函数poly2str 将多项式系数向量转换为完整形式 2 多项式求值 函数polyval 计算多项式的值 其具体使用方法如下 y polyval p x p为多项式系数行向量 x代入多项式的值 Y polyvalm p X 把矩阵X代入多项式p中进行计算 3 多项式乘法和除法 函数conv 和deconv 进行多项式乘法和除法 其具体使用方法如下 w conv u v 实现多项式乘法 返回结果多项式的系数行向量 q r deconv u v 实现多项式除法 4 多项式的微积分 1 多项式的微分函数polyder 计算多项式的微分 其具体使用方法如下 k polyder p 返回多项式p微分的系数向量 k polyder a b 返回多项式ab乘积微分的系数向量 q d polyder b a 返回多项式b a微分的系数向量 2 多项式的积分 函数polyint 计算多项式的不定积分 其具体使用方法如下 s polyint p k 返回多项式p不定积分的系数向量 5 多项式的根和由根创建多项式 1 多项式的根函数roots 求多项式的根 其具体使用方法如下 r roots c 返回多项式c的所有根r 2 由根创建多项式函数poly 实现由根创建多项式 其具体使用方法如下 p poly r 输入r是多项式所有根 返回值为多项式的系数向量 p poly A 输入A是方阵 返回值为A的特征多项式的系数向量 6 多项式部分分式展开 函数residue 将多项式之比按部分分式展开 其具体使用方法如下 r p k residue b a 求多项式b a的部分分式展开 b a residue r p k 从部分分式得到多项式向量 7 多项式曲线拟合 函数polyfit 采用最小二乘法对给定数据进行多项式拟合 其具体使用方法如下 p polyfit x y n 采用n次多项式p来拟合数据x和y 运行结果如下图所示 8 多曲线拟合图形用户接口 曲线拟合的图形用户接口可通过图形窗口的 Tools 菜单中 BasicFitting 选项启动 运行结果如下图所示 6 2插值运算 6 2 1一维插值6 2 2二维插值 插值是根据已知输入 输出数据集和当前输入估计输出值 MATLAB提供大量的插值函数 如下表所示 插值函数 6 2 1一维插值 一维插值就是对函数y f x 进行插值 一维插值的原理如下图所示 函数interp1 实现一维插值 其具体使用方法如下 yi interp1 x y xi x y是已知数据集且具有相同长度的向量 yi interp1 y xi 默认x为1 n 其中n为向量y的长度 yi interp1 x y xi method method用于指定插值的方法 运行结果如下图所示 6 2 2二维插值 二维插值是对两变量的函数z f x y 进行插值 二维插值的原理如下图所示 函数interp2 实现二维插值 其具体使用方法如下 zi interp2 x y z xi yi x y z为原始数据 返回值zi是插值结果 zi interp2 z xi yi 若z n m 则x 1 n y 1 m zi interp2 x y z xi yi method method用于指定插值的方法 运行结果如下图所示 6 3数据分析 6 3 1基本数据分析函数6 3 2协方差和相关系数矩阵6 3 3有限差分和梯度6 3 4信号滤波和卷积6 3 5傅立叶变换 MATLAB提供大量数据分析的函数 首先给出如下约定 一维数据分析时 数据可以用行向量或者列向量来表示 二维数据分析时 数据可以用多个向量或者二维矩阵来表示 6 3 1基本数据分析函数 1 最大值 最小值 平均值 中间值 元素求和2 标准差和方差3 元素排序 基本数据分析函数 续表 1 最大值 最小值 平均值 中间值 元素求和 运行结果如下 并如下图所示 2 标准差和方差 3 元素排序 MATLAB提供对实数 复数和字符串的排序函数 函数sort 实现数值的排序 函数sortrows 实现对行的排序 6 3 2协方差和相关系数矩阵 函数cov 计算随机变量的协方差矩阵 其具体使用方法如下 C cov X 计算X代表的随机变量的协方差矩阵 C cov x y x和y必须是具有相同长度的向量 C cov X 1 计算X代表的随机变量的协方差矩阵 C cov x y 1 x和y必须是具有相同长度的向量 函数corrcoef 计算随机变量的相关系数矩阵 其具体使用方法如下 R corrcoef X 返回X代表的随机变量的相关系数矩阵 R corrcoef x y x和y必须是具有相同长度的向量 6 3 3有限差分和梯度 函数diff 计算差分 其具体使用方法如下 Y diff X X可以是向量或矩阵 Y diff X n 返回n阶差分 Y diff X n dim 返回在dim维上的n阶差分 运行结果如下图所示 函数gradient 计算梯度 其具体使用方法如下 FX gradient F 返回F在x方向上的梯度 FX FY gradient F FX是F在x方向的近似偏导数 FY是F在y方向的近似偏导数 Fx Fy Fz gradient F 返回N个方向的近似偏导数 gradient F h h用于指定所有方向上自变量的间距 gradient F h1 h2 用多个标量来指定各个方向上自变量的间距 运行结果如下图所示 6 3 4信号滤波和卷积 1 一维数字滤波2 信号卷积3 去除信号直流或线性成分 MATLAB提供如下表所示的信号滤波和卷积的函数 信号滤波和卷积函数 1 一维数字滤波 函数filter 实现一维数字滤波 该函数的具体使用方法如下 y filter b a X X为用于滤波的数据 Y为数据X通过滤波器之后的值 y zf filter b a X 附加返回一个表示数据延迟时间的量zf y zf filter b a X zi zi为初始数据延迟 zf等于最终数据延迟 y filter b a X zi dim 在dim维上进行数据滤波 2 信号卷积 函数conv 计算卷积 运行结果如下图所示 3 去除信号直流或线性成分 detrend 函数实现去除信号中的直流或者线性成分 其具体使用方法如下 y detrend x 如果x是一个向量 从信号x中减去线性成分 如果x是一个矩阵 去除x所有列中的线性成分 y detrend x constant 如果x是一个向量 减去信号中的直流成分 如果x是一个矩阵 去除所有列中的直流成分 y detrend x linear bp 从信号x中减去分段线性函数 6 3 5傅立叶变换 1 一维傅立叶变换和逆变换2 二维傅立叶变换和逆变换 傅立叶变换既可以对连续信号进行变换 也可以对离散信号进行变换 本小节只介绍离散傅立叶变换 傅立叶变换函数 1 一维傅立叶变换和逆变换 函数fft 实现一维离散傅立叶变换 其具体使用方法如下 Y fft X 如果X是向量 返回向量X的傅立叶变换 如果X是矩阵 函数对矩阵X的每一列进行傅立叶变换 Y fft X n 用输入n指定傅立叶变换的长度 Y fft X dim 在dim维上进行傅立叶变换 Y fft X n dim 在dim维上进行傅立叶变换 并指定傅立叶变换的长度 函数ifft 实现一维离散傅立叶逆变换 其具体使用方法与函数fft 类似 只是添加一个选项 y ifft symmetric y ifft nonsymmetric 2 二维傅立叶变换和逆变换 函数fft2 实现二维傅立叶变换 用函数ifft2来实现二维傅立叶逆变换 函数fft2 的具体使用方法如下 Y fft2 X X是矩阵 对矩阵X进行二维傅立叶变换 Y fft2 X m n m和n指定傅立叶变换的长度 6 4功能函数 1 函数的表示2 函数画图3 函数最小值和零点4 数值积分5 在功能函数中使用含参函数 函数可以通过以下方式来表示 M文件 匿名函数 函数inline 1 函数的表示 2 函数画图 MATLAB提供函数画图的函数如下表所示 函数画图的函数 以函数fplot 为例介绍画图函数的用法 其具体使用方法如下 fplot function limits function为待画图的函数 limits是横坐标数值范围或横纵坐标数值范围 fplot function limits LineSpec LineSpec指定画图的线条属性 fplot function limits tol tol指定画图相对精度 fplot function limits tol LineSpec 指定画图的线条属性和画图相对精度 运行结果如下图所示 3 函数最小值和零点 求函数的最小值和零点的函数 如下表所示 求函数最小值和零点 1 求一元函数最小值 函数fminbnd 求一元函数在给定区间内的最小值 其具体使用方法如下 x fminbnd fun x1 x2 在区间 x1x2 内寻找函数最小值 x fminbnd fun x1 x2 options 使用options选项来指定的优化器的参数 x fval fminbnd 附加返回函数最小值 2 求多元函数的最小值 函数fminsearch 求多元函数的最小值 其具体使用方法如下 x fminsearch fun x0 在初始x0附近寻找局部最小值 x fminsearch fun x0 options 使用options选项来指定优化器的参数 x fval fminsearch 附加返回函数最小值 3 求一元函数的零点 函数fzero 求一元函数的零点 其具体使用方法如下 x fzero fun x0 在x0点附近寻找函数的零点 x fzero fun x0 x1 在 x0 x1 区间内寻找函数的零点 x fzero fun x0 options 用options指定寻找零点的优化器参数 x fval fzero 附加自变量为x时的函数值 4 优化器参数 函数optimset 设定优化器参数 其具体使用方法如下 options optimset param1 value1 param2 value2 用参数名和对应的参数值设定优化器的参数 optimset 显示优化器的所有参数名和有效的参数值 options optimset 返回一个优化器的结构体 options optimset optimfun 返回函数optimfun 对应的优化器参数 options optimset oldopts param1 value1 在原优化器参数oldopts的基础上 改动指定优化器参数 options optimset oldopts newopts 用newopts的所有非空参数覆盖oldopts中的值 在函数optimset 中常用的优化器参数如下表所示 优化器参数 函数optimget 得到目前优化器的参数 其具体使用方法如下 val optimget options param 返回优化器参数 param 的值 val optimget options param default 返回优化器参数 param 的值 4 数值积分 MATLAB提供一些的数值积分函数 如下表所示 数值积分函数 1 一元函数的数值积分 函数quad 和函数quadl 来计算一元函数的积分 函数quad 的具体使用方法如下 q quad fun a b 计算函数fun在 ab 区间内的定积分 q quad fun a b tol 以绝对误差容限tol计算函数fun在 ab 区间内的定积分 q quad fun a b tol trace 当trace为非零值时 显示迭代过程的中间值 2 矢量数值积分 矢量数值积分等价于多个一元定积分 3 二重和三重积分 函数dblquad 计算二重积分 其具体使用方法如下 q dblquad fun xmin xmax ymin ymax 计算二元函数的二重积分 q dblquad fun xmin xmax ymin ymax tol 用tol指定绝对计算精度 q dblquad fun xmin xmax ymin ymax tol method 用method指定计算一维积分时采用的函数 5 在功能函数中使用含参函数 功能函数中的含参函数的两种解决方法 嵌套函数匿名函数 编写M文件的函数时 首先将含参函数的参数作为输入 其次在其中调用功能函数 形成嵌套 最后通过调用该函数进行计算 1 用嵌套函数提供函数参数 运行结果如下图所示 2 用匿名函数提供函数参数 用匿名函数提供函数参数的具体步骤如下 创建一个含参函数 并保存为M文件格式 调用功能函数的M文件中给参数赋值 用含参函数创建匿名函数 把匿名函数句柄传递给功能函数计算 6 5微分方程组数值解 6 5 1常微分方程组的初值问题6 5 2延迟微分方程的问题6 5 3常微分方程组的边界问题 在MATLAB中 可以计算微分方程数值解 如 常微分方程组的初值问题 延迟微分方程的问题 常微分方程组的边界问题 6 5 1常微分方程组的初值问题 1 显式常微分方程组2 设置解法器参数3 线性隐式常微分方程组4 完全隐式常微分方程组 在MATLAB中可以计算以下初值问题的数值解 显式常微分方程组 线性隐式常微分方程组 完全隐式常微分方程组 1 显式常微分方程组 在MATLAB中 用函数实现不同的解法 如下表所示 常微分方程组解法对比 2 设置解法器参数 函数odeset 设定解法器参数 其具体使用方法如下 options odeset name1 value1 name2 value2 用参数名和相应参数值设定解法器的参数 options odeset oldopts name1 value1 修改原来的解法器options结构体oldopts options odeset oldopts newopts 合并两个解法器options结构体oldopts和newopts odeset 显示所有的参数值和它们的默认值 常微分方程组解法器参数 3 线性隐式常微分方程组 线性隐式常微分方程组可以利用解法器参数options来求解 运行结果如下图所示 4 完全隐式常微分方程组 函数ode15i 求解完全隐式常微分方程组 其具体使用方法如下 t Y ode15i odefun tspan y0 yp0 t Y ode15i odefun tspan y0 yp0 options 函数decic 得到自洽初始值 其具体使用方法如下 y0mod yp0mod decic odefun t0 y0 fixed y0 yp0 fixed yp0 y0mod yp0mod decic odefun t0 y0 fixed y0 yp0 fixed yp0 options 运行结果如下图所示 6 5 2延迟微分方程的问题 函数dde23 求解延迟微分方程组 其具体使用方法如下 sol dde23 ddefun lags history tspan sol dde23 ddefun lags history tspan option option结构体用于设置解法器的参数 函数dde23 的返回值是一个结构体 它包含7个属性 其中重要的5个属性如下 sol x dde23选择计算的时间点 sol y 在时间点x上的解y x sol yp 在时间点x上解的一阶导数y x sol history 方程初始值 sol solver 解法器的名字 dde23 若需得到tint时刻的解 可以使用函数deval 即yint deval sol tint 6 5 3常微分方程组的边界问题 函数bvp4c 的具体使用方法如下 sol bvp4c odefun bcfun solinit odefun代表常微分方程组的函数 bcfun是描述边界条件的函数 solinit是对方程解的猜测解 sol bvp4c odefun bcfun solinit options 使用options结构体来设定解法器的参数 运行结果如下图所示 习题
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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