数模第四次作业:拟合

数模自用,方便队友复制粘贴代码

1.main函数

%第四讲 拟合
%分析近年来人口数据,并且对未来几年人口进行预测



load population.mat
load year.mat

%看起来像是一次,用了指数SSE更小,再用了二次更好
%即二次>指数>一次
%plot(year,population,'o')
%hold on
[fitresult, gof] = createFit(year, population)
hold on
future_year=[2018:1:2022]
p1=12.46
p2=-4.948e+04 
p3=  4.925e+07 
predict_population=p1*future_year.*future_year+p2*future_year+p3
plot(future_year,predict_population,'o','DisplayName','predict_population')
plot(future_year,predict_population,'-','DisplayName','predict_line')

%cftool

2.生成拟合曲线函数及图像代码

function [fitresult, gof] = createFit(year, population)
%CREATEFIT(YEAR,POPULATION)
%  创建一个拟合。
%
%  要进行 '人口数据预测' 拟合的数据:
%      X 输入: year
%      Y 输出: population
%  输出:
%      fitresult: 表示拟合的拟合对象。
%      gof: 带有拟合优度信息的结构体。

%% 拟合: '人口数据预测'[xData, yData] = prepareCurveData( year, population );

% 设置 fittype 和选项。
ft = fittype( 'poly2' );

% 对数据进行模型拟合。
[fitresult, gof] = fit( xData, yData, ft );

% 绘制数据拟合图。
figure( 'Name', '人口数据预测' );
h = plot( fitresult, xData, yData,'o' );
legend( h, 'population', 'population fitting', 'Location', 'NorthWest', 'Interpreter', 'none');

% 为坐标区加标签
xlabel( 'year', 'Interpreter', 'none' );
ylabel( 'population', 'Interpreter', 'none' );
grid on
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迟迟迟迟迟子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值