最小二乘法曲线拟合(代码环境:matlab)_zZzzzZ_ZzzZzi的博客-程序员ITS203_最小二乘法曲线拟合代码

技术标签: matlab  最小二乘法曲线拟合  数值分析  

题目一:

1.用表1-1中的世界人口统计数值估计1980年的人口,求最佳最小二乘法数值估计:
表 1-1:

人口
1960 3 039 585 530
1970 3 707 475 887
1990 5 281 653 820
2000 6 079 603 571

(a) 直线;(b) 抛物线。它们都通过这些数据点,并求这些拟合的RMSE。在每一种情形下,估计1980年的人口。

实验原理:

在这里插入图片描述在这里插入图片描述
(a) 直线估计1980年的人口结果及RMSE分析
matlab代码:

x=[1960 1970 1990 2000];
y=[3039585530 3707475887 5281653820 6079603571];
c=polyfit(x,y,1);
xi=1960:10:2000;
yi=polyval(c,xi)
plot(x,y,'*',xi,yi);
n=length(yi);
SE=0;
j=0;
for k=1:n
    if k<=2
        SE=SE+(yi(1,k)-y(1,k))*(yi(1,k)-y(1,k));
    end
    if k>3
        j=k-1;
        SE=SE+(yi(1,k)-y(1,j))*(yi(1,k)-y(1,j));
    end
end
RMSE=sqrt(SE/4)

结果:
在这里插入图片描述
在这里插入图片描述
(b) 抛物线估计1980年的人口的结果及RMSE分析

matlab代码:

x=[1960 1970 1990 2000];
y=[3039585530 3707475887 5281653820 6079603571];
c=polyfit(x,y,2);
xi=1960:10:2000;
yi=polyval(c,xi)
plot(x,y,'*',xi,yi);
n=length(yi);
SE=0;
j=0;
for k=1:n
    if k<=2
        SE=SE+(yi(1,k)-y(1,k))*(yi(1,k)-y(1,k));
    end
    if k>3
        j=k-1;
        SE=SE+(yi(1,k)-y(1,j))*(yi(1,k)-y(1,j));
    end
end
RMSE=sqrt(SE/4)

结果:
在这里插入图片描述
在这里插入图片描述

题目二:

世界石油产量以每天百万桶计,如表1-2所示,求最佳最小二乘法数值估计:

表1-2:

桶/天(×10^6) 桶/天(×10^6)
1994 67.052 1999 72.063
1995 68.008 2000 74.669
1996 69.803 2001 74.487
1997 72.024 2002 74.065
1998 73.400 2003 76.777

(a) 直线;(b) 抛物线; 立方曲线。它们都通过10个数据点。并求这些拟合的RMSE。

(a) 直线估计世界石油产量2010年的生产水平,其估计结果及RMSE分析;

matlab代码:

x=[1994,1995,1996,1997,1998,1999,2000,2001,2002,2003];
y=[67052000 68008000 69803000 72024000 73400000 72063000 74669000 74487000 74065000 76777000];
c=polyfit(x,y,1);
xi=1994:1:2010;
yi=polyval(c,xi);
plot(x,y,'*',xi,yi);
 
RMSE=0;
SE=0;
for k=1:10
SE=SE+(yi(k)-y(k))*(yi(k)-y(k));
end
RMSE=sqrt(SE/10)

结果:
在这里插入图片描述
在这里插入图片描述
(b) 抛物线估计世界石油产量2010年的生产水平,其估计结果及RMSE分析;

matlab代码:

x=[1994,1995,1996,1997,1998,1999,2000,2001,2002,2003];
y=[67052000 68008000 69803000 72024000 73400000 72063000 74669000 74487000 74065000 76777000];
c=polyfit(x,y,2);
xi=1994:1:2010;
yi=polyval(c,xi);
plot(x,y,'*',xi,yi);
 
RMSE=0;
SE=0;
for k=1:10
SE=SE+(yi(k)-y(k))*(yi(k)-y(k));
end
RMSE=sqrt(SE/10)

结果:
在这里插入图片描述
在这里插入图片描述
立方曲线估计世界石油产量2010年的生产水平,其估计结果及RMSE分析;

matlab代码:

x=[1994,1995,1996,1997,1998,1999,2000,2001,2002,2003];
y=[67052000 68008000 69803000 72024000 73400000 72063000 74669000 74487000 74065000 76777000];
c=polyfit(x,y,3);
xi=1994:1:2010;
yi=polyval(c,xi);
plot(x,y,'*',xi,yi);
 
RMSE=0;
SE=0;
for k=1:10
SE=SE+(yi(k)-y(k))*(yi(k)-y(k));
end
RMSE=sqrt(SE/10)

结果:
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/uilldo/article/details/89484447

智能推荐

