最小二乘法数据处理

时间:2022-05-11 08:28:58

最小二乘法数据处理

摘要:本文阐述在Visual C++ 6.0中实现数据最小二乘法的处理方法,通过实例介绍了最小二乘法的算法和本系统新特点功能。

关键词:最小二乘法

中图分类号:TP301文献标识码:A文章编号:1009-3044(2007)05-11345-02

1 引言

在高校实验教学和科研中最小二乘法是广泛运用的研究和验证二个变量关系的最佳算法,但是几乎所有用者都会感到其算法的烦琐、易出错,尤其对于10组以上的数据手工运算简直不可能,而传统的基于DOS平台的程序操作难,功能差,笔者为了配合实验教学,利用Microsoft Visual C++(简称VC)的强大数据计算能力和图形处理能力,设计了一套全新的系统。

2 最小二乘法算法简介[1]

设变量x、y间存在线性关系 y=a+bx(如非可变换),对测量值(xi,yi)

可得b=Sxy/Sxx,a=y-bx,而反映其线性关系的相关系数为 ,|R|必须大于对应临界值R临,才认为数据间存在线性相关。

3 系统求

作为用于科研、教学的软件,笔者从用户的角度认为新系统应具有如下功能。

3.1 数据录入方便

可以方便地录入各种数据,录入后还应可任意修改,灵活性、方便性强。

3.2 计算功能强大

系统应具有速度快、精度高、功能强的特点。不仅要求能算出所求参数a、b和他们的标准偏差,还要求能算出线性相关系数。所以本系统设计中,数据变量采用VC的Double双精度型,其长度为8个字节,基本能满足科学研究的精度要求。

3.3 具有判断功能

系统要求能进行线性相关判断,确定数据之间是否存在线性相关;能判断出不符合条件的粗差数据,并能将其迅速找出。

3.4 具有图形功能

对输入的各组数据能完成打点、连线等图形显示。对计算的结果能绘出其标准直线。本系统中采用了智能比例技术,不管输入的数据怎样变化,其图形的大小和位置始终处于最佳状态,研究人员可以非常直观仔细地进行研究。

3.5 具有保存打印功能

对输入的数据能以文件的形式保存,对输出的图形能打印(含打印预览)出来,对数据的详细研究,这些是必不可少的功能。

另外,系统应具有易用性的特点。本系统设计为可以通过菜单、快捷键、工具栏和弹出式菜单四种方式操作的图形界面,用户可以非常方便地上手。

4 系统设计

启动VC6.0,用MFC AppWizard创建一个Single Document应用程序。设置菜单如下图,插入5个DIALOG分别为IDD-DlgSet(设置参数)、IDD-DlgLrsj(录入数据)、IDD-DlgJsjg(计算结果),其它为帮助对话框(含肖维涅舍弃判据系数表、临界相关系数R表、用户反馈表等),用Class Wizard 为菜单建立相应的MESSAGE MAP,为对话框创建相应的类及成员变量。

部分关键源程序如下:

限于篇幅略去了一些简单的VC自动生成的代码,并略去了Splash Window 和PopupMenu等功能代码,主要重点放在算法和设计思想上。

5 结束语

本文详细描述了最小二乘法系统的开发方法,并利用了VC6.0这个强大的开发工具,描述了其开发的过程。(本系统在VC6.0、WindowsXP下调试通过,并在我校大学物理实验室使用,效果好。)

参考文献:

[1] 杨述武. 普通物理实验(第2版). 北京:高等教育出版社,2003.14-6.

[2] Microsoft Corporation. Visual C++6.0程序员指南[M]. Microsoft出版社,2002.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:电子政务与办公自动化初探 下一篇:用FPGA实现ITU-656数据流的同步分离