最小二乘法在实际中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高等代数小论文
“最小二乘解”的应用
作者:北京交通大学思源
二零一四年五月二十九日
摘要
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻
找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。
本论文探讨了利用最小二乘法在实际生活中和物理中的应用。分别选取两个应用范例,对数据进行描点、利用Excel作图,进行线性拟合,并使用我们编写的C语言程序进行验证,给出问题的解。
关键词:最小二乘法、编程、应用。
一、引例
(一)、最小二乘解在生活中的应用
例:测定刀具磨损速度:
①每隔一个小时,测量一次刀具的厚度,得到实验数据如下:
试根据上面的实验数据建立y和t之间的经验公式y=f(t)
②在坐标系中取t为横坐标,y为纵坐标,描出上述各对数据的对应点,如下图所示。
从图中可以看出,这些点的连线大致接近于一直线,于是就可以认为y和t符合
y=at+b的关系。由excel得出该公式为y = -0.3036x + 27.125。
③程序运行得出结果
与excel线性拟合得到的结果一致。
V=0.3036mm/h。
(二)、最小二乘解在物理中的应用
例:迈克尔逊干涉仪测量激光波长:
①工作原理
迈克尔逊干涉仪是光学干涉仪中最常见的一种,迈克耳逊干涉仪的原理是一束入射光分为两束后各自被对应的平面镜反射回来,这两束光从而能够发生干涉。干涉中两束光的不同光程可以通过调节干涉臂长度以及改变介质的折射率来实现,从而能够形成不同的干涉图样。干涉条纹是等光程差点的轨迹,因此,要分析某种干涉产生的图样,必求出相干光的光程差位置分布的函数。
G2是一面镀上半透半反膜,G1为补偿板,M1、M2
为平面反射镜,M1是固定的,M2和精密丝相连,使其可
以向前后移动,最小读数为10-4mm,可估计到10-5mm,
M1和M2后各有几个小螺丝可调节其方位。当M2和M1’
严格平行时,M2会移动,表现为等倾干涉的圆环形条纹
不断从中心“吐出”或向中心“吞进”。两平面镜之间
的“空气间隙”距离增大时,中心就会“吐出”一个个条纹;反之则“吞进”。M2和M1’不严格平行时,则表现为等厚干涉条纹,在M2移动时,条纹不断移过视场中某一标记位置,M2平移距离 d 与条纹移动数 N 的关系满足:
d=Nλ/2,λ为入射光波长。
②在实验过程中我们得到如下数据:
由excel拟合结果知:
λ=2×(0.000321)=6.42×10−4(mm)=642nm ④由C语言程序得到结果:
与excel线性拟合所得结果一致。
λ=2×(0.000321)=6.42×10−4(mm)=642nm
二、最小二乘法的程序源代码(C语言)
#include
#include
using namespace std;
#define N 100
int main()
{
double x[N];
double y[N];
int i;
double ax=0,ay=0,axy=0,axx=0,a,b;
printf("请输入数据个数:(n<=100)\n");
int n;
cin>>n;
printf("请输入n个x的值:\n");
for(i=0;i { cin>>x[i]; } printf("请输入n个y的值:\n"); for(i=0;i { cin>>y[i]; } for(i=0;i { ax+=x[i]; ay+=y[i]; axy+=x[i]*y[i]; axx+=x[i]*x[i]; } ax/=n; ay/=n; axy/=n; axx/=n; b=(ax*ay-axy)/(ax*ax-axx); a=ay-b*ax; printf("x平均为:%lf\ny平均为:%lf\nx^2平均为:%lf\nxy平均为:%lf\n",ax,ay,axx,axy); printf("斜率b的值为:%lf\n截距a的值为:%lf\n",b,a); return 0; } 三、参考文献 (一)百度百科——“最小二乘法”及“迈克尔逊干涉仪”词条。 (二)《高等数学》——高等教育出版社