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

上传人:仙*** 文档编号:32465646 上传时间:2021-10-14 格式:DOC 页数:16 大小:352.50KB
收藏 版权申诉 举报 下载
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计_第1页
第1页 / 共16页
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计_第2页
第2页 / 共16页
计算机课程设计基于EXCEL VBA的Lagrang插值程序设计_第3页
第3页 / 共16页
资源描述:

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

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

2、pplication(简称 VBA),为广大用户提供了一个新的、更高层次的二次开发平台。本文介绍一种基于 Excel 内核的 VBA 编程方法,来扩展 Excel 的功能,以实现Lagrang 插值函数计算的数据统计功能。讨论如何利用 MicrosoftExcel 的强大数据处理功能和其中的 VBA 程序,编制简单、快捷、实用的计算数学模块,使得许多复杂、烦琐的数值计算可通过自编数学软件轻松完成。关键词: EXCEL, Lagrang , 插值函数 VBA 编程指导老师签字:指导老师签字:南昌航空大学测光学院计算机课程设计目目 录录1 引言 .12 基于 EXCEL VBA 的 LAGRANG

3、 插值的理论基础 .22.1 VBA 简介 .22.1.1 VBA 是什么.22.1.2 VBA 和 VB 的区别.32.1.3 VBA 的特点.32.1.4 VBA 的 Excel 基本应用 .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

4、.2 插值在 EXCEL中的实现 .93.3 程序设计 .93.4 运行结果 .104 结论.12参考文献.13致谢.14南昌航空大学测光学院计算机课程设计11 1 引言引言数学在工程、技术、经济及其它各个领域的使用常常都归结为对数值计算的研究,我们将在 Excel 中实现几种典型的数值计算方法,并编写出这些计算的 VBA 代码,供数值计算者使用并举一反三,自己动手解决复杂计算问题,提高工作效率。许多实际问题往往是通过函数 y=f(x)来反映其内在的规律,而一般函数 y=f(x)的解析表达式是不易获得的,往往是通过观察或实验获得 y=f(x)在一些特殊点处的函数值,然后去找一类较简单的函数 P

5、(x)(通常是多njxj, 1 , 0njyj, 1 , 0项式函数)满足来代替 f(x)即使 y=f(x)的解析表达式已知,要 njyxpjj, 1 , 0求出 y=f(x)在一些特殊点处的函数值 f()也是不容易的,这时我们的想法是用一个jxjx多项式 P(x)来近似代替 f(x),用 P()代替 f()用多项式近似表达函数是近似计算与jxjx理论分析的重要内容,它在计算数学中占有举足轻重的地位在这些方面已有了许多数学家作了大量的工作,例如 Lagrange、Newton、Hermite、Taylor 等。本文将Lagrang 展开式的形式给出插值的计算方法。南昌航空大学测光学院计算机课程

6、设计22 2 基于基于 EXCELEXCEL VBAVBA 的的 LagrangLagrang 插值的理论基础插值的理论基础2.12.1 VBAVBA 简介简介2.1.12.1.1 VBAVBA 是什么是什么直到 90 年代早期,使应用程序自动化还是充满挑战性的领域 .对每个需要自动化的应用程序 ,人们不得不学习一种不同的自动化语言 .例如:可以用 EXCEL 的宏语言来使 EXCEL 自动化,使用 WORD BASIC 使 WORD 自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言 -Visual Basic For Application(VBA), VBA 是非常流行

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

8、要熟悉某个Office 组件的对象模型,绝非一日之功。以 ArcGIS 为例,ArcGIS 扩展必须使用 ArcObject,不管是使用 VBA 也罢,VB也罢,还是 C+也罢。但同时, ArcObject 的学习不是一天两天可以搞定,对于业余程序员,要使用 VBA 来扩展 ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于 ArcObject 来扩展 ArcGIS,选择 VBA 意味着源码的保护很困难。所以, ArcGIS 的 VBA 就如同鸡肋。不过,学习 AO 的时候,使用 VBA 比使用其他语言要容易一些,写几行代码,然后直接运行测试结果,这种交互式的学习应

