1、毕业论文 开题报告 信息与计算科学 MATLAB 在高等数学中的应用 一、选题的背景、意义 1.1.选题的背景 由于计算机的发展和普及,科学计算已成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。并且经过不断的研究和累积,在现今科学研究和工程实践中,数值计算已经发展成为一门用来分析数据,解决实际问题的重要学科,成为继理论分析、实验之后又一个重要的研究方法。 MATLAB 是一种数值计算环境和编程语言, MATLAB 基于矩阵运算, 具有 强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的
2、编程极为简单。 MATLAB 既能进行科学计算,又能开发出所需要的图形界面。 1 1.2.选题的意义 高等数学是一门研究自然科学和工程技术的重要工具,深刻影响着生产技术和自然科学的发展,在今天飞速发展的知识经济和信息时代,其重要性已愈加的突出。 MATLAB 实验课正是为学习“用数学”、加强动手能力、训练创新思维所做的一种有益尝试。 MATLAB 实验是一种有用的学习手段:通过特定粒子的计算和观察,可帮助我们直观地 理解非常抽象的数学内容,了解它的应用背景,化枯燥为有趣,激发学习数学的兴趣。 MATLAB 实验是一种有效的科研方法:将一堆数据可视化,或者选择有代表性的特定实例进行观察,从中发现
3、和归纳有意义的规律并进行理论论证。 通过 MATLAB 数学实验,掌握必要的实验手段;学习有用的实验设计方法和思想;激发学习数学的兴趣;体会数学技术的重要性;注重创新思维的训练;提高自身的数学素养,为未来将面对的科学研究和生产实践奠定必要的基础。 2 二、研究的基本内容与拟解决的主要问题 2.1.MATLAB 软件介绍 2.1.1.MATLAB 软件概况 3、 4 “ MATLAB” 是“ Matrix Laboratory” 的缩写。 MATLAB 的第一个版本是 LINPACK 和EISPACK 库的程序的一个接口,用来分析线性方程组。随着 MATLAB 的演化,除了线性代数外,它还支持许
4、多其他的程序。 MATLAB 的核心仍然是基于命令行的交互式分析工具。用户可以用类 Fortran 语言扩展交互环境。交互环境中的程序以命令行的形式执行。 MATLAB 用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑 和用户接口定制。 MATLAB 的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。 MATLAB 是一个基本的应用程序,它有一个称为标准工具箱的巨大程序模块库。 MATLAB工具箱包括解决实际问题的扩展库,如:求根、插值、数值积分、线性和非线性方程组求解以及常微分方程组求解。由于继承了 LINPACK、 EIS
5、PACK 和 LAPACK 的特性, MATLAB 对数值线性代数来说是一个高可靠的优化系统。许多数值作业能够用线性代数语言精确地表示。MATLAB 和线性代数的密切关系是程序员能够用很短的 MATLAB 语言来解决 复杂的数值作业。标准工具箱还包括数据可视化的扩展图形库,有简单的点、线和复杂的三维图形和动画。所有的 MATLAB 程序都可以使用这些函数,这样就可以在所有程序和程序集中分析并生成达到出版质量的图示。对图形的快速访问能有效地提高用户的效率。诊断点有助于调试程序和检验算法是否正确执行。低级的图形函数为自定义图形用户接口的分析代码提供了扩展空间。除了标准工具箱,可以使用其他的工具箱,
6、如:信号处理、图像处理、优化、统计分析、偏微分方程的求解和许多数值计算的应用。 2.1.2.MATLAB 语言特点 5、 6 MATLAB 语言有不同于其他高级语言的特点,它被称为第四代计算机语言, MATLAB 语言的最大特点就是简单和直接。正如第三代计算机语言使人们摆脱对计算机硬件操作一样,MATLAB 语言使人们从烦琐的程序代码中解放出来。它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。 MATLAB 语言的主要特点可概括如下: ( 1) 以矩阵和数组为基础的运算 MATLAB 是以矩阵为基础的,不需要预先定义变量和矩阵 (包括数组 )的维数,可以方便地进行矩阵的算术运算、关
7、系运算和逻辑运算等。 ( 2) 简单易学,使用方便 MATLAB 被称 为 “ 草稿式 ” 语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写 MATLAB 程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外 MATLAB 还是一种解释性语言,不需要专门的编译器。 ( 3) 强大的图形技术 MATLAB 具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且打印这些图形。 MATLAB 的图形技术既包括一些可以方便产生二维、三维科技专业图形的高级绘图函数,又包括一些可以让用户灵活控制图形特点的低级绘图命令。另外,用户还可以利
8、用 MATLAB 的句柄图形技术创建图形用户界面。 (4)编程效率极高 MATLAB 是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。 (5) 可扩充性强,具有方便的应用程序接口 MATLAB 不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。而且用户还可以根据需要方便地编写和扩充新的函数库。通过混合编程用户可以方便地在 MATLAB 环境中调用其他用 Fortran 或者 C 语言编写的代码,也可以在 C 语言或者 Fortran 语言程序中调用 MATLAB 计算引擎来执行 MATLAB 代码。 2.1.3.高等数学介绍 7, 8 高等数学是理
9、、工科院校一门重要的基础学科。作为一门科学,高等数学有其固有的特点,这就是高度的抽象性、严密的逻辑性和广泛的应用性。抽象性是数学最基本、最显著的特点 -有了高度抽象和统一,我们才能深人地揭示其本质规律,才能使之得到更广泛的应用。严密的逻辑性是指在数学理论的归纳和整理中,无论是概念和表述,还是判断和推理,都要运用逻辑的规则,遵循思维的规律。所以说,数学也是一种思想方法,学习数学的过程就是思维训练的过程。人类社会的进步,与数学这门科学的广泛应 用是分不开的。尤其是到了现代,电子计算机的出现和普及使得数学的应用领域更加拓宽,现代数学正成为科技发展的强大动力,同时也广泛和深人地渗透到了社会科学领域。因
10、此,学好高等数学相当重要。 2.2.MATLAB 在高等数学中的应用 2.2.1.MATLAB 符号计算在高等数学中的应用 例 1:我缉私雷达发现,距离 d 处有一走私船正以匀速 a 沿直线行驶,缉私艇立即以最大速度(匀速 v)追赶。若用雷达进行跟踪,保持船的瞬时速度方向始终指向走私船,则缉私艇的运动轨迹是怎么样的?是否能追赶上走私船?如果能追赶上,需要用多长时间?使用 数值方法行进模拟 9。 思路:选取走私船逃跑方向为 x 轴,开始时刻缉私艇的位置于 y 轴上的 0M 点,设开始时刻走私船位于 0S 处,参见图一 图一 追击问题示意图 模拟方法:由于可用雷达跟踪,所以缉私艇始终对准走私船,用
11、参数方程 ()( ) 0x x ty y t t 描述缉私艇的轨迹。走私船做匀速直线运动,在 t 时刻的位置是 0s s at,因此当缉私艇行驶到点 M 的位置时,其速度指向 S 点。由几何关系有 0ta n ( )d y y yd t S x S a t x ( 1a) 这并不是一个常微分方程,为了进行数值模拟,还需作进一步的变形。 将速度分解为沿 x 方向和沿 y 方向的两个分速度: c o s , s indx dyvvdt dt ( 1b) 其中 0 2 2 2 200c o s , s in( ) ( ) ( ) ( )S a t x yS a t x y S a t x y 进行数
12、值模拟时,可采用时间步长法:按时间流逝的顺序一步一步对缉私艇和走私船的活动进行模拟。由( 1)式出发,类似于 Eular 方法,分别计算它们在每个时刻的 x 坐标和 y坐标,从而可递推地计算它们的位置坐标。在整个模拟过程中,时间步长是固定不变的。下面给出一个参考算法: 算法 : ( 1)适当选取参数,如 d=120km, v=90km/h, a=80km/h, 0S =8km.根据这些数据画出缉私艇和走私船的初始位置,并在图上作适当注明; ( 2)选取时间区间 0,T,将其 n 等分,时间步长为 dt, 缉私艇的初始坐标为 00( , )xy ; ( 3)根据( 1)式,递推计算 11c o
13、s ( ) , s i n ( )k k k k k kx x v d t y y v d t 思考 10: ( 1)缉私艇是否能够追赶上走私船?如果其他条件都不改变,这一问题显然和两者的速度有关。数值模拟简单方便直观,适用范围广,但是常常难以揭示变量之间内在的联系。理论分析仍然是 很重要的,如果能够得到追线的解析表达式,则可以再理论上进行演绎推理分析得到结论。 数值模拟只能是归纳推理。我们可以先固定走私船的速度,改变缉私艇的速度,通过观察计算的结果得到直观印象,然后设法归纳出某种结论。例如追击时间和走私船速度的关系等等。请读者自行设计问题进行观察实验。 ( 2)如果走私船在途中突然改变方向,
14、或者沿着某个曲线运动,追击曲线是什么状态? 如果追踪雷达失效了,缉私艇应采用什么策略才能确保追上走私船? 当缉私艇雷达发现 d 处有一走私船后,雷 达突然损坏,无法跟踪走私船逃窜的位置。若假定走私船做匀速直线运动(但方向不知),且缉私艇速度 v 大于走私船的速度 a,则缉私艇应采用什么样的航行路线,不管走私船从哪个方向逃跑,都能追捕上它吗? 提示 选取极坐标:以初始时刻走私船的位置为极点,以极点发出的过初始时刻缉私艇位置 0M 的射线为极轴, 0M 的极坐标为 (,0)d ,参见图二 图二 追线问题,雷达失效的情形 设缉私 艇的航线 ()L 的参数方程为: ( ),( ).tt 走私船沿机角为
15、 0 的直线行驶,经过时间 t 后在 L 上的点 ( , )M 处与缉私艇相遇(被捕获),故有 at ( 2a) 另一方面,作曲线运动的质点,其速度等于 dsv dt ,在极坐标下弧微分等于22( ) ( )ds d d ,从而有 2 2 2( ) ( )ddv dt dt 8 ,将 at 代入该试,并经过化简整理得到 21d vaatdt ( 2b) 方程( 2)构成了缉私艇的运动方程,对其进行数值模拟。 用符号演算方法推到追线问题的解析解 11。 追线问题可化为一个常微分方程,并可得到解析解。由于走私船的运动路程为0S S a t ,由( 1)式 0dy ydx S at x ( 3a)
16、上式中含时间 变量 t ,必须设法消去。注意( 1a)意味着 22 2dx dy vdt dt ( 3b) 将上述两个方程联立可消去 t 。 为计算简单起见,把 y 作为自变量,将( 3a)写成 0dxy S at xdy ( 3a) 两边对 y 求导(用 MATLAB 符号演算): 【 syms y a v s0 x=sym(x(y);t=sym(t(y); %定义函数关系 f_left=-y*diff(x,y);f_right=s0+a*t-x; %方程左、右边表达式 %求导 】 r_left=diff(f_left,y),r_right=diff(f_right,y) r_left=-d
17、iff(x(y),y)-y*diff(x(y),$(y,2) r_right=a*diff(t(y),y)-diff(x(y),y) 所以求导后的方程为 22 ,d x d x d t d xyad y d y d y d y 另一方面,从方程( 3b)容易解出 2 22(1 ( ) )dt x vdy ,代入前式即消去中间变量 t,得方程 2 22 (1 ( ) ) /d x d xryd y d y ( 4a) 其中 ar v 为逃逸速度和追击速度之比,而初始条件为 2 2 2 2 2 20 0 0 0( ) 0 , ( ) /x d S x d S S d S ( 4b) 下面采用 MA
18、TLAB 的符号求解微分方程的运算命令解这一方程。 求解符号微分方程指令 dsolve:格式为 r=dsolve(eq1,eq2,.,cond1,cond2,.,v) 其中 eq1,eq2,.为相应的微分方程(组), cond1,cond2,.为初始条件 , v为自变量 【 yms y d r xs=simplify(dsolve(D2x=-r*sqrt(1+Dx2)/y,x(20)=0,Dx(20)=0,y) xs=1/2*(y(1+r)*r*20(-r)+y(1-r)*r*20r-40*r-y(1+r)*20(-r)+y(1-r)*20r)/(-1+r2) 】-1/2*(y*exp(-2*
19、r*(-log(y)+2*log(2)+log(5)*r+y*r-40*r*exp(-r*(-log(y)+2*log(2)+log(5)-y*exp(-2*r*(-log(y)+2*log(2)+log(5)+y)/(-1+r2)*exp(r*(-log(y)+2*log(2)+log(5) 可见 xs 有两个解,第一个解经整理得 1121 ( 4 0 2 0 ( 1 ) 2 0 ( 1 ) )1 r r r rx r r y r yr , 第二个解不合理舍去。 2.2.2.MATLAB 绘图在高等数学中的应用 在多元微积分中,总会遇到各种各样的空间曲面,用 MATLAB 绘图功能将它们可视
20、化,有助于加强我们的空间想象能力和对内容的理解。现在可以随时在计算机上将高等数 学中所遇到的函数图绘制出来进行观察和思考。也就是说,已经初步掌握了一种数学实验工具和简单的试验方法 12。 但是,数学实验并不总是简单的,如果遇到的问题难度增加,实验的难度也就随之增加。即使绘制一个函数的图形,在实验中有时也会遇到麻烦,需要仔细分析,找出原因所在,改进实验方法,在实践中不断提高自身的数学修养和水平。 现在讨论一个高等数学的例子。平面截割法是分析曲面形状的一个有用方法,该方法的要点是,对给定的空间曲面(例如二次曲面),选定垂直于 z 轴的一组平 面对曲面进行截割,通过观察各截面与曲面的交线形状,分析整
21、个曲面的形状。同理可选垂直 x 轴或 y 轴的平面进行分析,以取得对曲面更完整的了解 13。 用平行截面法讨论由曲面 222z x y 构成的马鞍面形状 14。 这样的问题显然比直接画出一个函数的图形要复杂一些,必须理解平行截面法的原理。在此基础上设计一个好的实验方案 ,便于观察。 用 平 行 与 xy 的 平 面 组 za 截 割 曲 面 , 平 面 za 与 曲 面 交 线 是 双 曲 线222x y a,可以设计一个实验,画出了马鞍面、截割平面以及截割平面和马鞍面的交线;如果能将截割所得的双曲线显示在另一图形中,则能更好地表现平行截割法的内涵。 【 a=-20;eps0=1; x,y=m
22、eshgrid(-10:0.2:10); %生成平面网络 v=-10 10 -10 10 -100 200; %设定空间坐标系的范围 colormap(gray) %将当前的颜色设置为灰色 z1=(x.2-2*y.2)+eps; %计算马鞍面函数 z1=z1(x,y) z2=a*ones(size(x); %计算马鞍面 z2=z2(x,y) r0=abs(z1-z2)eps0 时, r0=0。 %可用 mesh(x,y,r0)语句观察它的图形,体会它的作用,该方法可以套用 zz=r0.*z2;xx=r0.*x;yy=r0.*y; %计算截割的双曲线及其对应的坐标 subplot(2,2,2),
23、 %在第 2 图形窗口绘制双曲线 h1=plot3(xx(r0=0),yy(r0=0),zz(r0=0),+); set(h1,markersize,2),hold on,axis(v),grid on subplot(2,2,1), %在第 1 图形窗口绘制马鞍面和平面 mesh(x,y,z1);grid,hold on;mesh(x,y,z2); h2=plot3(xx(r0=0),yy(r0=0),zz(r0=0),.); set(h2,markersize,6),hold on,axis(v), for i=1:5 %一下程序和上面是类似的,通过循环绘制一系列的平面去截割马鞍面 a=7
24、0-i*30; %在这里改变截割平面 z2=a*ones(size(x);r0=abs(z1-z2)=1;zz=r0.*z2;yy=r0.*y;xx=r0.*x; subplot(2,2,3), mesh(x,y,z1);grid,hold on;mesh(x,y,z2);hidden off h2=plot3(xx(r0=0),yy(r0=0),zz(r0=0),.);axis(v),grid subplot(2,2,4), h4=plot3(xx(r0=0),yy(r0=0),zz(r0=0),o); set(h4,markersize,2),hold on,axis(v),grid on
25、 end 】 结果由图三给出 图三 15 三、研究的方法与技术路线、研究难点,预期达到的目标 1、研究内容 ( 1)掌握 MATLAB 的基本语 法、基本命令、 MATLAB 函数及程序设计 ( 2)熟悉高等数学的计算方法; ( 3)应用 MATLAB 符号计算和绘图进行高等数学实验。 2、研究方法及技术路线 本论文主要以查找资料,以现有的知识水平,在前人的研究论述基础上,应用 MATLAB来进行数学实验。采取了从大量阅读已有的数据资料,然后对这些内容进行总结,最后运用相关知识来编程求解的技术路线 。 3、研究难点 ( 1)对编程的熟练程度及对高等数学的学习和掌握程度有待加强; ( 2)由于论题比较深奥,很难有独创或新颖之处;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。