09第九讲 数据拟合幻灯片.pptVIP

  • 16
  • 0
  • 约1.03万字
  • 约 58页
  • 2016-12-05 发布于浙江
  • 举报
说明:拟合与统计回归 区别与联系 作业与练习 则可看成是线性方程,用 polyfit命令计算得: 模型二:指数增长模型 可变为 Y A = + BX a=2.33, b=0.0179 则所求模型为: 程序如下: x=[1949 1954 1959 1964 1969 1974 1979 1984 1989 1994]; y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 ]; a=polyfit(x,y,1); x1=[1949:10:1994]; y1=a(2)+a(1)*x1; b=polyfit(x,log(y),1); y2=exp(b(2))*exp(b(1)*x1); plot(x,y,*) hold on plot(x1,y1,--r) hold on plot(x1,y2,-k) legend(原曲线,模型一曲线,模型二曲线) 结论的比较如下表: 年 份 xi 1949 1954 1959 1964 1969 1974 1979 1984 1989 1994 人口数 yi 5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 模型一值 5.24 5.97 6.70 7.43 8.16 8.90 9.62 10.36 11.09 11.82 误 差 0.16 0.03 0.00 -0.43 -0.06 0.20 0.18 -0.06 0.01 -0.02 模型二值 5.55 6.06 6.62 7.23 7.90 8.64 9.44 10.31 11.26 12.31 误差 -0.15 -0.06 0.08 -0.23 0.20 0.46 0.36 -0.01 -0.13 -0.51 结果分析: (1) Q1 = 0.2915 0.7437 = Q2 . 线性模型更适合中国人口的增长。 (2) 预报:1999 年 12.55 亿,13.43 亿 (3) 统计年鉴: 2005 年 13.3 亿, 2010 年 14 亿 模型 I 2005 年13.43 亿, 2010 年14.16 亿 模型 II 2005 年14.94 亿, 2010 年 16.33 亿 1. lsqcurvefit 已知数据点: xdata=(xdata1,xdata2,…,xdatan), ydata=(ydata1,ydata2,…,ydatan) 用MATLAB作非线性最小二乘拟合 Matlab的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题. lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T 中的参变量x(向量),使得 输入格式为: (1) x = lsqcurvefit (‘fun’,x0,xdata,ydata); (2) x =lsqcurvefit (‘fun’,x0,xdata,ydata,options); (3) x = lsqcurvefit (‘fun’,x0,xdata,ydata,options,’grad’); (4) [x, options] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); (5) [x, options,funval] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); (6) [x, options,funval, Jacob] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); fun是一个事先建立的定义函数F(x,xdata) 的M-文件, 自变量为x和xdata 说明:x = lsqcurvefit (‘fun’,x0,xdata,ydata,options); 迭代初值 已知数据点 选项见无 约束优化 lsqnonlin用以求含参量x(向量)的向量值函数 f(x)=(f1(x),f2(x),…,fn(x))T 中的参量x,使得 最小。 其中 fi(x)=f

文档评论(0)

1亿VIP精品文档

相关文档