最小二乘法编程实现方法
1 基于MATLAB编程的最小二乘法
例如,已知某一热敏电容的温度T和电容C的实测数据如表所示:
热敏电容的温度T和电容C的实测数据
T/℃ |
50 | 60 | 70 | 80 | 90 | 100 | 109 | 119 |
C/pF |
808 | 733 | 659 | 584 | 509 | 435 | 368 | 293 |
通过大体描绘这一组数据,图形基本上为一次曲线,因此,我下面用最小二乘法一次完成算法来完成曲线拟合。
设线性回归方程为:C=aT+b ,运行MATLAB程序,利用polyfit(x,y,n)函数即可求出参数a和b。
MATLAB源程序如下:
Clear all;
x=[50 60 70 80 90 100 109 119]; %测得的温度数据
y=[808 733 659 584 509 435 368 293]; %测得的电容数据
p=polyfit(x,y,1) %调用拟合函数
x1=45:0.05:125; %设置采样区间,采样点
y1=polyval(p,x1); %计算多项式在x1处的值
plot(x,y,'*r',x1,y1,'-b') %绘制图形
运行结果为p = 1.0e+003 *(-0.0075) 1.1809
MATLAB软件环境下的仿真结果表明,用最小二乘一次拟合算法可迅速得出被拟合的线性回归方程为C=1.0e+003 *(-0.0075)T+1.1809
从运算结果来看,测量点与拟合直线基本吻合,误差极小。因此,可以认为最小二乘法的建模方法是切实可行的。可以看出,传感器数学模型的建立关键在于拟合多项式中各系数和阶次的确定。基于最小二乘法的传感器建模方法不但可以同时辨识传感器数学模型的阶次和系数,而且具有较高的计算精度,通用性好,具有工程实际意义。
2 基于Excel图表法的最小二乘法
最小二乘法是以误差理论为依据,在诸数据处理方法中,误差最小,精确性最好。然而在实际应用中因其计算比较复杂,我们很少采用这一方法。随着计算机的普及,运用最小二乘法进行数据处理有了有力的工具,寻找简便易学、容易掌握的计算方法是解决运用最小二乘法进行数据处理的关键。Excel中有多种工具可用于最小二乘法的计算,其中的“函数”、“图表向导”、“数据分析”在处理数据时各有特点,用于最小二乘法计算时不需要编写程序,处理数据非常简便。
例如,温度变化时,测得某铜线的电阻,数据记录在下表中。
T/℃ |
25.0 |
30.0 |
35.0 |
40.0 |
45.0 |
50.0 |
55.0 |
60.0 |
65.0 |
70.0 |
R/Ω |
1.579 |
1.611 |
1.639 |
1.670 |
1.698 |
1.727 |
1.758 |
1.787 |
1.814 |
1.846 |
2.1 运用Excel中的“函数”进行计算
Excel中的线性回归拟合方程的斜率函数SLOPE、截距函数INTERCEPT以及相关系数函数CORREL可用来确定线性方程y=ax+b的a、b两个系数和计算相关系数以判别线性回归是否合理。
打开Excel表格,将T、R的数据按列对应输入到Excel表格中
在相邻两个空白表格内(如C2和D2),分别输入说明和函数。如在C2中输入说明“a= ”;在D2中输入函数“=slope(B2:B11,A2:A11)”,其中A2:A11、B2:B11分别给出自变量、因变量的对应位置,回车即显示斜率a=0.005887273。同样可在C3、D3空白格内分别输入说明“b=”;函数“=intercept(B2:B11,A2:A11)”,回车后,显示截距b=1.433254545。同理,可以得到相关系数r=0.999925232
2.2 运用Excel中的“图表向导”进行计算
“图表向导”是Excel中绘制图表的工具,提供有十多种“图表类型”。其中的“XY散点图”可用来进行回归分析,在生成一张数据分析图时,并能方便地得到拟合线方程和相关系数的平方。
单击“插入”菜单中的“图表”,选中“XY 散点图”;在对话框“步骤之二”的“数据区域”中输入存放y轴数据的单元格区域B2:B11;在“系列”选项的“X 值( X)”中输入存放x轴数据的单元格区域A2:A11;在对话框“步骤之三”中确定图形的名称、坐标轴的标题以及网格线 ,在确定图表的插入位置后就完成实验数据分布图 。选中所作的图表,在工具栏单击“图表”中的“添加趋势线”,在弹出的对话框选项中“类型”选择“线性”;“选项”选中“显示公式”和“显示R平方值” 的复选框,便可得到拟合线方程和相关系数的平方。如图所示 ,拟合曲线方程为y=0.0059x+1.4333及相关系数的平方 R^2=0.9999
结果分析:
从上面Excel的计算方法中可看出:利用“函数”运算方法简单,但需要记住函数名称 ,缺点是没有图表显示;“图表向导”方法根据对话框一步一步操作即可完成,数据和图表都能显示 , 缺点是运算步骤较多。最小二乘法还可以利用Excel中“数据分析”工具完成。
参考文献:
[1] 白云等. 基于最小二乘法的数据融合技术应用[J]. 技术与创新管理, 2008, 29(2):200-202.
[2 唐曙光. 基于Excel的实验数据最小二乘法计算探讨[J].大学物理实验,2003,16(4):43-45
最小二乘法编程实现方法相关推荐
- 7种从头开始免费学习编程的方法
我们曾在一篇文章中讨论过不会编程算不算是文盲的问题,虽然有人认为这样有点说过头,但同时也不可否认如今编程确实显得越来越重要.比如作为设计师,懂一些编程可能会帮你更好地理解自己工作内容:而如果你想从头开 ...
- c语言soket编程,C语言socket编程使用方法
C语言socket编程使用方法 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.以 ...
- 目前计算机辅助数控编程的方法,数控编程试题(附自己整理的答案)
有福同享,有难同当 小博赠言 一.填空题 1. 数控机床大体由 输入装置.数控装置.伺服系统.机床本体 四个部分组成. 2. 数控机床按控制系统功能特点分类分为:开环控制数控机床.闭环控制数控机床. ...
- Enterprise Library 2.0 技巧(4):如何用编程的方法来配置Logging Application Block
在本系列的技巧(1)和技巧(2)中分别介绍了使用外部配置文件,使用数据库记录配置信息两种方法,不知道大家有没有想过不使用任何配置文件,也不使用数据库而直接用编程的方法来实现呢?本文将会展示如何使用编程 ...
- 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!
程序员要精通一门语言,还是要掌握多门语言? 对于这个问题,公说公有理,婆说婆有理. 技术更新太快,精通一门编程语言已经实属不易,又怎么好意思说精通多门语言呢? 不过呢,当你精通一门语言同时,涉猎一下其 ...
- python计时器程序设计总框图_怎么用python编写计时器?这个编程的方法你一定不要错过...
[摘要]现在学习python的人都在思考,怎么用python编写计时器?这个编程的方法你一定不要错过,环球网校小编建议大家可以试着自己编写功能性代码,毕竟实践出真知,所以你一定要知道怎么用python ...
- 数控机床手动编程能否用计算机验证,数控编程的方法有几种_数控编程的步骤...
什么是数控编程 数控机床所以能加工出不同形状.不同尺寸和精度的零件,是因为有程编人员为它编制不同的加工程序.所以说数控编程工作是数控机床使用中最重要的一环.它对于产品质量控制有着重要的作用.数控编程技 ...
- 将c语言程序转化成伪代码,「第9篇」「做编程题方法3」「来点伪代码」
学C语言是痛苦的,用C语言做编程题更加痛苦.这几天我看很多同学拿到一道编程题就在问"这道题怎么做?"."没思路呀没思路"."求大神帮忙看看" ...
- 5种让你入门免费学习编程的方法
对于一个懂计算机的人来说,不会编程算不算是文盲呢?->是,觉得有点过了,但是不可否认如今编程确实显得越来越重要,作为入门编程的新手,很多人很茫然,不知到从那里开始.下面介绍几种让你入门免费学习编 ...
最新文章
- PHP curl 实现RESTful PUT DELETE 实例
- category、protocol、delegate总结
- Informix存储过程
- Encapsulate Collection(封装集合)
- 数据结构—链表-单链表基本操作实现
- note同步不及时 one_Win10上OneNote 2016同步老出问题?解决方法送上
- golang的指针和切片
- 通俗的解释交叉熵与相对熵
- 加一条平行于y轴的直线_Hepco海普克应用案例—直线V型滚轮导轨广泛应用于多轴机械手...
- SpringBoot工作原理
- 原生拦截WebView页面下载链接跳转空白页问题
- 三角函数各个公式推理及证明
- [IOI2018]组合动作 题解
- 磁盘管理之 raid 文件系统 分区
- java 解决倒水问题
- Makefile 文件的编写
- 中国合伙人及致青春电影名言
- 大数据基石python学习_资源 | 177G Python/机器学习/深度学习/算法/TensorFlow等视频,涵盖入门/中级/项目各阶段!...
- 有八个Led接在P1口。
- word转换为PDF后图片变模糊不清晰怎么办?亲测有效解决办法