在PHP使用kindeditor_chengtou2663的博客-程序员ITS203

https://code.google.com/p/kindeditor/downloads/list ),php-5.2.14+Zend Framework] 1.简介 KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人...

Python递归函数应用之计算阶乘_xpengji的博客-程序员ITS203_python递归求阶乘

阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。1. 递归方法def fact(n): if n == 0: return 1 else

程序员的半生_无水一痕_Lee的博客-程序员ITS203_第一个是找到自己的爱好,就是累的时候,玩它会放松自己

人的一生很短,光阴几十载。三十岁,也许是人生的分水岭,亦或是前半生与后半生的里程碑。        三十岁之前,需要做到六件事,写下来,不断勉励自己。        第一个是找到自己的爱好,就是累的时候,玩它会放松自己。第二是有一份自己喜欢的不错的工作,能够养活自己,毕竟三十岁以后不光是为自己活者。第三是读一百本书,读书使人进步,这个道理大家都懂。第四是做一件需要时间,需要恒心的事,这件事

onPause()与onStop()与onDestory()与finish();stopped状态与killed状态_zerozero1的博客-程序员ITS203_finsh 方法 和onpause

手机内存被其他程序征用时,stopped的activity首先被杀死;无论什么场景导致activity停止,系统始终会在调用onStop()方法前调用onPause();finish()方法会调用onDestory()方法,finish()方法用于结束一个activity的生命周期,而onDestory()方法则是Activity的一个生命周期,作用是在一个Activity销毁前,Andr...

MySQL 命令行工具之 mysqldump 深入研究_aecuhty88306453的博客-程序员ITS203

mysqldump 是MySQL的一个命令行工具,用于逻辑备份。可以将数据库和表的结构,以及表中的数据分别导出成:create database, create table, insert into的sql语句。当然也可以导出 存储过程,触发器,函数,调度事件(events)。不管是程序员,还是DBA都会经常使用的一个工具。1. mysqldump --helpmysqldump...

随便推点

Flink内核源码解析系列(十八):TaskManager启动_Better~Me的博客-程序员ITS203

上一篇文章《Flink内核源码解析系列(十七):JobMaster向ResourceManager申请slot》讲到:JobMaster向Resource Manager申请资源,Yarn Resource Manger会根据申请资源的多少去启动对应的TaskManger。在讲之前,先说下,在1.12版本前,TaskManger的进程名字叫TaskMangerRunner,1.12后叫TaskExecutorRunner。实际上,TaskExecutorRunner也是调用TaskMangerRunner

SCRM项目执行全案:如何用小程序开启移动端SCRM营销新天地?_电商宝官方的博客-程序员ITS203

关键词:自主管控引流数据 | 多渠道推广+全员KOL | 后台管理效率提升【项目背景】天府明宇商旅是一家亚洲新锐商务及旅游服务提供商,旨在为新世代旅行者创造生命灵感体验,其旗下品牌的酒店与度假村已遍布中国、泰国、法国、斐济的知名商务与旅游目的地。天府明宇商旅与WP合作,推进为期近2个月的小程序+SCRM落地项目,期望增加在线销售渠道,提升销售量;使用...

17《Go语言入门》面向对象和结构体_干志雄的博客-程序员ITS203_go class

这是我纯手写的《Go语言入门》,手把手教你入门Go。源码+文章,看了你就会????,此处应有掌声????????????!文章中所有的代码我都放到了github.com/GanZhiXiong/go_learning这个仓库中。在看文章的时候,对照仓库中代码学习效果更佳!目录Go是不是面向对象编程语言?Go的类(class)结构体定义实例化结构体初始化结构体使用“键值对”初始化结构体使用多个值的列表初始化结构体结构体成员只能包含结构体的指针类型使用结构体的指针作为函数参数支持????Go是不是面向对

洛谷【P3437】[POI2006]TET-Tetris 3D_aga28832的博客-程序员ITS203

浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html浅谈标记永久化:https://www.cnblogs.com/AKMer/p/10137227.html题目传送门:https://www.luogu.org/problemnew/show/P3437位置线段树套位置线段树,支持区间询问最大值和区间取\(max\)操作。...

armv6,armv7 ,armv7s 的整理笔记_lyhuzhu的博客-程序员ITS203

armv 是指令集的意思,偏硬件。目前iphone5支持armv7s。The iPhone 5 will ship with and only run iOS 6.0. To coincide with the launch of iOS 6.0, Apple has seeded developers with a newer version of its development

Python:Too many open files_云梦九章的博客-程序员ITS203_python too many open files

这个的原因是系统线程的限制。在linux下显示线程限制数目$ ulimit -n系统默认值是1024,更改这个限制,用下述命令:$ ulimit -n 2048将线程限制数目增加到2048,再运行程序不报错。...

推荐文章

热门文章

相关标签