(完整版)数据拟合——线性回归.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据拟合 线性回归法 ir^mi ■■ in Mim 【概述】 MATLAB支持用户对数据用线性回归方法linear regression建立模型。模型是指自变量和因变量 之间的关系。线性回归方法建立的模型的系数是线性的。最常用的线性回归方法是最小二乘拟合, 可进行线性拟合和多项式拟合。 线性相关性分析 Lin ear Correlation An alysis 在对两组测量数据建立关系模型前,最好对这些数据之间的关系作一个判断一一 相关性分析, 看二者是否真的存在线性关系。 这里,我们只介绍相关性系数①Correlation coefficient的计算。简单的说,相关性系数是绝对值 在0-1之间的数,其绝对值越接近 1,表明数据之间存在线性关系的可能性越大。反之,数据越接 近0,表明数据之间不太可能存在线性关系。 MATLAB 语法:R = corrcoef(x,y) 计算数据x和y的相关系数矩阵R 示例1: x = [110]; y = [1 4 9 16 25 36 49 64 81 100]; R = corrceof(x,y) R = 1.0000 0.9746此数据表明两组数据具有很强的线性关系 0.9746 1.0000 示例2: x = [110]; y = [0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 0.9894 0.4121 -0.5440]; R = corrceof(x,y) R = 1.0000 -0.1705此数据表明两组数据不存在线性关系 -0.1705 1.0000 评价数据拟合的优劣一一残差计算 残差被定义为实际测量数据与利用模型拟合(预测)的数据之差。合适的模型计算的残差应 该接近独立的随机误差。如果计算得到的残差具有某种特殊的模式,那么模型就不合适。 利用MATLAB函数进行数据拟合 多项式模型 MATLAB提供了 2个用于多项式拟合的函数 polyfit和polyval。 MATLAB 语法:p = polyfit(x,y, n) 通过对数据x和y进行n阶多项式②拟合(基于最小二乘法),计算n阶多项式系数p MATLAB 语法:y = polyval(p,x) 计算以p为系数的多项式,在 x处的函数值y 示例3: t = [0 0.3 0.8 1.1 1.6 2.3]; y = [0.6 0.67 1.01 1.35 1.47 1.25]; plot(t,y,o) 用二阶多项式进行拟合 p=polyfit(t,y,2) P = -0.2942 1.0231t 0.4981 查看拟合的效果:1.绘制多项式曲线 t2 = 0:0.128; y2=polyval(p,t2); y2=polyval(p,t); res=y_y2; plot(t,res,+) 分析:可以看出,此题用二阶多项式拟合的效果不好,可以通过采用更高阶的多项式拟合来获得 更好的效果。但要注意,对于实际的问题进行建模时,阶次的选择应符合物理意义。 {课堂练习}对本题数据进行5阶多项式拟合,计算残差,绘制相应的波形。 具有非多项式项的线性模型 例如y a。 a,e七azte t,函数与系数是线性的,但与自变量不是线性关系。可以通过构造 一组方程来解决系数的求解问题。 示例4: %以列向量形式输入t和y t = [0 0.3 0.8 1.1 1.6 2.3]; y = [0.6 0.67 1.01 1.35 1.47 1.25]; %构造矩阵 X = [on es(size(t)) exp(-t) t.*exp(-t)]; %计算系数 a = X\y a = 1.3983 -0.8860 0.3085 线性关系为 y 1.3983 0.886et 0.3085te 查看拟合的效果:绘制多项式曲线 T = (0:0.125): Y = [ones(size(T)) exp(-T) T.*exp(-T)]*a; plot(T ,Y -,t,y,o), grid on 多元回归 当自变量不止一个时,如 y 比 a?X2。 示例5: 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]; X = [ones(size(x1)) x1 x2]; a = X\y a = 0.1018 0.4844 -0.2847 验证模型,计算最大残差的绝对值 Y = X*a; MaxErr = max(abs(Y - y)) MaxErr = 0.0038 此数据远小于y数据,说明此模式较好。 利用图形工具——MATLAB Bas

您可能关注的文档

文档评论(0)

dianxin1241 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档