1、 本科毕业论文(设计) ( 201 届) MATLAB 在高等数学中的应用 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 I 摘要: 本文首先介绍了 MATLAB这个数学软件, 接着,又介绍了 MATLAB 的符号计算和绘图在高等数学中的运用。利用 MATLAB符号运算功能解决高等数学中求极限、函数的微积分、常微分方程的求解、级数和、幂级数展开等很多运算问题; 借助 MATLAB绘图功能,可以快捷、准确地绘出图形,有利于观察三维空间图形的形状,掌握图形的性质。 关键词: MATLAB;高等数学;符号计算;绘图。 II The application of
2、 MATLAB in higher mathematics Abstract: This dissertation begins with MATLAB which is the mathematical software. Then it introduces symbolic computation and drawing of MATLAB in the application of higher mathematics. With the function of symbolic operation, MATLAB can solve many computing problems o
3、f higher mathematics, including limit, the calculus in function, solving ordinary differential equation (ODE), sum of series, power series expansion and so on. By employing the function of drawing, MATLAB can quickly and accurately draw graphics that will help observe the shape of graphics in 3D and
4、 grasp the nature of graphics. Keywords: MATLAB ; Higher mathematics ; Symbolic computation ; Drawing III 目录 1 绪论 .1 1.1 问题的背景、意义 .1 1.1.1 背景 .1 1.1.2 意义 .1 2 MATLAB软件与高等数学介绍 . 2 2.1 高等数学介绍 .2 2.2 MATLAB介绍 . 4 2.2.1 MATLAB软件概况 . 4 2.2.2 MATLAB语言特点 . 4 2.2.3 MALAB符号微积分简介 . 5 2.2.4 MATLAB绘图的基本概念 . 9 3
5、 MATLAB在高等数学中的应用 . 21 3.1 MATLAB符号计算在高等数学中的应用 . 21 3.2 MATLAB绘图在高等数学中的应用 . 25 4 结论 .28 致 谢 .29 参考文献 .30 - 1 - 1 绪论 1.1 问题的背景、意义 1.1.1 背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一 。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLA
6、B是一种数值计算环境和编程语言, MATLAB基于矩阵运算, 具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 MATLAB既能进行科学计算,又能开发出所需要的图形界面。 1 1.1.2 意义 高等数学是一门研究自然科学和工程技术的重要工具,深刻影响着生产技术和自然科学的发展,在今天 飞速发展的知识经济和信息时代,其重要性已愈加的突出。 MATLAB实验课正是为学习“用数学”、加强动手能力、训练创新思维所做的一种有益尝试。 MATLAB 实验是一种有用的学习手段:通过特定粒子的计算和观察,可帮助我们直观地理解非常抽象的数学内容,了解
7、它的应用背景,化枯燥为有趣,激发学习数学的兴趣。 MATLAB 实验是一种有效的科研方法:将一堆数据可视化,或者选择有代表性的特定实例进行观察,从中发现和归纳有意义的规律并进行理论论证。 通过 MATLAB数学实验,掌握必要的实验手段;学习有用的实验设计方法和思想 ;激发学习数学的兴趣;体会数学技术的重要性;注重创新思维的训练;提高自身的数学素养,为未来将面对的科学研究和生产实践奠定必要的基础。 2 - 2 - 2 MATLAB 软件与高等数学介绍 2.1 高等数学介绍 高等数学是理、工科院校一门重要的基础学科。作为一门科学,高等数学有其固有的特点,这就是高度的抽象性、严密的逻辑性和广泛的应用
8、性。抽象性是数学最基本、最显著的特点 -有了高度抽象和统一,我们才能深人地揭示其本质规律,才能使之得到更广泛的应用。严密的逻辑性是指在数学理论的归纳和整理中,无论是概念和表述,还是判 断和推理,都要运用逻辑的规则,遵循思维的规律。所以说,数学也是一种思想方法,学习数学的过程就是思维训练的过程。人类社会的进步,与数学这门科学的广泛应用是分不开的。尤其是到了现代,电子计算机的出现和普及使得数学的应用领域更加拓宽,现代数学正成为科技发展的强大动力,同时也广泛和深人地渗透到了社会科学领域。因此,学好高等数学相当重要。 知识要点与背景:微积分基本定理 对有限个数 12, , , nf f f 求和1nx
9、xSf总是有意义的,对无限个数求 和会是怎么样的情况呢?对无限个可数的数 1 2 1, , , , , ,xxf f f f 和定义为 11limnxxnxxS f f但这时和 S 可能没有意义(级数散发),这是技术理论所讨论的内容。注意这里我们有意使用了下表符号 x(而不是用习惯的整数符号,如 k), x 取自然数 1,2,3, 。 如果无限个数不是可数的,例如 , xf x a b ,由于下标 x 在一个连续区间 , ab 中取值,所以 , xf x a b 的个数和 , ab 中点的个数一样多,这时如何将这些数求和呢? 稍微改变以上符号的记法,将 xf 写成 ()fx,这就是我们熟悉的函
10、数。上面的问题就是如何将一个函数进行连续求和? 定积分的概念是“和”的推广。如果函数 ()fx在区间 , ab 上连续,将 , ab n 等分:0 1 1k k na x x x x x b ,并在每个小区间 1 , iixx 上选取介点 i ,则定积分定义为 - 3 - 110 0( ) l im ( ) ( )nbi i ia if x d x f x x 其中 1m in , 1 , 2 , ,iix x i n ,为诸小区间长度最小者。直观上,微元 dx 相当于 1i i ix x x ,所以 ()f xdx 相当于 1( )( )i i if x x ,积分号 ba 相当于 100l
11、imni,故可理解为“连续求和”。当我们需要将一些“积分微元” ()f xdx 作连续求和的时候,就需要计算定积分。 在工程问题和科学实验中,常常需要计算定积分。例如,力学和电学中功和功率的计算、电流和电压平均值的计算以及一些几何图形的面积、 体积和弧长的计算等等。另外,微分方程的求解也是以积分计算为基础的。 可以用几种不同的方法计算定积分: ( 1)直接从定义出发,取近似和的极限。这在上面已经讨论过了。这种方法原理简单,但计算量大。在高等数学中不是重点内容,然而数值积分的各种算法却是基于定积分定义建立起来的。 ( 2)用不定积分计算定积分。不定积分是求导的逆运算,而定积分是考虑连续变量的求和
12、(如计算曲边梯形的面积)。表面上看是两个完全不同的概念,然而却通过牛顿 -莱布尼茨公式联系在一起了,甚至两者的符号也是类似的,牛顿 -莱布尼茨公式被称为微积分学基本 定理。 微积分学基本定理 (牛顿 -莱布尼茨公式) 如果 ()Fx是 ()fx的原函数,即 ( ) ( )F x f x 则有 ( ) ( ) ( )ba f x dx F b F a成立。 因此理论上为了计算定积分 ()ba f xdx,只需求出 ()fx的一个原函数,这可通过求 ()fx不定积分来完成。反之,如果将定积分的积分上限看成变量,便得到了上限积分函数( ) ( )xaF x f t dt ,它又是 ()fx的一个原函
13、数。这意味着,对于满足某些条件的函数 ()fx,不论其不定积分 ()f xdx 是否存在解析解,我们总是可以算出(至少在数值上)它的不定积分( ) ( )xaf x dx f x dx c ,这在理论分析和数值计算中都是很便利 的。在高等数学中求不定积分是重点学习内容之一,我们总是期望求出不定积分的封闭解来,但在实践中能够算出封闭解的积分并不多,所以数值积分是非常有用的工具。牛顿 -莱布尼茨公式不愧为微积分的“基本定理”。 ( 3)利用解微分方程的方法计算定积分。设函数 ()y yx , a x b 是连续可微的,它表述了平面上的一条曲线,如果 y 的导数满足 - 4 - ()dy fxdx
14、且曲线 ()y yx 过 0( , )ay 点,我们的问题是如何由上式确定曲线 ()y yx ?上式方程又和定积分 ()ba f t dt有什么联系呢? 由牛顿 -莱布尼茨公式有0( ) ( )xay y x y f t dt ,令初始值 0 0y ,则 ( ) ( )bay b f t dt 就是所需的积分。这就是说,如果算出了过初始点 (,0)a 的曲线 ()y yx ,则定积分 ()ba f t dt就是曲线在右端点处的值 ()yb 。 ()dy fxdx 是一个最简单的微分方程,把它右边的 ()fx改为( , )f xy ,就得到一般的一阶常微分方程初值问题: 0( , )()dy f
15、 x ydxy a y 相对于方程 ()dy fxdx ,此方程的解析度增加了很大的难度,但是从数值计算的角度来看并没有本质的困难。 2.2 MATLAB 介绍 2.2.1 MATLAB 软件概况 3、 4 “ MATLAB” 是“ Matrix Laboratory” 的缩写。 MATLAB 的第一个版本是 LINPACK 和 EISPACK库的程序的一个接口,用来分析线性方程组。随着 MATLAB的演化,除了线性代数外,它还支持许多其他的程序。 MATLAB的核心仍然是基于命令行的交互式分析工具。 用户可以用类 Fortran语言扩展交互环境。交互环境中的程序以命令行的形式执行。 MATL
16、AB是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库。由于继承了 LINPACK、 EISPACK和 LAPACK的特性, MATLAB对数值线性代数来说是一个高可靠的优化系统。 2.2.2 MATLAB 语言特点 5、 6 MATLAB语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。它丰富的函数使开发者无须重复编程,只 要简单的调用和使用即可。 MATLAB语言的主要特点可概括如下: ( 1) 以矩阵和数组为基础的运算 - 5 - MATLAB 是以矩阵为基础的,不需要预先定义变
17、量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB还是一种解释性语言,不需要专门的编译器。 ( 3) 强大 的图形技术 MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且打印这些图形。 (4)编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的
18、代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有丰富的库函数,而且用户还可以根据需要方便地编写和扩充新的函数库。通过混合编程用户可以方便地在 MATLAB环境中调用其他用 Fortran 或者 C 语言编写的代码,也可以在 C 语言或者 Fortran 语言程序 中调用 MATLAB 计算引擎来执行 MATLAB代码 。 2.2.3 MATLAB 符号微积分简介 利用 MATLAB符号工具箱( Symbolic Toolbox)可以进行符号演算,将一些繁琐的推理交给计算机完成。 ( 1) 创建符号变量 MATLAB的符号演算初步掌握并不困难,只需先创建
19、符号变量。常用的创建符号命令是: sym var: 创建单个符号变量; syms var1 var2 : 创建多个符号变量; f=sym(符号表达式 ):创建符号表达式,赋予 f; equ=sym( equation):创建 符号方程。 ( 2) 求符号极限 limit指令 求极限的命令是: limit(表达式 ,var,a): 求当 var a ,表达式的极限。 观察:求下列问题的极限: - 6 - (1) 1 0 s in ( ) s in (3 )lim s in ( )x xxI x ; (2) 2 ta n ( ) ta n ( )limxa xaI xa ; (3) 3 32(3
20、5)lim 1si n( )xxIx x syms x a I1=limit(sin(x)-sin(3*x)/sin(x),x,0) I2=limit(tan(x)-tan(a)/(x-a),x,a) I3=limit(3*x-5)/(x3*sin(1/x2),x,inf) 得出: I1 =-2 I2 =1+tan(a)2 I3 =3 ( 3)求导指令 diff a、符号求导指令 diff diff(f,var,n):求函数 f 对变量 var的 n 阶导数,缺省 n 时为求 1阶导数。缺省变量 var时,默认变量为 x。可以用来求单变量导数和多变 量函数的偏导数,还可以求抽象函数的导数。 观
21、察:求下面问题的导数 ( 1) 12 2( cos(3 )xd exdx ; ( 2) ( , , ( , )f x y g x yx ; ( 3) 22 ( , , ( , )f x y g x yxsyms x y f=sym(exp(-2*x)*cos(3*x(1/2) diff(f,x) g=sym(g(x,y) f=sym(f(x,y,g(x,y) diff(f,x) diff(f,x,2) 得出: f =exp(-2*x)*cos(3*x(1/2) ans =-2*exp(-2*x)*cos(3*x(1/2)-3/2*exp(-2*x)*sin(3*x(1/2)/x(1/2) g =g(x,y) f =f(x,y,g(x,y)