首页 VB计算程序课程设计用最小二乘法求拟合曲线

VB计算程序课程设计用最小二乘法求拟合曲线

举报
开通vip

VB计算程序课程设计用最小二乘法求拟合曲线VB计算程序课程设计--用最小二乘法求拟合曲线测试与光电工程学院课程设计任务书测控技术与仪器系100813班学号10081329姓名吴辉课程名称:用最小二乘法求拟合曲线课题要求:利用VB语言编程实现对给定离散点的拟合(不小于10个)的拟合用最小二乘法求数据的拟合曲线。要求有良好的输入、输出界面,输出应包含直线方程并图形显示拟合效果。完成软件的整体设计。课题进程:TOC\o"1-5"\h\z1)熟悉VB编程语言、最小二乘法算法分析3天2)编写程序实现以上功能3天3)软件调试、测试2天4)撰写课程设计报告2天指导老...

VB计算程序课程设计用最小二乘法求拟合曲线
VB计算程序课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 --用最小二乘法求拟合曲线测试与光电工程学院课程设计任务书测控技术与仪器系100813班学号10081329姓名吴辉课程名称:用最小二乘法求拟合曲线课题要求:利用VB语言编程实现对给定离散点的拟合(不小于10个)的拟合用最小二乘法求数据的拟合曲线。要求有良好的输入、输出界面,输出应包含直线方程并图形显示拟合效果。完成软件的整体设计。课题进程:TOC\o"1-5"\h\z1)熟悉VB编程语言、最小二乘法算法分析3天2)编写程序实现以上功能3天3)软件调试、测试2天4)撰写课程设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 2天指导老师:杨琳瑜目录摘要2第一章最小二乘法21)理论依据错误!未定义书签。2)线性拟合分析错误!未定义书签。3)非线性拟合分析5第二章系统设计51)采用的软件及开发平台52)项目的总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 53)项目的详细设计6第三章设计实现101)主要功能模块的具体实现102)主要技术问题或难题的解决方法103)亮点或创新点的实现11第四章结束语11HYPERLINK\l"bookmark23"\o"CurrentDocument"参考文献12附录14摘要最小二乘法最早是由高斯提出的,这是数据处理的一种很有效的统计方法。高斯用这种方法解决了天文学方面的问题,特别是确定了某些行星和彗星的天体轨迹。这类天体的椭圆轨迹由5个参数确定,原则上,只要对它的位置做5次测量就足以确定它的整个轨迹。但由于存在测量误差,由5次测量所确定的运行轨迹极不可靠,相反,要进行多次测量,用最小二乘法消除测量误差,得到有关轨迹参数的更精确的值。最小二乘法近似将几十次甚至上百次的观察所产生的高维空间问题降到了椭圆轨迹模型的五维参数空间。最小二乘法普遍适用于各个科学领域,它在解决实际问题中发挥了重要的作用。它在生产实践、科学实验及经济活动中均有广泛应用。比如说,我们引入等效时间的概念,根据Arrhenius函数和指数函数研究水化热化学反应速率随温度的变化,最后采用最小二乘法回第一章最小二乘法理论依据最小二乘的思想就是要使得观测点和估计点的距离的平方和达到最小.这里的“二乘”指的是用平方来度量观测点与估计点的远近(在古汉语中“平方”称为“二乘”),“最小”指的是参数的估计值要保证各个观测点与估计点的距离的平方和达到最小.对于回归模型y=S(x),若(%,y)(i=1,2,3.m)为收集到的观测数据,则应该用来估计,这里是(x,S(x))(i=1,2,3...m)的估计值。它们之间距离的平方和就是工[S(x)-y]2。iiii1进而最小二乘估计量就是使(1)82=公2=工[S*(x)-y]2=mn工[S(x)-y]22iiixiii=0i=0S(x®=11达到最小值的参数。线性拟合分析给定一组测量数据{(x,,y.),i=0,1,2,...,m},基于最小二乘原理,求得变量x和y之间的函数关系f(x,A),使它最佳地逼近已知数据。其中A=(a,a,…,a)是一些待定参数。01n通常把最小二乘法中的18112都考虑为加权平方和,即28II2=工①(x)(f(x)-y)22111i=0其中,①(x「>=0是[a,b]上的权函数,它 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示反应数据(x,,七)在实验中所占数据的比重。选择参数A使得加权平方和最小,即求满足(2)ii=0£①(x)(f*(x)—y)2=min£①(x)(f(x)—y)2,①(x)>=0iiiiiiii=0的f*(x)。要使(2)最小,它转换为求多元函数I(a,a,…,a)=£.(硕£a93)—f3)]2ijjiij=0i=0的极小点(a*,a0…a*)问题。n由求多远函数极值的必要条件ai=2£①(x)[£a9(x)—f(x)]9(x)=0(k=0,1,…,n).ki=0j=0①(工)9(工)9(工),ijikii=0(f,9)=£①3)f3)93)三d(k=0,1,…,n),kiikiki=0可改写为£(9,9)a=d(k=0,1,•…,n).jkjkj=0(3)此方程成为法方程。它也可以写成矩阵形式其中Ga=d,a=(a,a,…,a)t,d=(d,d,…,d)T,n)])01(中,中)00(私中)10n01聊,中)…聊,中010聊,中)…聊,中111(9,9)…(9,9n1nn)」9・・・9线性无关,故|G|。0,方程组(3)存在唯一解1n(i=1,2,3...n),从而得到函数f(x)的最小二乘法解为S*(x)=a*甲(x)+a*甲(x)HFa*甲(x)0011nn可以证明,这样得到的对于任何多项式形式的S(x),都有工①(x)[S*(x)-f(x)]2空①(x)*[S(x)-f(x)]2iiiiiii=0i=0故S*(x)确实所求最小二乘解。摘自《数值分析》非线性拟合分析我们可通过变数变换将其化为线性模型。利用最小二乘线性拟合确定其系数,再利用逆变换给出原问题的曲线拟合函数。第二章系统设计1)采用的软件及开发平台MicrosoftVisualBasic6.02)项目的总体方案3)项目的详细设计command1(生成点坐标):点击后按要求输入坐标点,在textl中输出command2(生成坐标系,绘点):将输入的点在picturel中绘制出坐标轴以及点command3(生成线性方程):计算输入坐标点的线性回归方程,在picturel中绘制线性方程,在picture2中输出线性方程command4(清除):将textl,picturel,picture2中的内容清除command5(结束):结束程序对象属性名属性值FormlCaption最小一乘法TextlTextMultiLineTrueAlignment2LockedTrueCommandlCaption生成坐标点Command2Caption生成坐标系,绘点八、、Command3Caption生成线性方程Command4Caption清除Command5Caption退出PicturelPicture2Font四号LabellCaption线性方程为:调试运行截图:电工程1-FozmI(Code}s回区Privat*如tCwn-aiLE_n.lck()End~EndAibIrivGtQSvil-fE-i"n_Act3vat*0Dins.TjiLdg^r,LA-i.Sin^laD:fiplA,SaricLt^p2A'-Sin^Lep]-SciLeWadtk:p2=£>:&lcHeLckt1=S5Jp]Fore=□TapLUne&0:i~iXp2L晞(255-s*LE55~s■+t255-s*1)fiest3End.SubPrivateSutPorn_Lnad(JComand2.EtbJ:'ltd-FolseC«nrn[^rid3.Ir:4l:>l-IgIeqComiarid.4.Zn&blad二Fol#Fictioret.XutciHedravi=TrueEndSubFanctjanzlz(ByVJ.:dAcSinaia,ylAw圭口m2众Sin^l^2MSingld'lFari=si1-&2-k13/57di2StepEk2-#门/5F:c+nrel.LineC'i4yE■+100*&】-yZJ/Ti■:tiiTil.Keicht]-(ijyEJFiatur^l.CurrQntI=i-250»IjtE-zl)..■'PictmraL.¥i>ithFjaturit.CurtrsntT二y£十35D*如]-血)JFlcturfti.HaljhtFici-nret.Prinl:iMent闿IE第三章设计实现1)主要功能模块的具体实现这个VB程序设计的主要功能模块在于怎样在图片框中画出线性图,然而,我们在这一模块采用了分步考虑,首先考虑的是:假如使用者只输入一个点,那么在图片框中无法生成线性图,顾我们把它设成“单点无法拟合,请重新输入”(当然是先求出对于输入点的线性方程中的a值、b值);其次就是分别在X轴,Y轴上的X值、Y值相等的情况,这样我们就认定为一条垂直于X轴或Y轴的直线,则在系统所确定的区域内画出线性图;最后就剩下没有共同点的额点了,对于这我们直接以图片框的边界作为X轴和Y轴(认为这样方便画图),然后根据算出的a值、b值和系统求出的线性方程,自动生成图像。2)主要技术问题或难题的解决方法在这个程序设计的过程中,我们遇到了不少的问题,最主要的问题就在怎样画图,因为之前我们还没遇到过这样的问题,鉴于这个问题,我们尽量勤快点地去问问讲师的意见,并且不乏地去图书馆去借阅相关我们课题的书籍,而且我们还有自己的VB书(主要是line语句),根据这几个方式,我们基本上解决了我们面对的问题。3)亮点或创新点的实现本次所做的编程中,我们充分运用了所学的知识,比如“If语句”、“For语句”、“MsgBox语句”和某些控件的有效性属性。这些都是通过反复运行测试做出的结果,因为在这其中我们的不足之处还是有很多很多的,例如:在还没输入要画线的点之前,就可以画线了,那么在那些控件之间就产生了矛盾(没点就能画出线性图?),所以我们使用了控件的有效性这一属性等等。第四章结束语最小二乘法是指使因变量估计值与实测值间的相对误差平方和为最小。在研究两个变量之间的关系时,我们可以用回归分析的方法进行分析。当确定了描述两个变量之间的回归模型后,就可以使用最小二乘法估计模型中的参数,进而建立数学模型,然后通过MATLAB求解模型。通过本文实例模型(非多项式形式y=。。城)的求解,我们学会了怎样从给定的二维数据出发,寻找一个简单合理的函数来拟合给定的一组看上去杂乱无章的数据。如何巧妙地运用最小二乘法解决数据拟合问题,这不仅对我们在今后的学习有一定的帮助,而且在生产实践、科学实验中也起到了一定的作用。。课题设计时VB代码编写复杂、冗长,稍一不慎就会出错,我们调试了好多次,失败了好多次,而自己仔细想想,归根究底还是在于自己心太浮躁,没有耐心°VB的编程是一项不易的工作,没有一颗平静的心是完成不了的。我想,将来做许多事,也需要保持这么一种平和的心态,它是一种个人综合素质,是我们制胜的关键。在课题设计的过程中,VB代码的编写一一即设计的主过程无疑是一个难点,这部分内容虽然难,但在我们能力范围之内。而最大的难点在于,项目设计中需要根据用户提供的坐标点来生成一次模拟曲线,刚遇到这个问题时,根本无法下手,最后还是到图书馆、网上查阅了相关资料才解决了这一难题。从中我领悟到,亲自行动才是解决问题最好的方法,实践就是一切。不管困难有多大,没有切实的行动时不行的。而这前提必然是自己要有解决问题的决心与坚忍不拔的毅力。此次项目对我来说是困难的,但无论怎样,我还是完成了,这说明一点,其实没有克服不了的困难。无论身处于怎样的境地,我们都要勇于面对,并想办法解决,因为自己根本无法逃避。参考文献参考内容为:《VisualBasic程序设计教程》第十章中10.1图形操作《Visualbasic6》学习指南张志军著第二章2.3创建用户界面《数值分析》科学出版社附录程序代码如下:Dimx()AsSingle,y()AsSingle,iAsInteger,nAsInteger,mAsIntegerDimsumxAsDouble,sumyAsDouble,xaverAsDouble,yaverAsDoubleDimxyAsDouble,x2AsDoubleDimaAsDouble,bAsDoubleDimxmaxAsDouble,xminAsDoubleDimymaxAsDouble,yminAsDoublePrivateSubCommand1_Click()Randomizen=InputBox("请输入坐标点个数:”)Ifn=0ThenMsgBox”请输入坐标点个数”Command1.Enabled=TrueElseIfn=1ThenMsgBox”单点无法拟合,请重新输入”ExitSubCommandl.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=TrueElseCommandl.Enabled=FalseCommand2.Enabled=TrueCommand4.Enabled=TrueEndIfReDimx(n)ReDimy(n)Fori=1Tonx(i)=InputBox("请输入第"&i&”个点的横坐标”)sumx=sumx+x(i)Text1=Text1&"第"&i&"个点:("&x(i)y(i)=InputBox("请输入第"&i&”个点的纵坐标”)sumy=sumy+y(i)Text1=Text1&","&y(i)&")"&vbCrLfNextiEndSubPrivateSubCommand2_Click()Picturel.ClsPicture1.DrawWidth=1Command2.Enabled=FalseCommand3.Enabled=TrueCommand4.Enabled=Truexmax=x(1):xmin=x(1)ymax=y(1):ymin=y(1)Fori=2TonIfxmaxx(i)Thenxmin=x(i)EndIfNextiFori=2TonIfymaxy(i)Thenymin=y(i)EndIfNextiIfxmax=xminThenPicturel.Scale(xmin*0.5,ymax+0.2*(ymax-ymin))-(xmin*1.5,ymin-0.2*(ymax-ymin))zbzxmin*0.5,ymax+0.2*(ymax-ymin),xmin*1.5,ymin-0.2*(ymax-ymin)ElseIfymax=yminThenPicture1.Scale(xmin-0.2*(xmax-xmin),ymax*1.5)-(xmax+0.2*(xmax-xmin),ymin*0.5)zbzxmin-0.2*(xmax-xmin),ymax*1.5,xmax+0.2*(xmax-xmin),ymin*0.5ElsePicture1.Scale(xmin-0.2*(xmax-xmin),ymax+0.2*(ymax-ymin))-(xmax+0.2*(xmax-xmin),ymin-0.2*(ymax-ymin))zbzxmin-0.2*(xmax-xmin),ymax+0.2*(ymax-ymin),xmax+0.2*(xmax-xmin),ymin-0.2*(ymax-ymin)EndIfPicture1.DrawWidth=5Fori=1TonPicturel.PSet(x(i),y(i)),vbRedNextiEndSubPrivateSubCommand3_Click()Command3.Enabled=FalseCommand4.Enabled=TruePicture2.Clsxaver=sumx/nyaver=sumy/nFori=1Tonxy=xy+x(i)*y(i)x2=x2+x(i)*x(i)Nextib=(xy-n*xaver*yaver)/(x2-n*xaver*xaver)a=yaver-b*xavera=Left(a,6)b=Left(b,6)Picture2.Print"y="&b&"x+"&aIfxmax=xminThenPicture1.Scale(xmin*0.5,ymax+0.2*南昌航空大学(ymax-ymin))-(xmin*1.5,ymin-0.2*(ymax-ymin))zbzxmin*0.5,ymax+0.2*(ymax-ymin),xmin*1.5,ymin-0.2*(ymax-ymin)Picturel.Line(xmax,ymax+0.2*(ymax-ymin))-(xmax,ymin-0.2*(ymax-ymin)),vbBlueElseIfymax=yminThenPicture1.Scale(xmin-0.2*(xmax-xmin),ymax*1.5)-(xmax+0.2*(xmax-xmin),ymin*0.5)zbzxmin-0.2*(xmax-xmin),ymax*1.5,xmax+0.2*(xmax-xmin),ymin*0.5Picture1.Line(xmin-0.2*(xmax-xmin),ymax)-(xmax+0.2*(xmax-xmin),ymin),vbBlueElsePicture1.Scale(xmin-0.2*(xmax-xmin),ymax+0.2*(ymax-ymin))-(xmax+0.2*(xmax-xmin),ymin-0.2*(ymax-ymin))zbzxmin-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),南昌航空大学vbBlueEndIfEndSubPrivateSubCommand4_Click()Textl.Text=""Picture1.ClsPicture2.ClsCommand1.Enabled=TrueCommand2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalseEndSubPrivateSubCommand5_Click()EndEndSubPrivateSubForm_Activate()DimsAsInteger,lAsSingleDimp1AsSingle,p2AsSinglep1=ScaleWidth:p2=ScaleHeightl=255/plFors=0ToplLine(s,0)-(s,p2),RGB(255-s*l,255-s*l,255-s*l)NextsEndSubPrivateSubForm_Load()Command2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalsePicture1.AutoRedraw=TrueEndSubFunctionzbz(ByValx1AsSingle,y1AsSingle,x2AsSingle,y2AsSingle)Fori=x1+(x2-x1)/5Tox2Step(x2-x1)/5Picture1.Line(i,y2+100*(y1-y2)/Picture1.Height)-(i,y2)Picture1.CurrentX=i-250*(x2-x1)/Picture1.WidthPicture1.CurrentY=y2+350*(y1-y2)/Picture1.Height南昌航空大学Picturel.PrintiNextFori=y2+(yl-y2)/5ToylStep(yl-y2)/5Picturel.Line(x1,i)-(x1+100*(x2-x1)/Picture1.Width,i)Picturel.CurrentX=xl+150*(x2-xl)/Picturel.WidthPicturel.CurrentY=i+80*(yl-y2)/Picturel.HeightPicturel.PrintiNextEndFunction
本文档为【VB计算程序课程设计用最小二乘法求拟合曲线】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
裴裴老师
暂无简介~
格式:doc
大小:660KB
软件:Word
页数:26
分类:
上传时间:2023-05-01
浏览量:1