测试与光电工程学院
课程设计任务书
测控技术与仪器系100813班 学号10081329 姓名吴辉
课程名称:用最小二乘法求拟合曲线 课题要求:
利用VB语言编程实现对给定离散点的拟合(不小于10个)的拟合
用最小二乘法求数据的拟合曲线。要求有良好的输入、输出界面,输出应包含直线方程并图形显示拟合效果。完成软件的整体设计。
课题进程:
1)熟悉VB编程语言、最小二乘法算法分析 3天 2)编写程序实现以上功能 3天 3)软件调试、测试 2天 4)撰写课程设计报告 2天
指导老师:杨琳瑜
目 录
摘要 ---------------------------------------------------------------------------------------- 2 第一章 最小二乘法 -------------------------------------------------------------------- 2
1) 理论依据 ----------------------------------------------- 错误!未定义书签。 2) 线性拟合分析 ----------------------------------------- 错误!未定义书签。 3) 非线性拟合分析 --------------------------------------------------------------- 5
第 1 页 共 17 页
南昌航空大学
第二章 系统设计 ----------------------------------------------------------------------- 5
1) 采用的软件及开发平台 ------------------------------------------------------ 5 2) 项目的总体方案 --------------------------------------------------------------- 5 3) 项目的详细设计 --------------------------------------------------------------- 6 第三章 设计实现 ---------------------------------------------------------------------- 10
1) 主要功能模块的具体实现 -------------------------------------------------- 10 2) 主要技术问题或难题的解决方法------------------------------------------ 10 3) 亮点或创新点的实现 -------------------------------------------------------- 11 第四章 结束语 ------------------------------------------------------------------------- 11 参考文献 --------------------------------------------------------------------------------- 12 附录 --------------------------------------------------------------------------------------- 13
摘要
最小二乘法最早是由高斯提出的,这是数据处理的一种很有效的统计方法。高斯用这种方法解决了天文学方面的问题,特别是确定了某些行星和彗星的天体轨迹。这类天体的椭圆轨迹由5个参数确定,原则上,只要对它的位置做5次测量就足以确定它的整个轨迹。但由于存在测量误差,由5次测量所确定的运行轨迹极不可靠,相反,要进行多次测量,用最小二乘法消除测量误差,得到有关轨迹参数的更精确的值。最小二乘法近似将几十次甚至上百次的观察所产生的高维空间问题降到了椭圆轨迹模型的五维参数空间。
最小二乘法普遍适用于各个科学领域,它在解决实际问题中发挥了重要的作用。它在生产实践、科学实验及经济活动中均有广泛应用。比如说,我们引入等效时间的概念,根据Arrhenius函数和指数函数研究水化热化学反应速率随温度的变化,最后采用最小二乘法回归分析试验数据,确定绝热温升和等效时间的关系式。
第 2 页 共 17 页
南昌航空大学
第一章 最小二乘法
1) 理论依据
最小二乘的思想就是要使得观测点和估计点的距离的平方和达到最小.这里的“二乘”指的是用平方来度量观测点与估计点的远近(在古汉语中“平方”称为“二乘”),“最小”指的是参数的估计值要保证各个观测点与估计点的距离的平方和达到最小.
对于回归模型y=S(x),若(xi,yi)(i=1,2,3···m)为收集到的观测数据,则应该用来估计,这里是(xi,S(xi))(i=1,2,3···m)的估计值。它们之间距离的平方和就是?[S(xi)?yi]2。
1m进而最小二乘估计量就是使
?2=??=?[S*(xi)?yi]=min22imm2i?0i?0S(x)??i?1?[S(x)?y]ii1m2 (1)
达到最小值的参数。
2) 线性拟合分析
给定一组测量数据{(xi,yi),i=0,1,2,…,m},基于最小二乘原理,求得变量x和y之间的函数关系f(x,A),使它最佳地逼近已知数据。其中A=(a0,a1,...,an)是一些待定参数。
通常把最小二乘法中的?2都考虑为加权平方和,即
2?2=??(xi)(f(xi)?yi)2
i?02m其中,?(xi)??0是[a,b]上的权函数,它表示反应数据(xi,yi)在实验中所占数据的比重。
选择参数A使得加权平方和最小,即求满足
第 3 页 共 17 页
南昌航空大学
??(x)(f*(x)?y)iiii?0m2?min??(xi)(f(xi)?yi)2,?(xi)??0 (2)
i?0m的f*(x)。
要使(2)最小,它转换为求多元函数
I(a0,a1,?,an)???(xi)[?aj?j(xi)?f(xi)]2
i?0j?0mn的极小点(a0,a1?an)问题。 由求多远函数极值的必要条件,有
mn?I?2??(xi)[?aj?j(xi)?f(xi)]?k(xi)?0(k?0,1,?,n). ?aki?0j?0***若记(?j,?k)???(xi)?j(xi)?k(xi),
i?0m则
(f,?k)???(xi)f(xi)?k(xi)?dk(k?0,1,?,n),
i?0m可改写为
?(?j?0nj,?k)aj?dk(k?0,1,?,n). (3)
此方程成为法方程。它也可以写成矩阵形式
Ga?d,其中a?(a0,a1,?,an)T,d?(d0,d1,?,dn), ?(?0,?0)(?0,?1)?(?0,?n)??(?,?)(?,?)?(?,?)?111n?G??10???????(?,?)(?,?)?(?,?)n1nn??n0T由于?0,?1??n线性无关,故G?0,方程组(3)存在唯一解
a?ak*k (i=1,2,3···n),
从而得到函数f(x)的最小二乘法解为
第 4 页 共 17 页
南昌航空大学
S*(x)?a0?0(x)?a1?1(x)???an?n(x)
***可以证明,这样得到的对于任何多项式形式的S(x),都有
??(x)[S*(x)?f(x)]iiii?0m2???(xi)*[S(xi)?f(xi)]2
i?0m故S*(x)确实所求最小二乘解。
摘自《数值分析》
3) 非线性拟合分析
我们可通过变数变换将其化为线性模型。利用最小二乘线性拟合确定其系数,再利用逆变换给出原问题的曲线拟合函数。
第二章 系统设计
1) 采用的软件及开发平台
Microsoft Visual Basic 6.0
第 5 页 共 17 页