1、 本科 毕业论文 ( 设计 ) ( 20 届) 二重积分计算的 MATLAB GUI 设计 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 摘要 :本文首先介绍了 MATLAB GUI,以及它在数值计算方面的应用。接着,叙述了二重积分的定义,计算方法和计算 步骤。然后介绍了应用 MATLAB求二重积分的命令。最后通过 MATLAB GUI绘制图形使数据可视化,即用 MATLAB GUI设计图形用户界面,实现二重积分的计算。在文章中,我给了两个用 MATLAB GUI 计算二重积分的程序的例子。本文对加强自身的计算机编程能力和数学分析能力有一定的指导作用。
2、关键词 :MATLAB GUI;数值计算;二重积分 The Calculation of Double Integral by MATLAB GUI Design Abstract: In this paper the software of MATLAB GUI and the application of MATLAB in numerical computation are introduced. Then the definition, the calculation method and the calculation steps of double integral are des
3、cribed. And then I introduce the order of double integral with MATLAB. Finally the graphics data is visualized by MATLAB GUI. That is using the MATLAB GUI to implement solving the calculation of double integral. In the paper, I give two examples by writing the program of double integral with MATLAB
4、GUI. This paper plays a part in the guidance to strengthen our own computer programming ability and mathematical analysis ability. Keywords:: MATLAB GUI; numerical computation ;double integral 目 录 1 绪论 . 1 1.1 问题的背景、意义 . 1 1.1.1 背景 . 1 1.1.2 意义 . 1 2 MATLAB软件介绍 . 3 2.1 MATLAB软件概况 . 3 2.1.1 MATLAB软件简
5、介 . 3 2.1.2 MATLAB语言特点 . 3 2.2 MATLAB GUI介绍 . 4 2.2.1 GUI基本概念 . 4 2.2.2 GUI层次结构 . 5 2.2.3利用 GUIDE创建 GUI . 6 3 二重积分的定义 . 8 4 二重积分 的计算方法及步骤 . 9 4.1 二重积分的计算方法 . 9 4.1.1 矩形区域 , , D a b c d上的二重积分计算 . 9 4.1.2 一般区域上的二重积分计算 . 9 4.2 二重积分的计算步骤 . 11 4.2.1 在直角坐标系下用二次积分计算二重积分的步骤: . 11 4.2.2 在极坐标下用二次积分计算二重积分的步骤:
6、. 11 4.2.3 二重积分的一般变量替换的步骤: . 11 5 二重积分的计算的 MATLAB 实现 . 12 5.1 符号解法 . 12 5.2 数值解法 . 12 6 MATLAB GUI在二重积分计算中的应用 . 14 6.1 符号解法的应用 . 14 6.2 数值解法的应用 . 18 7 结论 . 23 致 谢 . 错误 !未定义书签。 参考文献 . 24 1 1 绪论 1.1 问题的背景、意义 1.1.1 背景 在科学研究和工程应用中,人们通常希望将数据、设计或计算结果用交互式图形表示,以使数据的特征或性能能够清晰、直观地以 GUI方式展现。通常,快捷方便地绘制图形,尤其是不规则
7、图形,需要对绘图工具、语言有较为深入的了解,需要熟练使用这些工具或编写程序,而这通常是一项入门缓慢、熟练精通时间 较长的工作。 MATLAB 在提供强大计算功能的同时,近年来还大力发展了面向对象的图形技术和 GUI 技术,使用户可以轻松实现数据的交互式显示。 MATLAB 的图形绘制、图形高级操作以及 GUI 这些方面的应用日益普遍。使用 MATLAB 提供的图形设计技术,用户无须了解图形实现的细节内容,有时甚至只需几个简单的函数就可以绘制非常复杂的图。另外,用户还可以根据需要来规划、设计 MATLAB的图形外观,不断调整完善,直至绘图结果完全符合用户要求。总之,利用 MATLAB提供的 GU
8、I设计工具或编写程序,可以简单、便捷地设计出美观、 方便的菜单化和控制式的人机交互界面。 1 MATLAB是一种数值计算环境和编程语言,主要包括 MATLAB和 Simulink两大部分。 MATLAB基于矩阵运算,具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB既能进行科学计算,又能开发出所需要的图形界面。图形用户界面( GUI)是由窗口、光标、按键、菜单、文字说明等对象( Objects)构成的一个用户界面。用户通过一定的方法选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计 算、绘图等。 2 在高等数
9、学的学习中,经常面临一些有关图形和计算问题。但是很多函数的表达和计算过于抽象,而使用 MATLAB 可以通过 GUI 设计很好地解决这些问题,并且可以对相关的函数利用 MATLAB的强大数值计算功能进行进一步分析,同时可以执行一些动作或变化来满足用户的需求。 1.1.2 意义 积分理论是微积分学的重要内容之一,计算二重积分是计算重积分的基础 , 所以是数学分析课程的重点。由于二重积分是一种和式的极限 , 用定义来计算它是比较困难的。因此 ,二重积分的计算也是学习中的一个难点。 在计算二重积分 时,通常是把二重积分化为累次积分来计算,然而在实际计算化二重积分为二次积分的过程中往往会遇到原函数无法
10、用初等函数表示的情形,这时需要考虑二重积分的近似计算方法。而 MATLAB 不管是在符号计算方面,还是在数值计算方面都是十分擅长的。 MATLAB 有自带的符号积分命令能实现二重积分的精确求解,有数值积分命令能实现二重积分的近似计算,而且用户还可以通过它自己编写程序来实现二重积分的计算。 运用 MATLAB 的计算2 能力和 用 MATLAB GUI设计图形用户界面,实现二重积分计算的数据可视化是有一定的现实意义的。一方面二重积 分图形可视化会显示求函数积分的过程,通过图形来表达二重积分的顺序及其含义,观察积分变量的依次积分情况来体会二重积分概念的内涵。另一方面可以加强自身的计算机编程能力和数
11、学分析能力。 3 2 MATLAB 软件介绍 2.1 MATLAB 软件概况 2.1.1 MATLAB 软件简介 4,5 MATLAB 是 Matrix Laboratory(矩阵实验室 )的缩写 ,由美国 Mathworks 公司开发。 MATLAB 语言是当今国际上科学界 (尤其是自 动控制领域 ) 最具影响力、也是最有活力的科学计算软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。 MATLAB 语言在各国高校与研究单位正扮演着重要的角色。在美国的一些大学里, MATL
12、AB 正在成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界, MATLAB 也被用来解决一些实际课题和数学模型问题。它在其他科学与工程领域的应用也是越来越广,并且有着更广阔的应 用前景和无穷无尽的潜能。 MATLAB 用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。 MATLAB 的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。 MATLAB 是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB 工具箱包括解决实际问题的扩展库,如:求根、插值、数值积分
13、、线性和非线性方程组求解以及常微分方程组求解。由于继承了 LINPACK、 EISPACK 和 LAPACK 的特性, MATLAB 对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。 MATLAB 和线性代数的密切关系是程序员能够用很短的 MATLAB 语言来解决复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的 MATLAB 程序都可以使用这些函数,这样就可以在所有程序和程序集中分析并生成达到出版质量的图示。对图形的快速访问能有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为
14、自定义图形用户接口的分 析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。 2.1.2 MATLAB 语言特点 6,7 MATLAB 语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。正如第三代计算机语言使人们摆脱对计算机硬件操作一样, MATLAB 语言使人们从烦琐的程序代码中解放出来。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。 MATLAB语言的主要特点可概括如下: 4 ( 1)以矩阵和 数组为基础的运算 MATLAB 是以矩阵为基
15、础的,不需要预先定义变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。 ( 2)简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB还是一种解释性语言,不需要专门的编译器。 ( 3)强大的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些 图形增加注释并且打印这些图形。 MATLAB 的图形技术既包括一些可以方便产生二维、三维科技专业图形的高级
16、绘图函数,又包括一些可以让用户灵活控制图形特点的低级绘图命令。另外,用户还可以利用 MATLAB的句柄图形技术创建图形用户界面。 (4) 编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。而且用户还可以根据需要方便地编写和扩充新 的函数库。通过混合编程用户可以方便地在 MATLAB 环境中调用其他用 Fortran 或者 C 语言编写的代码,也可以在 C 语言或者 Fortran 语言程序中调用 MATLAB 计算
17、引擎来执行 MATLAB代码。 2.2 MATLAB GUI 介绍 1.8 2.2.1 GUI 基本概念 一个可以发布的应用程序通常都需要有一个友好的图形用户界面( Graphical User Interface)。程序的用户界面是用户与计算机程序的交互方式,用户通过键盘、鼠标等输入设备与计算机交换信息。图形用户界面( GUI)是包 含图形对象,如窗口、图标、菜单和文本的用户界面。用户以某种方式选择或激活这些对象,会引起动作或发生变化,例如调用计算程序或者绘图等。 图形用户界面通常是一种包含多种图形对象的界面,典型的图像界面包括图形显示区域,功能按钮控件以及用户自定义的功能菜单等。为了让界面
18、实现各种功能,需要对各个图形对象进行布局和事件编程。当用户激活对应的 GUI对象时,就能执行相应的时间行为。 创建 MATLAB用户图形界面必须具有以下 3个基本元素: 5 (1) 组件 在 MATLAB GUI 中的每一个项目(按钮、标签、编辑框等)都是一个图形 化组件。组件可分为3类:图形化控件(按钮、编辑框、列表、滚动条等)、静态元素(窗口和文本字符串)、菜单和坐标系。 图形化控件和静态元素由函数 uicontrol创建,菜单由函数 uimenu和 uicontextmenu 创建,坐标系经常用于显示图形化数据,由函数 axes创建。 (2) 图形窗口 GUI的每一个组件都必须安排在图像
19、窗口中。在画数据图像时,图像窗口通常会被自动创建。但还可以用函数 figure来创建空图像窗口,空图像窗口经常用于放置各种类型的组件。 (3) 回应 如果用户用鼠标单击或用键盘输入一些信息, 那么程序就要有相应的动作。鼠标单击或输入信息是一个事件,如果 MATLAB 程序运行相应的函数,那么 MATLAB函数肯定会有所反应。例如,如果用户单击一按钮,这个事件必然导致相应的 MATLAB 语句执行。这些相应的语句被称为回应。只要执行 GUI的单个图形组件,就必须有一个回应。 2.2.2 GUI 层次结构 实现一个 GUI的过程包括 基本任务:一是 GUI的组建布局,另一个是 GUI 组件编程。另
20、外,用户还必须能够保存并发布自己的 GUI,使得用户开发的图形用户界面能够真正得到应用,所有这些功能都能可以通过图形用户界面开发 环境来完成。 GUI 也是一种 MATLAB 对象,可以使用 M 文件来创建 GUI 对象,这也是最基础的,使用其他方法创建时,也需要编写相应的程序代码。除了使用 M 文件来创建 GUI 对象外, MATLAB 还为用户开发图形界面提供一个方便高效的继承开发环境: MATLAB 图形用户界面开发环境( MATLAB Graphical User Interface Development Environment,GUIDE)。其主要是一个界面设计工具集,他将所有 G
21、UI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方 法。除了可以使用 GUIDE创建 GUI之外,还可以将设计好的 GUI界面保存为一个 FIG资源文件,同时自动生成对应的 M 文件。该 M 文件包含了 GUI 初始化代码和组建界面布局的控制代码。使用 GUIDE 创建 GUI 对象执行效率高,可以交互式的进行组件布局,还能生成保存和发布 GUI的对应文件。 GUIDE可以首先在布局 GUI的同时生成以下两个文件: ( 1) FIG文件。该文件包括 GUI的图像窗口和所有子对象(包括用户控件和坐标轴)的完全描述以及所有对象的属性值。 ( 2) M文件。该文件包括用户用
22、来发布和控制界面和回调函数(这 里作为子函数)的各种函数。6 该文件中不包含任何组件的布置信息。 可以这样说, MATLAB 图形界面程序的核心就是句柄图形的应用,对句柄图形的充分了解将使得 MATLAB图形界面程序的编写更加容易。 句柄图形是一组底层图形函数的名称,这些函数用来在 MATLAB中生成图形,它提供了对图形的高级控制,其基本思想是: MATLAB 的每一个可视部分就是一个对象,每个对象都有一个相应的唯一标识符,即句柄。通过对句柄图形的操作,就可以对该句柄图形所对应的对象进行控制,比如修改属性、调用其回调过程等。 MATLAB的图形对象包括 uimenu、 unicontrol和
23、uicontextmenu对象以及图形、坐标轴及其子对象,其对象层次结构如下图所示。 2.2.3 利用 GUIDE 创建 GUI MATLAB的 GUIDE开发工具为用户提供以下几种组件布局工具: (1) 组件布局编辑器:添加和安排图形窗口中的对象; (2) 排列工具:排列对象的相应次序; (3) 属性编辑器:查看和设置属性值; (4) 对象浏览器:观察本次运行中图形对象句柄的层次关系; (5) 菜单编辑器:创建图形窗口菜单 。 这些工具集中在布局编辑器界面中,使用 guide 命令可以显示该界面,创建一个新的 GUI框架布局时,在添加需要布置的组件之前,应该使用 GUIDE 应用程序选项对话框对 GUI 进行组态。一般都通过组件布置编辑器 Tools 菜单的 GUI Options选项来打开 GUIDE应用程序选项对话框。在该对根(计算机屏幕) 图形 复选框 编辑框 框架 列表框 组合框 按钮 文本 Uimenu Uimenu Uicontextmenu Uimenu 坐标轴 刻度尺 线条 文本 表面 矩形 图像 光源