拟合


  • 拟合是已知点列,从整体上靠近它们,不要求曲线经过每个样本点,但要保证误差足够小
  • 已知一组数据,寻求一个y=f(x),使f(x)在某种准则下与所有数据点最为接近
  • 拟合的准则是使yi与f(xi)的距离的平方和最小,称为最小二乘准则

 

若函数对参数线性(参数仅以一次方形式出现,且不能乘以或除以其他任何参数,并不能出现参数的复合函数形式),则可以用拟合优度来衡量拟合的好坏,其值越接近于1,说明拟合的越好

若不能用拟合优度,就用SSE的大小来衡量,SSE越小越好

Matlab拟合工具箱:Curve Fitting Tool

输入命令cftool

读入x、y的数据,选择合适的函数形式进行拟合

函数选择原则:

当散点图走势是直线,优先选择线性拟合,评价指标为SSE和R^2,SSE越小、R^2越大越好

其他的函数选择条件是SSE越小越好,函数形式应当越简单越好

例题:

year = 1790:10:2000;
population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
plot(year,population,'o')
cftool  % 拟合工具箱
% 点击Fit Options,修改非线性最小二乘估计法拟合的初始值(StartPoint), r修改为0.02,xm修改为500 
% Generate Code生成createFit.m文件
% 复制第一句的function后边语句
% function [fitresult, gof] = createFit(year, population)
[fitresult, gof] = createFit(year, population)
t = 2001:2030;
xm = 342.4;   
r =  0.02735;
predictions = xm./(1+(xm./3.9-1).*exp(-r.*(t-1790)));  % 计算预测值(写成点乘/点除)
figure(2)
plot(year,population,'o',t,predictions,'.')  % 绘制预测结果图

预测结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM