计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc

上传人:sccc 文档编号:4864720 上传时间:2023-05-20 格式:DOC 页数:16 大小:352.51KB
返回 下载 相关 举报
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc_第1页
第1页 / 共16页
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc_第2页
第2页 / 共16页
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc_第3页
第3页 / 共16页
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc_第4页
第4页 / 共16页
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc》由会员分享,可在线阅读,更多相关《计算机课程设计基于EXCEL VBA的Lagrang插值程序设计.doc(16页珍藏版)》请在三一办公上搜索。

1、南昌航空大学测光学院计算机课程设计基于EXCEL VBA的Lagrang插值程序设计学生姓名: 班级:08081103指导老师:摘要:Excel是Microsoft Office 家族成员,是Windows环境下应用最广泛的软件之一。是一个功能强大、技术先进、使用方便的表格式数据综合管理和分析系统。它向用户提供了史无前例的、超强的计算功能及表格功能。它采用电子表格方式进行数据处理,操作直观方便;它提供了丰富的函数,可以进行各种数据处理、统计分析。此外,Excel的强大功能还在于它提供的宏语言Visual Basic for Application(简称VBA),为广大用户提供了一个新的、更高层

2、次的二次开发平台。本文介绍一种基于Excel内核的VBA编程方法,来扩展Excel的功能,以实现Lagrang插值函数计算的数据统计功能。讨论如何利用MicrosoftExcel的强大数据处理功能和其中的VBA程序,编制简单、快捷、实用的计算数学模块,使得许多复杂、烦琐的数值计算可通过自编数学软件轻松完成。关键词: EXCEL, Lagrang , 插值函数VBA编程指导老师签字:目 录1 引言12 基于EXCEL VBA的LAGRANG插值的理论基础22.1 VBA简介22.1.1 VBA是什么22.1.2 VBA和VB的区别32.1.3 VBA的特点32.1.4 VBA的Excel基本应用

3、42.2 宏操作52.2.1宏的概念52.2.2宏可以实现的操作52.3 插值多项式的简介62.3.1 发展历史62.3.2 主要内涵62.3.3 基本类型62.4 拉格朗日(Lagrang)插值函数72.4.1 Lagrang插值基函数72.4.2 Lagrang插值公式83基于EXCEL VBA的LAGRANG插值的实现93.1 问题的提出93.2 插值在Excel中的实现93.3 程序设计93.4 运行结果104 结论12参考文献13致谢141 引言数学在工程、技术、经济及其它各个领域的使用常常都归结为对数值计算的研究,我们将在Excel中实现几种典型的数值计算方法,并编写出这些计算的V

4、BA代码,供数值计算者使用并举一反三,自己动手解决复杂计算问题,提高工作效率。许多实际问题往往是通过函数y=f(x)来反映其内在的规律,而一般函数y=f(x)的解析表达式是不易获得的,往往是通过观察或实验获得y=f(x)在一些特殊点处的函数值,然后去找一类较简单的函数P(x)(通常是多项式函数)满足来代替f(x)即使y=f(x)的解析表达式已知,要求出y=f(x)在一些特殊点处的函数值f()也是不容易的,这时我们的想法是用一个多项式P(x)来近似代替f(x),用P()代替f()用多项式近似表达函数是近似计算与理论分析的重要内容,它在计算数学中占有举足轻重的地位在这些方面已有了许多数学家作了大量

5、的工作,例如Lagrange、Newton、Hermite、Taylor等。本文将Lagrang展开式的形式给出插值的计算方法。2 基于EXCEL VBA的Lagrang插值的理论基础2.1 VBA简介2.1.1 VBA是什么直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言-Visual Basic For Application(VBA), VBA是非常流行的应用程序开

6、发语言VISUAL BASIC 的子集.实际上VBA是寄生于VB应用程序的版本.VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.此外,还可以将EXCEL用做开发平台实现应用程序.Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。大多数人看到了VBA可以自动化一个程序,可以扩展已有程序,但没有看到在Office中,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一日之功。以ArcG

