vb课程设计报告(直线拟合)_第1页
vb课程设计报告(直线拟合)_第2页
vb课程设计报告(直线拟合)_第3页
vb课程设计报告(直线拟合)_第4页
vb课程设计报告(直线拟合)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、直线拟合 、功能 本题目重要是用于将实验中得到的具有线性特征的一组数据通过最小二乘法拟合成直 线,求出其直线方程和绘制出该直线的图形。 、详细设计 本题目的程序设计由三个窗体组成。 在 Form1 中,有 1 个框架控件、 1 个标签控件、 2 个命令按钮和 1 个由 组成的控件数组。 单选按钮控件数组用来选择要输入的数据组数, 当选择好后, 按钮,就可以进入下一个窗体。单击“取消”按钮则退出程序 Form1 的代码见 附件 。 在 Form2 中有 2 个命令按钮、 20 个文本框(每 10 个组成一个控件数组) 控件和许多直线组成。在文本框中输入实验数据后,点击“确定”按钮,若数据没有全部

2、输 入,则出现消息框,提醒没有完全输入。若已经完全输入,则显示 此同时,对实验数据计算,得出拟合直线的截距和斜率,并在 根据所得的斜率和截距得到拟合直线方程,并在 中绘出拟合直线和每个实验点(用绿色) Form2 的代码见 附件 。 6 个单选按钮 单击“确定” 、12 个标签 Form3,隐藏 Form2。与 Form3 的标签控件 1 中体现; Form3 的标签 2 中体现;还可以在 Form3 ,根据实验数据调整坐标系统,画出拟合直线。 三、调试 VB6.0 ,遇到的第一个问题是全局变量的设置问题。 一开始,我是在三楼上机,用的是 我不知道是我一个暑假把学的都忘了,最后终于在课本的帮助

3、下成功做出来了。 第二个问题是显示拟合直线。一开始,我在 Form3 中画了一个图片框,运行时总显示 不了直线, 后来索性将它删掉, 再次运行时终于能出现直线, 可是直线的位置与设想相差太 大了。 连续尝试了 1 个多星期后, 终于明白了, 原来我直接利用得到的直线方程的点的坐标 在窗体上画直线是不对的, 因为我所画的坐标轴的单位长度和窗体的单位长度不相等,之间 需要一定的转换。于是再次修改代码,可还是没有出现预想的情况。重新检查后,没有发现 程序错误。我又尝试输入一组特殊数据: ( 1, 3)、(2, 5)、( 3 , 7)、( 4 , 9)、(5, 11),它 们的拟合直线应该是 Y=2X

4、+1, 斜率是 2,截距是 1,可运行后的结果让我大吃一惊,斜率是 -0.2,截距是 -0.1 。我再次检查了数据计算部分的代码,没有发现错误,请教了好几位同学 也没有解决问题,如此又郁闷了一个星期。不知什么时候,心中有种感觉书上有错误。 找来大学物理实验课本, 果不其然, 在第三十七页找到类似的公式,经计算,终于发现课程 m 设计课本上第 211页 “令 M ( X i) i1 m2 m Xi ”中的“ +”号应改为“-”。修改后, 在调试过程中再也没出现什么大的问题。 四、输入输出数据 当选择 5 组数据时, I :( 54, 76)、(65,83)、( 87,89)、(82,61)、(3

5、4, 22); :(34, 56)、(24,89)、 (29,59)、(78,61)、(94, 57); m :(58, 26)、(44,77)、 (55,89)、(67,65)、(76, 98)。 运行结果: I :截距 A=7.9171725 ,斜率 B=0.9041657 ,直线方程为 Y=0.9041657X+7.9171725 , 坐标比例 :X 1 :截距 A=74.72493 ,斜率 B=-0.199323 ,直线方程为 Y=74.7293X 0. 1 99323, 坐标 比例:X 1 m : 截距 A=41.1017 ,斜率 B=-0.4983051 ,直线方程为 Y=41.1

