资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
曲线拟合向导 Genial USTC 2004 4 18 Mathworks Tech Note 1508 曲线拟合向导曲线拟合向导 1 介绍介绍 2 Mathworks 产品的曲线拟合特色产品的曲线拟合特色 a 曲线拟合工具箱 曲线拟合工具箱 Curve Fitting Toolbox b Matlab 内建函数与其他的带有曲线拟合能力的附加产品 工具箱 内建函数与其他的带有曲线拟合能力的附加产品 工具箱 c 线性曲线拟合线性曲线拟合 d 非线性曲线拟合非线性曲线拟合 3 加权曲线拟合方法加权曲线拟合方法 a 曲线拟合工具箱曲线拟合工具箱 b 统计工具箱统计工具箱 c 优化工具箱优化工具箱 4 利用曲线拟合工具箱提高曲线拟合结果利用曲线拟合工具箱提高曲线拟合结果 5 其他的相关资料其他的相关资料 第第 1 节 节 简介简介 MATLAB 即有内建的解决很多通常遇到的曲线拟合问题的能力 又具有附加这方面的 产品 本技术手册描述了几种拟合给定数据集的曲线的方法 另外 本手册还解释了加权曲 线拟合 针对复数集的曲线拟合以及其他一些相关问题的拟合技巧 在介绍各种曲线拟合方 法中 采用了典型例子的结合介绍 第第 2 节 节 MathWorks 产品的曲线拟合特色产品的曲线拟合特色 MATLAB 有可以用于曲线拟合的内建函数 MathWorks 公式也提供了很多工具箱可以 用于曲线拟合 这些方法可以用来做线性或者非线性曲线拟合 MATLAB 也有一个开放的 工具箱 曲线拟合工具箱 Curve Fitting Toolbox 她可以用于参数拟合 也可以用于非 参数拟合 本节将介绍曲线拟合工具箱与其他工具箱 以及各种 MATLAB 可以用于曲线拟 合的内建函数的详细特征 a 曲线拟合工具箱曲线拟合工具箱 曲线拟合工具箱是专门为数据集合进行曲线拟合而设计的 这个工具箱集成了用 MATLAB 建立的图形用户界面 GUIs 和 M 文件函数 曲线拟合向导 Genial USTC 2004 4 18 利用工具箱的库方程 例如线性 二次 高阶多项式等 或者是用户自定义方 程 局限于用户的想象力 可以进行参数拟合 当你想找出回归系数以及他们背后 的物理意义的时候就可以采用参数拟合 通过采用平滑样条或者其他各种插值方法 你就可以进行非参数拟合 当回归 系数不具有物理意义并且不在意他们的时候 就采用非参数拟合方法 曲线拟合工具箱提供了如下功能 数据回归 譬如 截面 sectioning 与平滑 标准线性最小二乘拟合 非线性最小二乘拟合 加权最小二乘拟合 约束二 乘 constrained least squares 拟合 以及 稳健 robust 拟合 根据诸如 R2 以及 误差平方和 SSE 确定的拟合性能的统计特征 请查阅曲线拟合工具箱提供的 demos b MATLAB 内建函数与具有曲线拟合能力的其他工具箱内建函数与具有曲线拟合能力的其他工具箱 除了曲线拟合工具箱 MATALB 与其他工具箱也提供了些可以用于解决线性 和非线性曲线拟合的功能 本节列举并解释了其中几个 c 利用利用 MATLAB 内建函数进行线性曲线拟合内建函数进行线性曲线拟合 函数函数 描描 述述 polyfit 用多项式进行数据拟合 polyfit X Y N 对数据 X Y 拟合 N 阶多项 式系数 P X I Y I 在最小二乘意义上 反斜线或者矩阵阵左除 如果 A 是一个方阵 A B 基本上与 inv A B 一致的 是采用的不同计算方式而已 polyval 在给定点计算多项式的值 corrcoef 计算两个向量的相关系数 它可以与 polyfit 和 polyval 函数一起用来 在实际数据和拟合输出之间计算 R2 相关系数 下面给出一个利用 corref 计算 R2值的例子 load census p s polyfit cdate pop 2 Output polyval p cdate Corrolation corroef cate Output cdate 与它自身很好的相关 同样的 Output 也与它自身很好相关 反对角线上元素是 曲线拟合向导 Genial USTC 2004 4 18 cdate 与 Output 之间的相关性 这个值非常接近于 1 因此实际数据与拟合结果能否较 好的吻合 因此 这个拟合是 好 的拟合 应该是这样判断的么 我怎么觉得应该 通过 pop 与 Output 的相关性来判断拟合的好坏的呢 利用反斜线操作符与 polyfit 函数进行回归与曲线拟合的更多的例子请参照 MATLAB 文档中的 Regression and Curve Fitting 一节 附加例子 数据集 t 0 3 8 1 1 1 6 2 3 y 0 5 0 82 1 14 1 25 1 35 1 40 plot t y o grid on 方法 1 多项式回归 基于图形 数据可能通过二次多项式建模如下 y a0 a1 t a2 t 其中未知系数 a0 a1 a2 可以通过最小二乘 通过最小化通过模型计算 出来的数据的偏差的平方和 拟合计算 三个未知数 6 个方程如下 用 6x3 的矩阵表示 X ones size t t t 2 则结果通过反斜线操作符得到 a X y a 0 5318 0 9191 0 2387 因此二阶多项式模型为 y 0 5318 0 9191 t 0 2387 t2 曲线拟合向导 Genial USTC 2004 4 18 计算模型在均匀空间的值 并将原来的值画在同一个图形上 T 0 1 2 5 Y ones size T T T 2 a plot T Y t y o grid on 方法 2 线性参数回归 建立模型 X ones size t exp t t exp t a X y T 0 1 2 5 Y ones size T exp T T exp T a plot T Y t y o grid on 曲线拟合向导 Genial USTC 2004 4 18 方法 3 多元回归 如果 y 是一个包含多个独立变量的函数 表示变量间的相邻关系的矩阵方程可以 通过附加数据进行扩展 假设我们测量参数 x1 x2 的少数几个值的输出 y 观测值如下 x1 2 5 6 8 1 0 1 1 x2 1 3 4 9 1 1 1 4 y 17 26 28 23 27 24 本数据的一个多元模型是 多元回归解决的是通过最小二乘拟合求未知系数 a0 a1 a2 通过构造回归矩阵 X 构造和解决同步方程 依然采用反斜线操作符 X ones size x1 x1 x2 a X y 为了评价模型 求取绝对误差的最大值 Y X a MaxErr max abs Y y 实例分析 曲线拟合 本节来自实例分析 曲线拟合 本节来自 matlab 的在线帮助文档 的在线帮助文档 本节提供了以实际数据分析形式的在 MATLAB 中的数据分析基本能力的概貌 下面 的例子是以收集的人口普查数据为基础 采用 MATLAB 函数对数据进行实验拟合 多项式拟合 残差分析 指数拟合 误差界限 1 导入数据 load census census mat 包含了美国 1790 年到 1990 年的人口数据 其中包括两个变量 cdate 与 pop cdate 是从 1790 以 10 递增到 1990 的一个列向量 是年份数 pop 是 cdate 中年份相应的人口数据向量 曲线拟合向导 Genial USTC 2004 4 18 2 多项式拟合 首先我们想通过简单的多项式对普查数据进行拟合 利用 MATLAB 中的两个函 数进行处理 polyfit 与 polyval polyfit 函数是在给定阶次多项式上对数据进行最小二乘意思上的最优拟合 假设 采用 4 阶多项式 拟合过程为 p polyfit cdate pop 4 Warning Polynomial is badly conditioned Remove repeated data points or try centering and scaling as described in HELP POLYFIT p 1 0e 005 0 0000 0 0000 0 0000 0 0126 6 0020 警告的产生是因为 polyfit 函数用很大的值 cdate 作为基本数据 用他来产生范德蒙 矩阵 Vandermonde matrix 具体细节的可以在 polyfit 的 m 文件中看到 cdate 的展开 导致尺度标准问题 一个解决办法就是标准化 cdate 数据 预处理 标准化数据 标准化处理是为了提高后期数值计算精度而进行的尺度变化处理 一个处理办 法是 sdate cdate mean cdate std cdate 然后再以标准化后数据进行 4 阶多项式拟合 p polyfit sdate pop 4 p 0 7047 0 9210 23 4706 73 8598 62 2285 通过图形我们来观察其拟合的好坏 pop4 polyval p sdate plot cdate pop4 cdate pop grid on 曲线拟合向导 Genial USTC 2004 4 18 另外一个规范化数据的方法就是通过结果与单位的知识进行转换 如 对于本数据 集 选择 1790 作为 0 年也可以得到较为满意的解 3 残差分析 一个评价拟合好坏的测度就是残差 观测值与预测值的差异 对不同的拟合 利用 残差进行比较 从拟合图形和残差上 我们显而易见 采用标准化数据比简单的多项式可能 对数据有更好的拟合 利用如下命令 分别对数据进行 1 阶 2 阶 4 阶的拟合 作图 并比较其残差 load census sdate cdate mean cdate std cdate p1 polyfit sdate pop 1 pop1 polyval p1 sdate plot cdate pop1 b cdate pop g res1 pop pop1 figure plot cdate res1 g p polyfit sdate pop 2 pop2 polyval p sdate figure plot cdate pop2 b cdate pop g res2 pop pop2 figure plot cdate res2 g p polyfit sdate pop 4 pop4 polyval p sdate figure plot cdate pop4 b cdate pop g res4 pop pop4 figure plot cdate res4 g max abs res1 ans 41 3987 max abs res2 ans 7 5361 max abs res4 ans 6 3455 曲线拟合向导 Genial USTC 2004 4 18 4 指数拟合 看前面的人口图形 发现人口数据曲线有些与指数曲线相似 利用这一点 我们试 着对人口数据值的对数进行拟合 依然采用前面的标准化方法 logp1 polyfit sdate log10 pop 1 logpred1 10 polyval logp1 sdate semilogy cdate logpred1 cdate pop grid on logp2 polyfit sdate log10 pop 2 logpred2 10 polyval logp2 sdate figure semilogy cdate logpred2 cdate pop grid on logres2 log10 pop polyval logp2 sdate figure plot cdate logres2 r pop 10 polyval logp2 sdate figure plot cdate r 可以看出 残差更加随机性强一些 或许 残差随着人口数的增加而
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号