7、IS为例,ArcGIS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C+也罢。但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。所以,ArcGIS的VBA就如同鸡肋。不过,学习AO的时候,使用VBA比使用其他语言要容易一些,写几行代码,然后直接运行测试结果,这种交互式的学习应该是最好的学习方法。ArcGIS以及AO与Office相比,还有一个很大的差别,就是ArcGIS缺乏中等粒度的对象

8、,例如Word和Excel的Range对象。对于Office开发,可以在对底层小粒度对象一无所知的状况下做很多事情,这就是抽象的力量。常人可以处理的复杂度是有限的,面对数十个对象和几百个对象,后者需要付出的努力不是10倍,而是数十倍或更多,因为在学习过程中,必须可以把这些对象在大脑中很好的组织,以控制其复杂度。Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法

9、,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。因此,对于在工作中需要经常使用Office 套装软件的用户,学用VBA 有助于使工作自动化,提高工作效率。另外,由于VBA 可以直接应用Office 套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。2.1.2 VBA和VB的区别1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序。3. 要

10、运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件 (*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL。尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础。而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识。* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化。2.1.3 VBA的特点VBA最大特点和最大优点是

11、利用面向对象(OOP)的ActiveX Automation技术,使语言的引擎在技术上与开发环境分离。它的功能在很大程度上依赖于它的客户显露的Automation接口。同时,由于VBA是基于ActiveX Automation技术,它可以使用任何Automation技术的应用程序共同工作。在Microsoft Excel中,与表对应的对象是工作表(Sheet或Worksheet),与每一个表格方格对应的对象是单元格区域(range),它可以仅包括一个单元格(cell),也可以由多个单元格合并而成。工作表对象中的cells属性,在单元格的选择方面可以达到与range相同的效果,它是以行(row)

12、和列(gol)作为参数的,对于行和列的选择可以采用变量的形式。在本例中,可设定工作表(Worksheet)的每一行第一列(cells(i,1)为中桩桩号,每一行第二列(cells(i,2)为对应的地面高程。2.1.4 VBA的Excel基本应用Application对象是Excel对象模型的顶层,表示整个Excel应用程序。在VB应用程序中调用Excel,就是使用Application对象的属性、方法和事件。为此,首先要声明对象变量:Dim VBExcel As Object或直接声明为Excel对象:Dim VBExcel As Excel.Application在声明对象变量之后,可用Cr

13、eateObject函数或GetObject函数给变量赋值新的或已存在的Application对象引用。1.用CreateObject函数生成新的对象引用:Set VBExcel=CreateObject (Excel.Application)字符串Excel.Application是提供Excel应用程序的编程ID,这个变量引用Excel应用程序本身。2.用GetObject函数打开已存在的对象引用:Set AppExcel=GetObject(SAMP.XLS)上面语句打开文件SAMP.XLS。一 Application对象常用的属性、方法方法/属性描述Visible属性取True或Fal

14、se,表明Excel应用程序是否可见Left,Top属性Excel窗口的位置Height,Width属性Excel窗口的大小WindowState属性指定窗口的状态,取:XIMaximized(最大化)X1 Minimized(最小化)x1 Normal(缺省)Quit方法退出Microsoft ExcelCalculate方法重新计算所有打开的工作簿、工作表或单元格Evaluate方法求值数学表达式并返回结果示例1:求值数学表达式:Dim VBExcel As ObjectSet VBExcel=CreateObject (Excel.Application)X=VBExcel. Evalu

15、ate (3+5*(cos (1/log (99. 9)2.2 宏操作2.2.1宏的概念要使Access 2000的众多数据库对象成为一个整体,以一个应用程序的面貌展示给用户,就必须借助于代码类型的数据库对象。宏对象便是此类数据库对象中的一种。 宏对象是一个或多个宏操作的集合,其中的每一个宏操作执行特定的单一功能。用户可以将这些宏操作组织起来形成宏对象以执行特定的任务。 用户主要是在进行事务性或重复性的操作的情况下使用宏,如打开和关闭窗体、显示和隐藏工具栏或运行报表等。所谓宏,就是一个VBA模块,这里所说的宏操作,就是一个工作表操作法的全过程可通过自己编写一段宏程序自动完成,结果相同,且精度能

16、自动控制,而且这段程序非常容易编写,只要在工作表中操作时启动“宏录制”(击“工具/宏/录制新宏”,再确认宏名和保存宏的位置,出现“停止录制”确认工具框,为方便使用控制语句,最好单击其上的“相对引用”钮,),当进行重复操作过程时即可停止宏录制(当然也可以录制到操作结束),再用录制宏同样的方法打开宏代码进行编辑,删除多余的句,将适当的重复操作语句放到循环体中即完成宏代码编写,方便得很。2.2.2宏可以实现的操作一般来说,使用宏可以实现下列操作:1创建全局赋值键(变量)。2在首次打开数据库时,执行一个或一系列操作。3建立自定义菜单栏。4从工具栏上的按钮执行自己的宏或者程序。5可以使用宏把筛选程序加到

17、各个记录中,从而提高记录查找的速度。6使用宏可以随时打开或者关闭数据库对象。7使用宏可以为窗体或者报表中的控制设置值,同时还可以模拟键盘动作,并把输入提供给对话框。8.可以使用宏来显示各种信息,并能够使扬声器发出报警声,以引起用户的注意。9使用宏可以实现数据自动传输。可以自动地在各种数据格式之间引入或导出数据。10可以使用宏移动Access环境下的任何一个窗体,并能够改变它们的大小。11使用宏可以启动其他的应用程序,可以是MSDOS应用程序,也可以是Windows应用程序。12使用宏可以为窗体定制菜单,并可以让用户设计其中的内容。2.3 插值多项式的简介2.3.1 发展历史在离散数据的基础上补

18、插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,I.牛顿,J.-L.拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。2.3.2 主要内涵插值问题的提法是:假定区间上的实值函数在该区间上个互不相同点处的值是,要求估算在中某点的值。其做法是:在事先选定的一个由简单函数构成的

19、有个参数的函数类中求出满足条件的函数,并以作为的估值。此处称为被插值函数,称为插值结(节)点,称为插值函数类,上面等式称为插值条件,中满足上式的函数称为插值函数,称为插值余项。当估算点属于包含的最小闭区间时,相应的插值称为内插,否则称为外插。2.3.3 基本类型多项式插值 这是最常见的一种函数插值。在一般插值问题中,若选取为n次多项式类,由插值条件可以唯一确定一个n次插值多项式满足上述条件。从几何上看可以理解为:已知平面上n1个不同点,要寻找一条n次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一个是拉格朗日插值多项式,另一个是牛顿插值多项式。埃尔米特插值对于函数f(x),常常不仅

20、知道它在一些点的函数值,而且还知道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。分段插值与样条插值为了避免高次插值可能出现的大幅度波动现象,在实际应用中通常采用分段低次插值来提高近似程度,比如可用分段线性插值或分段三次埃尔米特插值来逼近已知函数,但它们的总体光滑性

21、较差。为了克服这一缺点,一种全局化的分段插值方法三次 样条插值成为比较理想的工具。见样条插值。三角函数插值当被插函数是以2为周期的函数时,通常用n阶三角多项式作为插值函数,并通过高斯三角插值表出。插值(Interpolation),有时也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。有些相机使用插值,人为地增加图像的分辨率。道插值,还有0.618法插值,三点二次插值和二点二次插值。2.4 拉格朗日(Lagrang)插值函数2.4.1 Lagrang插值基函数选取了作为插值空间的一组基函数。本节将引入该空间中令一组基函数L

22、agrang插值基函数。针对个互异的插值节点,够照不超过n次的多项式 ,使之满足插值条件设 由得故 或 其中 成为关于节点的Lagrang插值基函数。它们依赖于插值点 。并满足: 2.4.2 Lagrang插值公式做 可以验证满足插值条件。称之为Lagrang插值多项式。其误差估计为 1.若被插值函数本身就是不超过n次的多项式,则有。2. 取,则。 故拉格朗日插值公式是 其中称为插值基函数,求该多项式的关键是求。3基于EXCEL VBA的Lagrang插值的实现3.1 问题的提出已知函数f(x)的插值条件为:0.400.550.650.800.901.050.410750.578150.696

23、750.888111.026521.25382求题中的拉格朗日擂值多项式,并求f(0.596)的近似值。3.2 插值在Excel中的实现将插值条件输人Excel工作表的区域A2:B7中(见表1,当然也可以输人在其它地方),在C3中输入公式“=(B3一B2)/(A3一A2)”即得差商,C4中输人“=(B4一B3)/(A4一A3)”又得到差商;至于二阶差商,只要在D4中输人公式“=(C4-C3)/(A4一A2)”,立即可得到的值,其余各阶差商的表上计算方法都是简单的重复操作,表1只给出最终结果。表1 计算差商表3.3 程序设计编写出计算f(0.596)的宏Macro4如下(题中要求的的表达式可根据

24、该宏的运行结果写出,由于式子较长,这里就省略了。若对别的x。值,只要将程序中语句“w=0.596”改为“w=x0”就可计算出f(x0)的值)。Sub Macro4()Dim X(5), Y(5), L(5), T(5)定义4个数组Dim W, U, V, W1定义4个变量For I = 0 To 5 X(I) = Cells(I + 2, 1).Value: Y(I) = Cells(I + 2, 2).Value 将单元格中的插值条件赋给数组Next IW = 0.596For K = 0 To 5 U = 1 V = 1For J = 0 To 5 If J = K Then J = J

25、+ 1: If J = 6 Then GoTo 2 U = U * (W - X(J): V = V * (X(K) - X(J)Next J L(K) = U / V: Cells(11, K + 1).Value = L(K)2 Next K 句前的2是行标号,与语句goto 2对应 L(5) = U / V: Cells(11, K).Value = L(5) 这句为K=5(则J=6)时的L(5)赋值For I = 0 To 5 W1 = T(I) + Y(I) * L(I)Next ICells(12, 1).Value = W1End Sub3.4 运行结果运行该宏后,单元格区域Al

26、l:Fll就出现li(x)(i=0,1,2,5)的值,“A12”中的值-0.007765546就是,也是所要求的f(0.596)的近似值。如图1所示。图1 运行结果4 结论本次设计实现了设计要求,包括:分析Lagrang插值数值算法; 掌握EXCEL 环境下的VBA程序设计方法; 根据插值条件设计程序算法并编制程序等。本次实验虽然简单,但却很有价值,可以简单、快捷、实用的计算Lagrang插值函数,也可以通过此次实验拓展到其他插值函数的计算,使得许多复杂、烦琐的数值计算可通过自编数学软件轻松完成。参考文献1 欧阳清,函数插值, 2 李敏州,借用录制宏的操作来帮助你学用VBA编程J,办公自动化2

27、006年第01期3 4 5 吕洪升, 常见数值计算在Excel的VBA中实现J, 巢湖学院学报, 2008年第10卷第6期总第93期6 王能超数值分析简明教程M北京:高等教育出版社,19997 谢乐军,李丽.中文EXCEL2000最佳实用教程M.中国民航出版社,1999.118 武汉大学计算毅学教研室等.计算方法M.北京:人民教育出版社,1979.9 杜茂康.Excel与数据处理M.北京:电子工业出版社,2003.10 封建湖等.计算方法典型通分析解集M.西安:西北工业大学出版社,1998.致谢在本次设计的整个过程中,特别感谢指导老师吴伟老师,谢谢他在本次实验中的指导和改正,让我见识到对科研的执着于认真,也让我端正了对科研的正确态度。谢谢同学们对电脑运用方面的指导于帮助。同时也感谢在百忙之中对我的论文进行评审并提出宝贵意见的老师们。14

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号