VB计算程序课程设计报告_第1页
VB计算程序课程设计报告_第2页
VB计算程序课程设计报告_第3页
VB计算程序课程设计报告_第4页
VB计算程序课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 1 页 共 17 页 测试与光电工程学院 课程设计任务书 测控技术与仪器系班 学号 姓名吴辉 课程名称 用最小二乘法求拟合曲线 课题要求 利用 VB 语言编程实现对给定离散点的拟合 不小于 10 个 的拟合 用最小二乘法求数据的拟合曲线 要求有良好的输入 输出界面 输出应包含直线方程 并图形显示拟合效果 完成软件的整体设计 课题进程 1 熟悉 VB 编程语言 最小二乘法算法分析 3 天 2 编写程序实现以上功能 3 天 3 软件调试 测试 2 天 4 撰写课程设计报告 2 天 指导老师 杨琳瑜 目 录 摘要 2 第一章 最小二乘法 3 1 理论依据 3 2 线性拟合分析 3 3 非线性拟合分析 5 南昌航空大学 第 2 页 共 17 页 第二章 系统设计 5 1 采用的软件及开发平台 5 2 项目的总体方案 5 3 项目的详细设计 6 第三章 设计实现 10 1 主要功能模块的具体实现 10 2 主要技术问题或难题的解决方法 10 3 亮点或创新点的实现 11 第四章 结束语 11 参考文献 12 附录 13 摘要摘要 最小二乘法最早是由高斯提出的 这是数据处理的一种很有效的统计方法 高斯用 这种方法解决了天文学方面的问题 特别是确定了某些行星和彗星的天体轨迹 这类天 体的椭圆轨迹由 5 个参数确定 原则上 只要对它的位置做 5 次测量就足以确定它的整 个轨迹 但由于存在测量误差 由 5 次测量所确定的运行轨迹极不可靠 相反 要进行 多次测量 用最小二乘法消除测量误差 得到有关轨迹参数的更精确的值 最小二乘法 近似将几十次甚至上百次的观察所产生的高维空间问题降到了椭圆轨迹模型的五维参数 空间 最小二乘法普遍适用于各个科学领域 它在解决实际问题中发挥了重要的作用 它 在生产实践 科学实验及经济活动中均有广泛应用 比如说 我们引入等效时间的概念 南昌航空大学 第 3 页 共 17 页 根据 Arrhenius 函数和指数函数研究水化热化学反应速率随温度的变化 最后采用最小二乘 法回归分析试验数据 确定绝热温升和等效时间的关系式 第第 1 1 章章 最小二乘法最小二乘法 1 理论依据理论依据 最小二乘的思想就是要使得观测点和估计点的距离的平方和达到最小 这里的 二乘 指的是用平方来度量观测点与估计点的远近 在古汉语中 平方 称为 二乘 最小 指的 是参数的估计值要保证各个观测点与估计点的距离的平方和达到最小 对于回归模型 y S x 若 i 1 2 3 m 为收集到的观测数据 则应该用来估 ii yx 计 这里是 i 1 2 3 m 的估计值 它们之间距离的平方和就是 ii xSx 2 1 i m i yxS 进而最小二乘估计量就是使 1 2 2 m i i 0 2 2 0 i m i i yxS 2 1 min 1 i m i xS yxS i 达到最小值的参数 2 线性拟合分析线性拟合分析 给定一组测量数据 i 0 1 2 m 基于最小二乘原理 求得变量 x 和 y ii yx 之间的函数关系 f x A 使它最佳地逼近已知数据 其中 A 是一些待定参 n aaa 10 数 通常把最小二乘法中的都考虑为加权平方和 即 2 2 南昌航空大学 第 4 页 共 17 页 2 2 2 0 ii m i i yxfx 其中 是 a b 上的权函数 它表示反应数据 在实验中所占数据0 i x ii yx 的比重 选择参数 A 使得加权平方和最小 即求满足 2 0 min 2 0 2 0 iii m i iii m i i xyxfxyxfx 的 f x 要使 2 最小 它转换为求多元函数 m i n j iijjin xfxaxaaaI 0 2 0 10 的极小点问题 1 0n aaa 由求多远函数极值的必要条件 有 m i ik n j iijji k nkxxfxax a I 00 1 0 0 2 若记 m i ikijikj xxx 0 则 m i kikiik nkdxxfxf 0 1 0 可改写为 3 n j kjkj nkda 0 1 0 此方程成为法方程 它也可以写成矩阵形式 南昌航空大学 第 5 页 共 17 页 10 11101 01000 1010 nnnn n n T n T n G ddddaaaa dGa 其中 由于 线性无关 故 方程组 3 存在唯一解 0 1 n 0 G i 1 2 3 n aa kk 从而得到函数 f x 的最小二乘法解为 1 10 0 xaxaxaxS nn 可以证明 这样得到的对于任何多项式形式的 都有 xS m i iii m i iii xfxSxxfxSx 0 2 0 2 故确实所求最小二乘解 xS 摘自 数值分析 3 非线性拟合分析非线性拟合分析 我们可通过变数变换将其化为线性模型 利用最小二乘线性拟合确定其系数 再利 用逆变换给出原问题的曲线拟合函数 第第 2 2 章章 系统设计系统设计 1 采用的软件及开发平台采用的软件及开发平台 Microsoft Visual Basic 6 0 南昌航空大学 第 6 页 共 17 页 2 项目的总体方案项目的总体方案 YES NO 南昌航空大学 第 7 页 共 17 页 3 项目的详细设计项目的详细设计 command1 生成点坐标 点击后按要求输入坐标点 在 text1 中输出 command2 生成坐标系 绘点 将输入的点在 picture1 中绘制出坐标轴以及点 command3 生成线性方程 计算输入坐标点的线性回归方程 在 picture1 中绘制线性 方程 在 picture2 中输出线性方程 command4 清除 将 text1 picture1 picture2 中的内容清除 command5 结束 结束程序 对象属性名属性值 Form1Caption最小二乘法 Text MultiLineTrue Alignment2 Text1 LockedTrue Command1Caption生成坐标点 Command2Caption生成坐标系 绘点 南昌航空大学 第 8 页 共 17 页 Command3Caption生成线性方程 Command4Caption清除 Command5Caption退出 Picture1 Picture2Font四号 Label1Caption 线性方程为 调试运行截图 南昌航空大学 第 9 页 共 17 页 南昌航空大学 第 10 页 共 17 页 第第 3 3 章章 设计实现设计实现 1 主要功能模块的具体实现主要功能模块的具体实现 这个 VB 程序设计的主要功能模块在于怎样在图片框中画出线性图 然而 我们在这 南昌航空大学 第 11 页 共 17 页 一模块采用了分步考虑 首先考虑的是 假如使用者只输入一个点 那么在图片框中无 法生成线性图 顾我们把它设成 单点无法拟合 请重新输入 当然是先求出对于输入 点的线性方程中的 a 值 b 值 其次就是分别在 X 轴 Y 轴上的 X 值 Y 值相等的情况 这样我们就认定为一条垂直于 X 轴或 Y 轴的直线 则在系统所确定的区域内画出线性图 最后就剩下没有共同点的额点了 对于这我们直接以图片框的边界作为 X 轴和 Y 轴 认 为这样方便画图 然后根据算出的 a 值 b 值和系统求出的线性方程 自动生成图像 2 主要技术问题或难题的解决方法主要技术问题或难题的解决方法 在这个程序设计的过程中 我们遇到了不少的问题 最主要的问题就在怎样画图 因为之前我们还没遇到过这样的问题 鉴于这个问题 我们尽量勤快点地去问问讲师的 意见 并且不乏地去图书馆去借阅相关我们课题的书籍 而且我们还有自己的 VB 书 主 要是 line 语句 根据这几个方式 我们基本上解决了我们面对的问题 3 亮点或创新点的实现亮点或创新点的实现 本次所做的编程中 我们充分运用了所学的知识 比如 If 语句 For 语句 MsgBox 语句 和某些控件的有效性属性 这些都是通过反复运行测试做出的结果 因 为在这其中我们的不足之处还是有很多很多的 例如 在还没输入要画线的点之前 就 可以画线了 那么在那些控件之间就产生了矛盾 没点就能画出线性图 所以我们使 用了控件的有效性这一属性等等 南昌航空大学 第 12 页 共 17 页 第第 4 章章 结束语结束语 最小二乘法是指使因变量估计值与实测值间的相对误差平方和为最小 在研究两个 变量之间的关系时 我们可以用回归分析的方法进行分析 当确定了描述两个变量之间 的回归模型后 就可以使用最小二乘法估计模型中的参数 进而建立数学模型 然后通 过 MATLAB 求解模型 通过本文实例模型 非多项式形式 的求解 我们学会了怎样从给定的二维 bx aey 数据出发 寻找一个简单合理的函数来拟合给定的一组看上去杂乱无章的数据 如何巧 妙地运用最小二乘法解决数据拟合问题 这不仅对我们在今后的学习有一定的帮助 而 且在生产实践 科学实验中也起到了一定的作用 课题设计时 VB 代码编写复杂 冗长 稍一不慎就会出错 我们调试了好多次 失败 了好多次 而自己仔细想想 归根究底还是在于自己心太浮躁 没有耐心 VB 的编程是 一项不易的工作 没有一颗平静的心是完成不了的 我想 将来做许多事 也需要保持 这么一种平和的心态 它是一种个人综合素质 是我们制胜的关键 在课题设计的过程中 VB 代码的编写 即设计的主过程无疑是一个难点 这部分 内容虽然难 但在我们能力范围之内 而最大的难点在于 项目设计中需要根据用户提 供的坐标点来生成一次模拟曲线 刚遇到这个问题时 根本无法下手 最后还是到图书 馆 网上查阅了相关资料才解决了这一难题 从中我领悟到 亲自行动才是解决问题最 好的方法 实践就是一切 不管困难有多大 没有切实的行动时不行的 而这前提必然 是自己要有解决问题的决心与坚忍不拔的毅力 此次项目对我来说是困难的 但无论怎样 我还是完成了 这说明一点 其实没有 克服不了的困难 无论身处于怎样的境地 我们都要勇于面对 并想办法解决 因为自 己根本无法逃避 南昌航空大学 第 13 页 共 17 页 参考文献参考文献 参考内容为 Visual Basic 程序设计教程 第十章中 10 1 图形操作 Visual basic 6 学习指南 张志军著 第二章 2 3 创建用户界面 数值分析 科学出版社 附录附录 程序代码如下程序代码如下 Dim x As Single y As Single i As Integer n As Integer m As Integer Dim sumx As Double sumy As Double xaver As Double yaver As Double Dim xy As Double x2 As Double Dim a As Double b As Double Dim xmax As Double xmin As Double Dim ymax As Double ymin As Double Private Sub Command1 Click 南昌航空大学 第 14 页 共 17 页 Randomize n InputBox 请输入坐标点个数 If n 0 Then MsgBox 请输入坐标点个数 Command1 Enabled True ElseIf n 1 Then MsgBox 单点无法拟合 请重新输入 Exit Sub Command1 Enabled False Command2 Enabled False Command3 Enabled False Command4 Enabled True Else Command1 Enabled False Command2 Enabled True Command4 Enabled True End If ReDim x n ReDim y n For i 1 To n x i InputBox 请输入第 i 个点的横坐标 sumx sumx x i Text1 Text1 第 i 个点 x i y i InputBox 请输入第 i 个点的纵坐标 sumy sumy y i Text1 Text1 y i vbCrLf Next i End Sub Private Sub Command2 Click Picture1 Cls Picture1 DrawWidth 1 Command2 Enabled False Command3 Enabled True Command4 Enabled True xmax x 1 xmin x 1 ymax y 1 ymin y 1 For i 2 To n If xmax x i Then xmin x i End If Next i For i 2 To n 南昌航空大学 第 15 页 共 17 页 If ymax y i Then ymin y i End If Next i If xmax xmin Then Picture1 Scale xmin 0 5 ymax 0 2 ymax ymin xmin 1 5 ymin 0 2 ymax ymin zbz xmin 0 5 ymax 0 2 ymax ymin xmin 1 5 ymin 0 2 ymax ymin ElseIf ymax ymin Then Picture1 Scale xmin 0 2 xmax xmin ymax 1 5 xmax 0 2 xmax xmin ymin 0 5 zbz xmin 0 2 xmax xmin ymax 1 5 xmax 0 2 xmax xmin ymin 0 5 Else Picture1 Scale xmin 0 2 xmax xmin ymax 0 2 ymax ymin xmax 0 2 xmax xmin ymin 0 2 ymax ymin zbz xmin 0 2 xmax xmin ymax 0 2 ymax ymin xmax 0 2 xmax xmin ymin 0 2 ymax ymin End If Picture1 DrawWidth 5 For i 1 To n Picture1 PSet x i y i vbRed Next i End Sub Private Sub Command3 Click Command3 Enabled False Command4 Enabled True Picture2 Cls xaver sumx n yaver sumy n For i 1 To n xy xy x i y i x2 x2 x i x i Next i b xy n xaver yaver x2 n xaver xaver a yaver b xaver a Left a 6 b Left b 6 Picture2 Print y b x a If xmax xmin Then Picture1 Scale xmin 0 5 ymax 0 2 ymax ymin xmin 1 5 ymin 0 2 ymax ymin zbz xmin 0 5 ymax 0 2 ymax ymin xmin 1 5 ymin 0 2 ymax ymin Picture1 Line xmax ymax 0 2 ymax ymin xmax ymin 0 2 ymax ymin vbBlue ElseIf ymax ymin Then Picture1 Scale xmin 0 2 xmax xmin ymax 1 5 xmax 0 2 xmax xmin ymin 0 5 zbz xmin 0 2 xmax xmin ymax 1 5 xmax 0 2 xmax xmin ymin 0 5 南昌航空大学 第 16 页 共 17 页 Picture1 Line xmin 0 2 xmax xmin ymax xmax 0 2 xmax xmin ymin vbBlue Else Picture1 Scale xmin 0 2 xmax xmin ymax 0 2 ymax ymin xmax 0 2 xmax xmin ymin 0 2 ymax ymin zbz xmin 0 2 xmax xmin ymax 0 2 ymax ymin xmax 0 2 xmax xmin ymin 0 2 ymax ymin Picture1 Line xmin 0 2 xmax xmin b xmin 0 2 xmax xmin a xmax 0 2 xmax xmin b xmax 0 2 xmax xmin a vbBlue End If End Sub Private Sub Command4 Click Text1 Text Picture1 Cls Picture2 Cls Command1 Enabled True Command2 Enabled False Command3 Enabled False Command4 Enabled False End Sub Private Sub Command5 Click End End Sub Private Sub Form Activ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论