6、017X+0.4983051 ,坐 标比例: X1 当选择 6 组数据时, I :( 54, 76)、(65,83)、( 87,89)、(82,61)、(34, 22)、(44,88); :(34, 56)、(24,89)、 (29,59)、(78,61)、(94, 57)、(44,88); m :(58, 26)、(44,77)、 (55,89)、(67,65)、(76, 98)、(44,88)。 运行结果: I :截距 A=33.64924 ,斜率 B=0.5931818 ,直线方程为 Y=0.5931818X+33.64924 ,坐 标比例: X1 :截距 A=80.64387 ,斜率

7、B=-0.2735675 ,直线方程为 Y=-0.2735675X8+0.64387 ,坐 标比例: X1 m :截距 A=69.0728 ,斜率 B=8.381743E-02 ,直线方程为 Y=8.381743E-02X+69.0728 , 坐标比例:X 1 五、课程设计总结 经过此次程序设计, 使我对许多事情的看法有了改变。记得上学期学 VB 的时候, 感觉 VB 很简单,老师布置的作业也很快完成,多余的时间就在偷偷玩游戏。刚知道自己要做直 线拟合这道题时,翻了一下书,感觉很简单,相比选择难题的同学,我心中不免有些得意, 心想:快速做完后,再做一个,说不定能得个优。刚开始事情就有点不顺,但

8、也没什么大问 题,一直到写完所有程序, 开始运行的时候, 才发觉最糟糕的事情出现了运行中没有出 现拟合直线, 其他的问题都好办, 可最终显示不出拟合直线就是失败, 眼看着交作业的日子 越来越近, 心中却一点思绪都没有, 而此时我又在金工实习, 再加上二级考试的临近, 我急 得像热锅上的蚂蚁, 不知怎么办才好。 此时, 我才真正体会到编写一个真正有用的程序是多 么的困难,那是要花上许多的心血才得来的。事情终于有了转机, 在我弃用图片框后终于发 现要显示满足要求的直线首先要进行坐标转换,窗体是以缇为单位,而平面直角坐标系以“1” 为单位,二者需要转换。明白这一点之后,我终于能在窗体上显示出直线了,

9、然而,并非我 所期望的直线。我于是假设直线斜率为2,截距为1,得到一组数据,将它们输入Form2的 文本框中,结果发现得到的直线斜率和截距不是2和1,而是0.02和0.01左右小的数字, 我晕倒。检查一便代码后发觉与书上提供的公式相吻合,我没有错,可程序的运行结果却如 此荒谬,难道注定我此次设计不合格,明年再来一次吗?后来,我终于对书本产生怀疑,正 是这一怀疑给一切带来了生机,我找出大学物理实验课本,找到相关内容,终于发现程序设 计课本错了,一个减号被打印成加号。找到问题所在后,一切便尽在掌握之中。 六、窗体图示 星直线拟合 直线拟台程序 请选择数据组敎 4魁 r S鲍 r 6组 r q组 广

10、T爼 厂1豳 确定 取消 区 直线拟合 縱鑼鑰管呗 r瀚定 冠直线拟合 七. 附件 Formi: Private Sub Command1_Click()显示第二个窗体 Form1.Hide Form2.Show Form3.Hide zxnh = MsgBox(你必须完全输入所选的项目! Spc(3); Y= & B & X+ & A 在坐标图上打印出点来 For n = 1 To m Form3.PSet (360 + 37 * X(n), 5400 - 37 * Y(n), RGB(0, 0, 0) Next W = 5400 - 3700 * B - 37 * A R = 360 +

11、(3700 - 37 * A) / B T = 360 - 37 * A / B 将超出坐标轴的线去掉 If A = 0 Then Form3.Line (360, 5400 - 37 * A)-(4060, W) If W 5400 And B 0 Then Form3.Line (T, 5400)-(4060, W), &H8000000F Else Form3.Line (360 + (5400 - 37 * A) / B, 5400)-(4060, W) If W 5400 And B 0 Then Form3.Line (T, 5400)-(4060, W), &H8000000F End If End Sub 返回第一个窗体 Private Sub Command2_Click() Form1.Show Form2.Hide Form3.Hide For n = 1 To m Text1(n).Text = Text2(n).Text = Next End Sub Form 3: 结束程序 Private Sub

温馨提示

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

评论

0/150

提交评论