5.利用Matlab编程进行非线性回归分析.doc

§5. 利用Matlab编程计算非线性回归模型

——以Logistic曲线为例

1.原始数据

下表给出了某地区1971—2000年的人口数据(表1)。试分别用Matlab和SPSS软件,对该地区的人口变化进行曲线拟合。

表1 某地区人口变化数据

年份时间变量t=年份-1970人口y/人1971133 8151972233 9811973334 0041974434 1651975534 2121976634 3271977734 3441978834 4581979934 49819801034 47619811134 48319821234 48819831334 51319841434 49719851534 51119861634 52019871734 50719881834 50919891934 52119902034 51319912134 51519922234 51719932334 51919942434 51919952534 52119962634 52119972734 52319982834 52519992934 52520003034 527根据上表中的数据,做出散点图,见图1。

图1 某地区人口随时间变化的散点图

从图1可以看出,人口随时间的变化呈非线性过程,而且存在一个与横坐标轴平行的渐近线,故可以用Logistic曲线模型进行拟合。

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

所以,只要令:,就可以将其转化为直线模型:

下面,我们分别用Matlab和SPSS软件进行回归分析拟合计算。

2.用Matlab编程进行回归分析拟合计算

源程序(Nonlinear-Regression-Model.m),如下:

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:30,

x(t)=exp(-t);

y(t)=1/y(t,1);

end

% 计算,并输出回归系数B

c=zeros(30,1)+1;

X=[c,x'];

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)

上述程序运行后,输出

(1)输出回归系数B及F检验值如下:

B =

1.0e-004 *

0.2902

0.0182

F =

47.8774

(2)输出Logistic模型拟合曲线

《计量地理学》(徐建华,高等教育出版社,2005)配套实习指导

27

matlab 进行非线性回归,5.利用Matlab编程进行非线性回归分析.doc相关推荐

  1. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

  2. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf

    利用matlab进行灰色预测,灰色预测matlab程序,灰色预测模型matlab,matlab灰色预测,matlab灰色预测代码,matlab灰色预测工具箱,灰色预测的matlab程序,matlab灰 ...

  3. matlab文件批量命名,利用MATLAB批量对文件重命名

    利用MATLAB批量对文件重命名 tags: MATLAB 科研软件 序 窃·格瓦拉 没paper,实验肯定要做啊,不做就毕不了业 . 编程这方面,编程是不可能编程的,这辈子不可能编程的 . pape ...

  4. matlab 医学断层图像,利用MATLAB实现CT断层图像的三维重建

    第 13 卷 第 2期 CT 理论与应用研究 Vol.13No.2 2004 年 5 月(24~29) CT Theory and Applications May, 2004 *收稿日期:2004- ...

  5. 利用matlab实现h 控制,利用Matlab实现H∞控制

    利用Matlab实现H∞控制 原文:H∞ Control in Matlab(点击下载) H∞控制器设计原理容易理解,难点在于编程.这里简单介绍Matlab里面几个相关函数的用法,希望能帮助你设计第一 ...

  6. 基于matlab的铣床运动,利用Matlab/Simulink仿真数控机床的动态轨迹误差

    利用Matlab/Simulink仿真数控机床的动态轨迹误差 囗陈罡囗胡旭晓囗张伟2 1.浙江纺织服装学院宁波3152H 2.浙江大学现代制造工程研究所杭州310027 摘要:探讨数控机床高速加工中动 ...

  7. matlab分析ct图像,利用MATLAB实现CT断层图像的三维重建.PDF

    利用MATLAB实现CT断层图像的三维重建 第 13 卷 第2 期 CT 理论与应用研究 Vol.13No.2 2004 年5 月 24~29 CT Theory and Applications M ...

  8. matlab或_如何利用MATLAB计算圆周率

    圆周率是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数.π也等于圆形之面积与半径平方之比.是精确计算圆周长.圆面积.球体积等几何形状的关键值. MATLAB中的表 ...

  9. matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别

    利用MATLAB实现最小错误率贝叶斯判别 摘要:matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单.易用的用户环境,尤其适合矩阵数据的计算处理.根据matlab的特点,将其与模式识别 ...

最新文章

  1. linux日志手机,通过 shell 脚本 自动发送 log日志 文件内容 到手机邮箱
  2. 在手机计算机打数字能监控手机吗,注意了!如果屏幕上出现这4种现象,你的手机可能已被监视...
  3. Linux学习建议 学习测试环境标准化配置
  4. Android 渗透测试学习手册 第一章 Android 安全入门
  5. 使用CSS修改HTML5 input placeholder颜色
  6. C++ ------------------------- 文件的复制
  7. 【Python】any() all() 用法
  8. opencv提供的带参数例程
  9. 用java实现楼层导航_楼层导航
  10. 国产CPU性能大盘点 单核性能谁最强
  11. 数学建模(三)SARS的传播(03年A题)
  12. RealFlow在线教程翻译(5)——Shattered Glass (破碎的玻璃杯)
  13. GitHub 开源推荐 | mpv - 一个免费、开源、跨平台的多媒体播放器
  14. python怎么算一元二次方程_Python实现求解一元二次方程的方法示例
  15. Hi3512的IPCAM开发
  16. 谷歌浏览器导出导入插件
  17. redis做浏览历史数据
  18. 通用爬取文章及图片导出到Word主程序代码
  19. Google服务和软件大全
  20. 站在招聘者角度看面试 | 掘金技术征文

热门文章

  1. 用生成对抗网络,将普通图片转换为梵高大作
  2. 持续集成 -- Jenkins + Slack 配置
  3. 基于mapnik的地图符号编辑器功能介绍
  4. 《闲扯Redis九》Redis五种数据类型之Set型
  5. python项目--O2O优惠券线下使用情况数据分析
  6. 【海量数据学院】DBA学习方法论系列之:明确的学习目标
  7. Excel无法响应,挂起,冻结或停止工作
  8. python下载某网站收费文档(一)——配合fiddler半自动版
  9. 图像滤镜处理算法:灰度、黑白、底片、浮雕
  10. 最适合0基础入门的5种编程语言