数据拟合丨人口预测模型

article/2025/11/7 23:02:34

数据拟合丨人口预测模型


路漫漫其修远兮,吾将上下而求索

  下表所列是某地区1971一2000年的人口数据,试给出该地区人口增长的数学模型。

年 份时间变量 t t =年份-1970人口 y/人年 份时间变量 t t =年份-1970人口 y/人
197113381519861634520
197223398119871734507
197333400419881834509
197443416519891934521
197553421219902034513
197663421719912134515
197773434419922234517
197883445819932334519
197993449819942434519
1980103447619952534521
1981113448319962634521
1982123448819972734523
1983133451319982834525
1984143449719992934525
1985153451120003034527

  根据表中的数据,做出散点图,如图所示。
  由图可以看出,人口随时间的变化呈非线性变化,而且存在一个与横坐标轴平行的渐近线,故可以用Logistic曲线模型进行拟合。

  因为Logistic曲线模型的基本形式为

y=1a+bet y = 1 a + b e − t

  所以,只要令 y=1yx=et y ′ = 1 y , x ′ = e − t ,就可以将其转化为直线模型
y=a+bx y ′ = a + b x ′

   下面,用MATLAB进行回归分析拟合计算。回归拟合程序如下:

clear
clc
% 读入人口数据(1971-2000年)
Y=[33815    33981   34004   34165   34212   34327   34344   34458   34498   34476   34483   34488   34513   34497   34511   34520   34507   34509   34521   34513   34515   34517   34519   34519   34521   34521   34523   34525   34525   34527]
% 读入时间变量数据(t=年份-1970)
T=[1    2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30]
% 线性化处理
for t=1:30x(t)=exp(-t);y(t)=1/Y(t);
end
% 计算,并输出回归系数B,即计算回归方程 y'=a+bx' 中的a和b的值
c=zeros(30,1)+1;
X=[c,x'];%相当于30个方程组,求解a和b 的值.
B=inv(X'*X)*X'*y'
for i=1:30,
% 计算回归拟合值    z(i)=B(1,1)+B(2,1)*x(i);
% 计算离差s(i)=y(i)-sum(y)/30;
% 计算误差    w(i)=z(i)-y(i);
end
% 计算离差平方和S
S=s*s';
% 回归误差平方和Q
Q=w*w';
% 计算回归平方和U
U=S-Q;
% 计算,并输出F检验值
F=28*U/Q
% 计算非线性回归模型的拟合值
for j=1:30,Y(j)=1/(B(1,1)+B(2,1)*exp(-j));
end
% 输出非线性回归模型的拟合曲线(Logisic曲线)
plot(T,Y,'r*')

  运行结果:
这里写图片描述


  当数据较多时,从Excel中读取数据:

clear
clc
Y=xlsread('D:\file.xlsx',1,'B1:B30');%读取数据
Y=Y';
T=xlsread('D:\file.xlsx',1,'A1:A30');%读取数据
T=T';
for t=1:30,x(t)=exp(-t);y(t)=1/Y(t);
end
c=zeros(30,1)+1;
X=[c,x'];
B=inv(X'*X)*X'*y'%B=inv(X'*X)*X'*y'for i=1:30,z(i)=B(1,1)+B(2,1)*x(i);s(i)=y(i)-sum(y)/30;w(i)=z(i)-y(i);
end
S=s*s';
Q=w*w';
U=S-Q;
F=28*U/Q
for j=1:30,Y(j)=1/(B(1,1)+B(2,1)*exp(-j));
end
plot(T,Y)

  运行结果:
这里写图片描述


http://chatgpt.dhexx.cn/article/wCMkdMFZ.shtml

相关文章

人口预测模型及matlab代码

目录 题目 1949年—1994年我国人口数据资料如下: 年 份 xi 49 54 59 64 69 74 79 84 89 94 人口数 yi 5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 建模分析我国人口增长的规律, 预报1999年我国人口数(亿)。 1. 在坐标系上作观测数据的散点…

人口预测模型

预测人口模型 利用灰色预测模型预测人口 应用 灰色预测模型(Gray Forecast Model)是通过少量的、不完全的信息,建立数学模型并做出预测的一种预测方法。是处理小样本(4个就可以)预测问题的有效工具,而对…

基于logistic模型,GM模型和Leslie模型全国人口预测

目录 摘要....................................................................................................................... 1 一 问题重述......................................................................................................... 1 1.1 …

数学建模——人口预测模型

人口预测模型 多项式拟合假设特点代码实现代码实现思路代码 BP神经网络特点代码实现实现思路代码 Logistic模型特点代码实现原理代码 多项式拟合 假设 把人口增长看做是一个多项式函数人口增长没有限制,可以一直增长 特点 已有数据拟合的很好,不论数…

uC/OS任务创建函数OSTaskCreate ()参数详解

要使用 uC/OS 的任务必须先声明任务控制块和创建任务,调用 OSTaskCreate () 函数可以创建一个任务。OSTaskCreate () 函数的信息如下表所示。

UCOSIII os_task函数

认识任务管理的函数 建立任务:OSTaskCreate()堆栈检验:OSTaskStkChk()删除任务:OSTaskDel()改变任务优先级:OSTaskChangePrio()挂起任务:OSTaskSuspend()恢复任务:OSTaskResume() 任务可以是一个无线的循…

[uCOS/RTOS]uC/OS-II中的任务堆栈大小检测

在uC/OS-II系统中,创建任务的时候除了需要配置任务的优先级以外,还需要对任务堆栈大小进行分配。而对于单片机这种RAM并不是非常大的微控制器来说,RAM显得格外珍贵,如果任务堆栈分配大了,会导致RAM不够用,分…

FreeRTOS-Task

Task FreeRTOS中Task为调度单位,是独立的运行实例,具有自己的堆栈空 间。Task通常是无限循环执行,不允许以任何方式退出实现函数(return 语句或者运行结束)。如果Task真的不需要了,需要显式的调用delete 函…

AUTOSAR OS Introduction -- Part 2(Task Property)

Event Event 主要用于为Extended Task 提供多个同步点,每个Event 可以关联多个Task Event Trigger condition 显示调用SetEvent通过Alarm TriggerCallback & OS API WaitEvent 只要表达式中任意一个EVENT 被收到,Task state则切换至Ready, 等待调度表按照优先级进行…

UCOS-Ⅲ查看任务堆栈空间:OSTaskStkChk()函数

UCOS-Ⅲ查看任务堆栈空间:OSTaskStkChk()函数 文章目录 前言一、准备工作二、使用步骤1.创建堆栈检测任务2.在头文件os_cfg.h开启宏OS_CFG_STAT_TASK_STK_CHK_EN3.在堆栈检测任务使用OSTaskStkChk()函数 三、结果 前言 硬件的RAM资源有限,UCOSⅢ提供了一…

【UCOSIII操作系统】任务篇(1)创建任务

UCOSIII操作系统 UCOSIII操作系统——任务篇(1)创建任务一、UCOSIII——任务 简介二、创建任务流程1、定义任务栈2、定义任务控制块TCB3、定义任务主体函数4、创建任务 三、任务的状态 UCOSIII其他内容导航不迷路 UCOSIII操作系统-简介 【UCOSIII操作系统…

FreeRTOS中taskENTER_CRITICAL()和taskEXIT_CRITICAL()函数运用

以下转载自安富莱电子: http://forum.armfly.com/forum.php 临界段 代码的临界段也称为临界区,一旦这部分代码开始执行,则不允许任何中断打断。为确保临界段代码 的执行不被中断,在进入临界段之前须关中断,而临界段代…

OSTaskCreateExt()建立任务

ucosII创建任务的硬性要求: 1.任务必须被创建在多任务启动前或运行的任务中 2.任务不能在ISR(中断)中创建 3.任务必须在死循环中,且不能有返回 OSTaskCreateExt()建立任务 NT8U OSTaskCreateExt (void (*task)(void *pd), …

赢在微点答案专区英语_英语u校园读写2答案unit3,u校园新标准大学英语视听说3单元测试答案搜题公众号...

英语u校园读写2答案unit3,u校园新标准大学英语视听说3单元测试答案搜题公众号,u校园大学英语读写4第一单元答案查题APP更多相关问题A.婴儿期 B.幼儿期 C.学龄前期 D.学龄期 E.青春期关于自我,正确的说法是(…

新视野大学英语视听说第三版答案

Unit 1 Unit 2 Unit 3 Unit 4 Unit 5 Unit 6 Unit 7 Unit 8

视听说教程(第三版)4 quiz 1

视听说教程(第三版)4 quiz 1 Reading Comprehension Section A Passage One Questions 1 to 5 are based on the following passage. We all want to raise kids who are happy and successful, but we often mistakenly think that money is the key …

welearn 视听说1-4

词汇题(55道) 1. You should carefully think over_____ the manager said at the meeting. A. that B. which C. what D. whose 1.选C,考察宾语从句连接词,主句谓语动词think over后面缺宾语,后面的宾语从句谓语动…

使用RemObjects Pascal Script

摘自RemObjects Wiki 本文提供RemObjects Pascal Script的整体概要并演示如何创建一些简单的脚本. Pascal Script包括两个不同部分: 编译器 (uPSCompiler.pas)运行时 (uPSRuntime.pas) 两部分彼此独立.可以分开使用,或通过TPSScript 控件使用他们,这个控件定义在uPSComponent.p…

搭建一个简单的Pascal脚本开发环境

使用innosetup进行打包,涉及到需要编写一些Pascal脚本,所以了解了下Pascal的相关语法。 这里主要介绍如何搭建一个简单的Pascal开发环境。 一、Free Pascal Free Pascal(全称 FPK Pascal)是一个32位和64位专业Pascal编译器。它…

pascal编程语言介绍

Pascal是一种过程式编程语言,由Niklaus Wirth于1968年设计并于1970年发布,并以法国数学家和哲学家Blaise Pascal的名字命名。Pascal可以运行在多种平台上,例如Windows、Mac OS和各种版本的UNIX/Linux。[3] 软件名称 Pascal 软件平台 Windows、…