9、该是最好的学习方法。ArcGIS 以及 AO 与 Office 相比,还有一个很大的差别,就是ArcGIS 缺乏中等粒度的对象,例如 Word 和 Excel 的 Range 对象。对于 Office 开发,可以在对底层小粒度对象一无所知的状况下做很多事情,这就是抽象的力量。常人可以处理的复杂度是有限的,面对数十个对象和几百个对象,后者需要付出的努力不是10南昌航空大学测光学院计算机课程设计3倍,而是数十倍或更多,因为在学习过程中,必须可以把这些对象在大脑中很好的组织,以控制其复杂度。Visual Basic for Applications(简称 VBA)是新一代标准宏语言,是基于 Visu

10、al Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而 VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为 VBA 程序代码。这样用户可以容易地将日常工作转换为 VBA 程序代码,使工作自动化。因此,对于在工作中需要经常使用 Office 套装软件的用户,学用 VBA 有助于使工作自动化,提高工作效率。另外,由于 VBA 可以直接应用 Office 套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快

11、捷。2.1.22.1.2 VBAVBA 和和 VBVB 的区别的区别1. VB 是设计用于创建标准的应用程序 ,而 VBA 是使已有的应用程序 (EXCEL 等)自动化。2. VB 具有自己的开发环境 ,而 VBA 必须寄生于已有的应用程序 。3. 要运行 VB 开发的应用程序 ,用户不必安装 VB,因为 VB 开发出的应用程序是可执行文件 (*.EXE),而 VBA 开发的程序必须依赖于它的父应用程序 ,例如EXCEL。尽管存在这些不同 ,VBA 和 VB 在结构上仍然十分相似 .事实上,如果你已经了解了 VB,会发现学习 VBA 非常快.相应的,学完 VBA 会给学习 VB 打下坚实的基础

12、 。而且,当学会在 EXCEL 中用 VBA 创建解决方案后 ,即已具备在 WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用 VBA 创建解决方案的大部分知识 。* VBA 一个关键特征是你所学的知识在微软的一些产品中可以相互转化。2.1.32.1.3 VBAVBA 的特点的特点VBA 最大特点和最大优点是利用面向对象(OOP)的 ActiveX Automation 技术,使语言的引擎在技术上与开发环境分离。它的功能在很大程度上依赖于它的客户显露的Automation 接口。同时,由于 VBA 是基于 ActiveX Automation 技术,它可以使用任

