linear_fit.m

来自「用matlab实现对已知数据的非线性拟合及数据预测」· M 代码 · 共 31 行

M
31
字号
clear all;
close all;
%数据输入
people=[13.2, 26.8, 33.2, 34.2, 48.4, 66.2, 71.4, 95,113.6, 144.4, 177.4, 209, 249.2, 295.6, 342.2, 377.6, 459, 491.4, 522.2, 540.2, 558.4];
time=1800:10:2000;
log_people=log(people);
%绘制人口增长曲线
figure;
plot(time,people);
title('人口增长曲线');
xlabel('时间(年)');
ylabel('人口(百万)');
%使用线性拟合
pro=polyfit(time,log_people,1);%r=斜率,log_N0=截距
r=pro(1,1)
log_N0=pro(1,2)
%计算后50年数据
time_future=2010:10:2050;
people_future=zeros(1,5);
for k=1:1:5
    people_future(1,k)=exp(log_N0+r*time_future(1,k));
end
%绘制新图
new_people=[people,people_future];
new_time=[time,time_future];
figure;
plot(new_time,new_people);
title('人口增长曲线(线性拟合估计2010至2050年)');
xlabel('时间(年)');
ylabel('人口(百万)');
people_future%显示估计的人口值

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?