版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab线性回归(拟合)(同名10020)Matlab线性回归(拟合)对于多元线性回归模型:y 0 1X1pXp e设变量X1,X2,L Xp,y的n组观测值为(xM,Xi2,L Xip, yi) i 1,2,L ,n .1X11X12X1 p记X1X21X22X2py1Xn1Xn2Xnpy10y2,则 1的估计值ynpb ? (x'x) 1 x' y(11.2)在Matlab中,用regress函数进行多元线性回 归分析,应用方法如下:语法:b = regress(y, x)b, bint, r, rint, stats = regress(y, x)b, bint, r
2、, rint, stats = regress(y, x, alpha)b = regress(y, x),得到的p 1维列向量b即为 (11.2就给出的回归系数的估计值.b, bint, r, rint, stats=regress(y, x) 给出回 归系数 的估计值b,的95%置信区间(p 1) 2 向量)bint)残差r以及每个残差的95%置信区间(n 2向量)rint ;向量stats给出回归的R2统 计量和F以及临界概率p的值.如果,的置信区间(bint的第i i行)不包含 0,则在显著水平为 时拒绝i 0的假设,认为变 量为是显著的.b, bint, r, rint, stats
3、=regress(y, x, alpha)给 出了 bint和rint的100(1-alpha)%的置信区间.三次样条插值函数的MATLAB程序matlab 的 splinex = 0:10; y = sin(x);%插值点xx = 0:.25:10;% 绘图点yy = spline(x,y,xx);plot(x,y,'o',xx,yy)非线性拟合非线性拟合可以用以下命令(同样适用于线形回归分析):1 .beta = nlinfit(X,y,fun,beta0)X给定的自变量数据,Y给定的因变量数据,fun要拟合的函数模型(句柄函数或 者内联函数形式),beta0函数模型中系数
4、估计初值,beta返回拟合后的系数2 .x = lsqcurvefit(fun,x0,xdata,ydata)fun要拟合的目标函数,x0目标函数中的系数估计初值,xdata自变量数据,ydata 函数值数据X拟合返回的系数(拟合结果)nlinfit珞式:beta)r)J=nlinfit (x)y)' model'betaQ)Beta估计出的回归系数残差J Jacobian 矩阵x, y输入数据x、y分别为n*m矩阵和n维列向量,对一元非线性回归,x为n维列向量。model是事先用m-文件定义的非线性函数beta0回归系数的初值例1已知数据:x1=0,5,0,4,0,3,0,2
5、,0.1;x2=0,3,0,5,0,2,0,4,0.6;x3=1.8,1.4,1.0,1.4,1.8;y=0.785,0.703,0.583,0.571,0.126'且y与x1 ,x2 , x3关系为多元非线性关系(只与x2,x3相关)为:y=a+b*x2+c*x3+d*(x2.八2)+e*(x3八2)求非线性回归系数a , b , c , d , e 。对回归模型建立 M文件model.m如下:function yy=myfun(beta,x)x1=x(:,1);x2=x(:,2);x3=x(:,3);yy=beta(1)+beta(2)*x2+beta(3)*x3+beta(4)*
6、(x2.A2)+beta(5)*(x3.A2);(2)主程序如下:x=0.5,0.4,0.3,0.2,0.1;0.3,0.5,0.2,0.4,0.6;1.8,1.4,1.0,1.4,1.8'y=0.785,0.703,0.583,0.571,0.126'beta0=1,1, 1,1, 1'beta,r,j = nlinfit(x,y,myfun,beta0)例题2:混凝土的抗压强度随养护时间的延长而 增加,现将一批混凝土作成12个试块,记录 了养护日期(日)及抗压强度y (kg/cm2 )的数据:养护时间:x =2 3 4 5 7 9 12 14 17 21 28 56
7、 抗压强度:y =35+r 42+r 47+r 53+r 59+r65+r 68+r 73+r 76+r 82+r 86+r 99+r 建立非线性回归模型,对得到的模型和系数 进行检验。注明:此题中的+r代表加上一个-0.5,0.5之 间的随机数模型为:y=a+k1*exp(m*x)+k2*exp(-m*x);Matlab 程序:x=2 3 4 5 7 9 12 14 17 21 28 56;r=rand(1,12)-0.5;y1=35 42 47 53 59 65 68 73 76 82 86 99;y=y1+r;myfunc=inline('beta(1)+beta(2)*exp(
8、beta( 4)*x)+beta(3)*exp(-beta(4)*x)','beta','x'); beta=nlinfit(x,y,myfunc,0.5 0.5 0.5 0,5); a=beta(1),k1=beta(2),k2=beta(3),m=beta( 4)%test the modelxx=min(x):max(x);yy=a+k1*exp(m*xx)+k2*exp(-m*xx);plot(x,y,'o',xx,yy,')结果:a = 87,5244k1 = 0,0269k2 = -63.4591m = 0.1083图
9、形:100Isqnonlin非线性最小二乘(非线性数据拟合)的标准 形式为-2-2-2min f(x) fi(x)2 f2(x)2fm(x)2 L其中:L为常数在MATLAB5.X 中,用函数leastsq解决这 类问题,在6.0版中使用函数lsqnonlin。f1(x)设 F(x) f2(x)fm(x)则目标函数可表达为min 1| F(x)|2义fi (x)2 x 22 i其中:x为向量,F(x)为函数向量。函数 lsqnonlin格式x = lsqnonlin(fun,x0) %x0 为初始 斛同里1ftun力f i(x)1=12二,二单) w濯泉虞昌髓 用)fun的te叉与刖面布局。x
10、 = lsqnonlin(fun,x0,lb,ub) %lb、ub定义x的下界和上界:lb x ubox=lsqnonlin(fun,x0,lb,ub,options) %options为指定优化参 数,若x没有界,则lb=, ub= ox,resnorm = lsqnonlin()%resnorm=sum(fun(x).八2)即解x处目标函数值。x,resnorm,residual=lsqnonlin() % residual=fun(x)即解 x 处 fun的值。x,resnorm,residual,exitflag = lsqnonlin()%exitflag为终止迭代条件。x,resn
11、orm,residual,exitflag,output=lsqnonlin() %output输出优化信息。x,resnorm,residual,exitflag,output,l ambda=lsqnonlin() %lambda 为Lagrage 乘子。x,resnorm,residual,exitflag,output,l ambda,jacobian=lsqnonlin() %fun 在解 x处的Jacobian矩阵。例5-17 求下面非线性最小二乘问题10(2 2k ekx1 ekx2)2 初始解向量为 x0 = 0.3, 0.4。k=1,2,,10fk(x)2 2k ekx1 e
12、kx2屈sq破娥噎源BIfm,function F = myfun(x) k = 1:10;F = 2 + 2*k-exp(k*x(1)-exp(k*x(2);然后调用优化程序:x0 = 0.3 0.4;x,resnorm = lsqnonlin(myfun,x0)结果为:Optimization terminated successfully:Norm of the current step is less than OPTIONS.TolX x = 0.25780.2578resnorm =% 求目标函数值lsqcurvefit非线性曲线拟合是已知输入向量xdata和输 出向量ydata,
13、并且知道输入与输出的函数关系 为ydata=F(x, xdata)但不知道系数向量 x。今 进行曲线拟合,求x使得下式成立:22min 11 F(x, xdata) ydata 2 1 (F(x,xdatai) ydatai) x 22 在MATLAB5.x 中,使用函数curvefit解决这类问题。函数 lsqcurvefit珞式 x = lsqcurvefit(fun,x0,xdata,ydata)x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub) x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) x,resnorm
14、 = lsqcurvefit( ) x,resnorm,residual=lsqcurvefit() x,resnorm,residual,exitflag=lsqcurvefit()x,resnorm,residual,exitflag,output=lsqcurvefit()x,resnorm,residual,exitflag,output,lambda = lsqcurvefit( ) x,resnorm,residual,exitflag,output,lambda,jacobian =lsqcurvefit()参数说明: x0为初始解向量;xdata, ydata为满足关系ydat
15、a=F(x, xdata)的数据;lb、ub为解向量的下界和上界"x叽若没有指定界,则lb=, ub=;options为指定的优化参数;fun为拟合函数,其定义方式为:x =lsqcurvefit(myfun,x0,xdata,ydata)其中 myfun 已定义为function F = myfun(x,xdata) F =计算x处拟合函数值fun的用法与前面相同;resnorm=sum(fun(x,xdata)-ydata).八2)即在x处残差的平方和;residual=fun(x,xdata)-ydata )即在 x处的残差;exitflag为终止迭代的条件;output为输出
16、的优化信息;lambda 为解 x处的 Lagrange 乘子;jacobian为解x处拟合函数fun的 jacobian 矩阵。例5-16求解如下最小二乘非线性拟合问题已知输入向量xdata和输出向量ydata ,且 长度都是n,拟合函数为ydata(i) x(1) xdata(i)2 x(2) sin(xdata(i) x(3) xdata(i )3即目标函数为 min 1 (F(x, xdatai) ydata)2x 2 i i其中: F(x, xdata) x(1) xdata2 x(2) sin(xdata) x(3) xdata3初始解向量为x0=0.3, 0.4, 0.1。解:先建立拟合函数文件,并保存为myfun.mfunction F = myfun(x,xdata)F = x(1)*xdata.A2 + x(2)*sin(xdata) + x(3)*xdata.A3;然后给出数据xdata和ydata>>xdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4;>>ydata = 16.5 150.6 26
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械 大学有哪些课程设计
- 机房组网课程设计
- 机床床身铸造课程设计
- 机床夹具课程设计
- 机场跑道课程设计
- 高中生物 物质出入细胞的方式4教案 浙科版必修1
- 机器人控制课程设计
- 机器人matlab仿真课程设计
- 机制制造技术课程设计
- 2024年加工定制合同要点
- 淡雅古典诗词中国风PPT模板
- (完整版)初中数学中考考试大纲
- 施工方案-悬挑平台施工方案
- 基于学科核心素养下提升小学生英语语言能力的路径研究
- 纯燃高炉煤气锅炉吸热特点及运行
- 标准电线平方数和直径一览表
- 工程参建各方责任主体开展质量安全提升行动责任清单
- ISO9000质量管理体系(收藏)
- 1.水轮发电机结构及工作原理介绍
- 英语朗读技巧
- 食堂供餐招标评分表
评论
0/150
提交评论