13、何Automation 技术的应用程序共同工作。在 Microsoft Excel 中,与表对应的对象是工作表(Sheet 或 Worksheet),与每南昌航空大学测光学院计算机课程设计4一个表格方格对应的对象是单元格区域(range),它可以仅包括一个单元格(cell),也可以由多个单元格合并而成。工作表对象中的 cells 属性,在单元格的选择方面可以达到与 range 相同的效果,它是以行(row)和列(gol)作为参数的,对于行和列的选择可以采用变量的形式。在本例中,可设定工作表(Worksheet)的每一行第一列(cells(i,1)为中桩桩号,每一行第二列(cells(i,2)为

14、对应的地面高程。2.1.42.1.4 V VB BA A 的的 E Ex xc ce el l 基基本本应应用用Application 对象是 Excel 对象模型的顶层,表示整个 Excel 应用程序。在 VB 应用程序中调用 Excel,就是使用 Application 对象的属性、方法和事件。为此,首先要声明对象变量:Dim VBExcel As Object 或直接声明为 Excel 对象:Dim VBExcel As Excel.Application在声明对象变量之后,可用 CreateObject 函数或 GetObject 函数给变量赋值新的或已存在的 Application

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

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

17、.Application)X=VBExcel. Evaluate (3+5*(cos (1/log (99. 9) 2.22.2 宏宏操作操作2.2.12.2.1 宏的概念宏的概念要使 Access 2000 的众多数据库对象成为一个整体,以一个应用程序的面貌展示给用户,就必须借助于代码类型的数据库对象。宏对象便是此类数据库对象中的一种。 宏对象是一个或多个宏操作的集合,其中的每一个宏操作执行特定的单一功能。用户可以将这些宏操作组织起来形成宏对象以执行特定的任务。 用户主要是在进行事务性或重复性的操作的情况下使用宏,如打开和关闭窗体、显示和隐藏工具栏或运行报表等。所谓宏,就是一个 VBA 模块

18、,这里所说的宏操作,就是一个工作表操作法的全过程可通过自己编写一段宏程序自动完成,结果相同,且精度能自动控制,而且这段程序非常容易编写,只要在工作表中操作时启动“宏录制”(击“工具/宏/录制新宏” ,再确认宏名和保存宏的位置,出现“停止录制”确认工具框,为方便使用控制语句,最好单击其上的“相对引用”钮,),当进行重复操作过程时即可停止宏录制(当然也可以录制到操作结束),再用录制宏同样的方法打开宏代码进行编辑,删除多余的句,将适当的重复操作语句放到循环体中即完成宏代码编写,方便得很。2.2.22.2.2 宏可以实现的操作宏可以实现的操作一般来说,使用宏可以实现下列操作:1创建全局赋值键(变量)

19、。2在首次打开数据库时,执行一个或一系列操作。3建立自定义菜单栏。4从工具栏上的按钮执行自己的宏或者程序。5可以使用宏把筛选程序加到各个记录中,从而提高记录查找的速度。6使用宏可以随时打开或者关闭数据库对象。南昌航空大学测光学院计算机课程设计67使用宏可以为窗体或者报表中的控制设置值,同时还可以模拟键盘动作,并把输入提供给对话框。8.可以使用宏来显示各种信息,并能够使扬声器发出报警声,以引起用户的注意。9使用宏可以实现数据自动传输。可以自动地在各种数据格式之间引入或导出数据。10可以使用宏移动 Access 环境下的任何一个窗体,并能够改变它们的大小。11使用宏可以启动其他的应用程序,可以是

20、MSDOS 应用程序,也可以是 Windows应用程序。12使用宏可以为窗体定制菜单,并可以让用户设计其中的内容。2.32.3 插值多项式的简介插值多项式的简介2.3.12.3.1 发展历史发展历史在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。早在 6 世纪,中国的刘焯已将等距二次插值用于天文计算。17 世纪之后,I.牛顿,J.-L.拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根

21、和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。2.3.22.3.2 主主要要内内涵涵插值问题的提法是:假定区间上的实值函数在该区间上个互不相同ba, xf1n点处的值是,要求估算在中某点的值。其做法是:nxxx10, nxfxf,0 xfba,在事先选定的一个由简单函数构成的有个参数的函数类1nnccc10,中求出满足条件的函数,并以作为nccc,10 nixfxPii, 1 , 0 xP xP的估值。此处称为被插值函数,称为插值结(节)点, xf xfnxxx10,称为插值函数类,上面等式称为插值条件,中满足上nccc,10nccc,10式的函数称为插值函数,称为插值

22、余项。当估算点属于包含 xPxfxR的最小闭区间时,相应的插值称为内插,否则称为外插。nxxx10,南昌航空大学测光学院计算机课程设计72.3.32.3.3 基本类型基本类型多项式插值多项式插值 这是最常见的一种函数插值。在一般插值问题中,若选取 为 n 次多项式类,由插值条件可以唯一确定一个 n 次插值多项式满足上述条件。从几何上看可以理解为:已知平面上 n1 个不同点,要寻找一条 n 次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一个是拉格朗日插值多项式,另一个是牛顿插值多项式。埃埃尔尔米米特特插插值值 对于函数 f(x),常常不仅知道它在一些点的 函数值,而且还知道它在这些

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

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

25、Lagrang 插值基函数插值基函数选取了作为插值空间的一组基函数。本节将引入该空间中令一组基nxxx, 12nP函数 Lagrang 插值基函数。针对个互异的插值节点,够照不超过 n 次的多项式 ,使之满足插1n ixni 0 xli值条件南昌航空大学测光学院计算机课程设计8 njixlijijijji, 2 , 1 , 0,10设 niiiixxxxxxxxxxcxl1110由得 1iixl niiiiiiiixxxxxxxxxxc11101故 niiiiiiiniiixxxxxxxxxxxxxxxxxxxxxl11101110或 ininniiiiiiiniiixxxxxxxxxxxxx

26、xxxxxxxxxxxxl1111101110其中 nnxxxxx01 xlxlxln,10成为关于节点的 Lagrang 插值基函数。 niix0它们依赖于插值点 。 niix0并满足: njixlijji, 2 , 1 , 0,2.4.22.4.2 LagrangLagrang 插值公式插值公式做 可以验证满足插值条件。称之为 Lagrang 插值多项 niiinxlxfxL0 xLn式。其误差估计为 xnfxLxfxRnnnn11!11.若被插值函数本身就是不超过 n 次的多项式,则有。 xfxLn2. 取,则。 故 niixl01 1xf 01nf 111110 xlxlxln拉格朗日

27、插值公式是 iniiininjjijnxfxlxfxxxxxR 100 其中南昌航空大学测光学院计算机课程设计9 njjijixxxxxl0ni, 2 , 1称为插值基函数,求该多项式的关键是求 xli。3 3 基于基于 EXCELEXCEL VBAVBA 的的 LagrangLagrang 插值插值的实现的实现3.13.1 问题的提出问题的提出已知函数 f(x)的插值条件为:ix0.400.550.650.800.901.05ix0.410750.578150.696750.888111.026521.25382求题中的拉格朗日擂值多项式,并求 f(0.596)的近似值。 xP53.23.2

28、 插值在插值在 ExcelExcel 中的实现中的实现将插值条件输人 Excel 工作表的区域 A2:B7 中(见表 1,当然也可以输人在其它地方),在 C3 中输入公式“=(B3 一 B2)/(A3 一 A2)”即得差商,C4 中输人10,xxf“=(B4 一 B3)/(A4 一 A3)”又得到差商;至于二阶差商,只要在 D4 中输21,xxf人公式“=(C4-C3)/(A4 一 A2)”,立即可得到的值,其余各阶差商的表210,xxxf上计算方法都是简单的重复操作,表 1 只给出最终结果。表 1 计算差商表南昌航空大学测光学院计算机课程设计103.33.3 程序设计程序设计编写出计算 f(

29、0.596)的宏 Macro4 如下(题中要求的的表达式可根据该宏的运 xP5行结果写出,由于式子较长,这里就省略了。若对别的 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

30、 V = 1For J = 0 To 5 If J = K Then J = J + 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 ICel

31、ls(12, 1).Value = W1End Sub3.43.4 运行结果运行结果运行该宏后,单元格区域 All:Fll 就出现 li(x)(i=0,1,2,5)的值, “A12”南昌航空大学测光学院计算机课程设计11中的值-0.007765546 就是,也是所要求的 f(0.596)的近似值。如图 1 所示。596. 05P图 1 运行结果南昌航空大学测光学院计算机课程设计124 4 结论结论本次设计实现了设计要求,包括:分析 Lagrang 插值数值算法; 掌握 EXCEL 环境下的 VBA 程序设计方法; 根据插值条件设计程序算法并编制程序等。本次实验虽然简单,但却很有价值,可以简单、

32、快捷、实用的计算 Lagrang 插值函数,也可以通过此次实验拓展到其他插值函数的计算,使得许多复杂、烦琐的数值计算可通过自编数学软件轻松完成。南昌航空大学测光学院计算机课程设计13参考文献参考文献1 欧阳清,函数插值, http:/ 李敏州,借用录制宏的操作来帮助你学用 VBA 编程J,办公自动化2006 年第 01 期3 http:/ http:/ 吕洪升, 常见数值计算在 Excel 的 VBA 中实现J, 巢湖学院学报 , 2008 年第 10 卷第6 期总第 93 期6 王能超数值分析简明教程M北京:高等教育出版社,19997 谢乐军,李丽.中文 EXCEL2000 最佳实用教程M.中国民航出版社,1999.118 武汉大学计算毅学教研室等.计算方法M.北京:人民教育出版社,1979.9 杜茂康.Excel 与数据处理M.北京:电子工业出版社,2003.10 封建湖等.计算方法典型通分析解集M.西安:西北工业大学出版社,1998.南昌航空大学测光学院计算机课程设计14致谢致谢在本次设计的整个过程中,特别感谢指导老师吴伟老师,谢谢他在本次实验中的指导和改正,让我见识到对科研的执着于认真,也让我端正了对科研的正确态度。谢谢同学们对电脑运用方面的指导于帮助。同时也感谢在百忙之中对我的论文进行评审并提出宝贵意见的老师们。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!