数学实验上册_第1页
数学实验上册_第2页
数学实验上册_第3页
数学实验上册_第4页
数学实验上册_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Mathematica数学实验东南大学数学系高等数学教研室2010. 10Mathematica软件简介Mathematica是美国Wolfram Research公司开发的著名数学软件,它的主要功能是给人们提供一个方便的数学计算平台。了解并掌握它的各种功能,有利于激发我们学习、应用数学的兴趣,能够使复杂的数值计算和符号运算方便、快捷,有助于我们学好数学,用好数学。一、Mathematica的主要功能1、符号运算功能:Mathematica最突出的特点就是具有强大的符号运算功能,能和人一样进行带字母的运算,得到精确的结果。符号运算功能可以分成4大类:(1)初等数学:进行各种数和初等函数式的计算

2、与化简。(2)微积分:求极限、导数(包括高阶导数和偏导数等)、不定积分和定积分(包括多重积分),将函数展成幂级数,进行无穷级数求和及积分变换。(3)线性代数:进行行列式的计算、矩阵的各种运算(加法、乘法、求逆矩阵等)、解线性方程组、求特征值和特征向量、进行矩阵分解。(4)解方程组:解各类方程组(包括微分方程组)。2、数值计算功能:可以做任意位数的整数或分子分母为任意大整数的有理数的精确计算,做具有任意位精度的数值(实、复数)计算。Mathematica具有众多的数值计算函数,能满足线性代数、插值与拟合、数值积分、微分方程数值解、求极值、线性规划及概率统计等方面的常用计算需求。3、 绘图功能:能

3、绘制各种二维平面图形与全方位的三维立体彩色图形,自动化程度很高。4、编程功能:用户可以自己编写各种程序(文本文件),开发新的功能。二、基本知识1、 启动与运行方法Mathematica作为标准的Windows程序,其启动方式与Windows下其它程序的启动方式一样。启动后出现的Mathematica界面如图1所示。Mathematica的界面由工作区窗口、基本图1输入模板和主菜单组成。左边为工作窗口区,可以直接输入函数或命令;工作区窗口右边的是基本输入模板,由一系列按钮组成;图上方所示的是主菜单。当输入完算式后按Shift+Enter键或Insert键执行计算,而“Enter”键可以用来换行。

4、如果执行运行后长时间没有完成计算,可以通过“Alt+空格键,”或“Alt+ .”来强制停止计算。2、变量Mathematica中的变量名是以字母开头并由字母或数字组成的字符串(长度不限),不能含有空格或标点符号,大写与小写字母用于表示不同的变量。一个变量可以表示各种类型的数或字符串,也可以表示一个算式。与C语言不同,不必事先声明变量的类型,Mathematica会根据用户给变量所赋的值自动处理。 使用等号给变量赋值,具体格式如下: x =Value 给x赋值。 x = y =Value 同时给x,y赋相同的值。x,y,=Value1,Value2, 同时给x,y,赋不同的值。为了避免隐蔽的错误

5、,应该及时清除不再使用的变量,这时可以用“Clear”命令,格式为“Clear变量名”;或者可以用“x= .”清除变量x的值。每次运行结束后,Mathematica会自动在输入的式子前面加上“Inn:=”(n表示输入命令的序列号),在输出的答案前面加上“Outn=”(n表示输出结果的序列号),以便分清输入和输出并自动加上编号。可以用“%”表示前一个输出的内容,“%” 表示倒数第2个输出的内容,依此类推,“%n”表示第n个(即Outn)输出的内容。也就是说Mathematica输出的内容被系统记忆,它们可以像其它变量一样在后面的计算中引用。 除了自定义的变量外,系统还有几个特殊变量。和e分别用专

6、用字符Pi和E表示,I表示虚数单位,复数用a+bI表示。Infinity表示无穷大,-Infinity表示,这些特殊字符也可以由基本输入模板的特殊字符按钮输入。3、数和算术表达式 Mathematica以符号运算为主,这与一些语言有所不同,例如等符号表示准确数,近似数用带小数点的数表示,例如1.2,2.3*105等。Mathematica中求近似值以及近似值的精度控制函数为函数“N”,其调用格式如下:N表达式 计算表达式的近似值,具有机器规定的精度(16位有效数字),但是按标准输出只显示前6位有效数字,可以使用函数NumberFormReal,n规定实数的显示位数n。N表达式,数字位数 指定计

7、算表达式的具有任意数字位数的近似值(指定的数字位数应该大于16),结果在末位后是四舍五入的。 常量和变量用算术运算符连接而成的式子称为算术表达式。表达式按照与常规相同的优先级自左向右执行计算。在运算中运用的标点符号必须是英文的,不能用中文的标点符号,“;”表示运算但不显示结果。Mathematica中和、差、积、商、乘方运算分别用相应的键“+”、“-”、“*”或空格、“/”、“”来表示,也可通过基本输入模板来输入。用“/.”可以进行变量替换,变量替换是求算式的值而不改变算式本身,例如输入命令:p = x2 + 2x y + y2;p / . x1运行结果可得:1 + 2y + y2,此运算是把

8、表达式中的x换为1但不改变变量p。若要替换两个变量,键入p/.x1,y2即可。4、 内部函数Mathematica支持所有的常用的数学函数,下面介绍一些简单而又常用的数学函数。Sinx 正弦函数 Cosx 余弦函数 Tanx 正切函数 Cotx 余切函数Secx 正割函数 Cscx 余割函数 ArcSinx 反正弦函数 ArcCosx 反余弦函数 ArcTanx 反正切函数 ArcCotx 反余切函数 Expx 表示exSqrtx 表示Logx 表示lnx(一般以a为底的对数函数用Loga,x表示)Absx 求实数的绝对值或复数的模Signx 符号函数 Maxx1,x2, 一组数的最大值Min

9、x1,x2, 一组数的最小值。n! 求n的阶乘Binomialn,k 求Mathematica系统函数的书写规则很严格,务必注意以下几点:(2)函数名的首字符用大写,后面的字符一般用小写,当函数名分成几段时,每段的首字符应大写,函数名中不能含有空格。(3)参数用方括号括起来,不能用圆括号,Mathematica认为圆括号表示相乘。5、表表是存储多个数、变量或算式等对象的一种数据结构。一个表用一对花括号表示,它的成员在括号内用逗号隔开,同一个表的成员可以有不同的数据类型,表的成员还可以是一个表(子表)。可以用“tn”来提取表t中的第n个元素。Mathematica中常用的建表函数是“Table”

10、,其调用格式如下:Tablef,i,imin,imax,stepi,j,jmin,jmax,stepj表的通项为f(f是变量i和j的函数),min,max,step规定了初值、终值、步长,min和step的默认值为1。用“Table”构成的函数集常常不具备可计算性,这时可以用“Evaluate”命令把它转化为可运算,其命令格式为:EvaluateTableµ。三、基本代数运算下面介绍一些实现基本代数运算的函数,用于变换数学表达式、解方程和解不等式。前面说过,Mathematica具有强大的符号运算功能,下面列举的函数均可代入具有字母的表达式进行计算,得到精确解。Simplifyexp

11、r 将表达式变换化简Factorexpr 对表达式进行因式分解Collectexpr,x 将表达式expr中x的同次幂合并ExpandexprExpandAllexpr这两个函数可用于乘积的展开,也可以展开分式。后者展开得更彻底,前者展开分式时只展开分子,而后者将分子、分母都进行展开Togetherexpr 对表达式进行通分Cancelexpr 约去表达式的分子、分母的公因式Apartexpr 将有理式分解为最简分式的和PolynomialQuotientp1,p2,x 求x的多项式p1被p2除的商PolynomialRemainderp1,p2,x求x的多项式p1被p2除的余式Polynom

12、ialGCDp1,p2,µ 求多个多项式的最大公因式。PolynomialLCMp1,p2,µ 求多个多项式的最小公倍式。Solveeqns,vars 求方程(组)的全部解。Reduceeqns,vars讨论系数出现的各种可能情况,分别求解。FindRooteqn,x,x0 数值求解(x0附近的解)NSolveeqns,vars 求代数方程(组)的全部数值解。Eliminateeqns,elims 从一组等式中消去变量(组)elims注意:在Mathematica中符号“=”用于给变量赋值,而方程中的等号使用符号“= =”表示。若是针对方程组的运算,则方程组用花括号括起来,

13、各个方程用逗号分隔,未知量也是如此。四、绘图1、点图的绘制用一个表给出点列中各点的坐标,用函数“ListPlot”可以绘制这些点列的图形,其调用格式为:ListPloty1,y2, 画出点对(1,y1),(2,y2),ListPlotx1,y1,x2,y2, 画出点对(x1,y1),(x2,y2),其中“数集y1,y2,”也可以由“Table”命令产生。如果要把相邻点用直线连接起来可加选项“PlotJoined®True”,其默认值是“False”,即不连接。2、一元显函数图形的绘制 在平面直角坐标系中绘制函数在区间的图形是函数“Plot”,其调用格式为:Plotf(x),x,a,b

14、,选项。同时绘制多个函数的调用格式为:Plotf1(x),f2(x),x,a,b,选项。作图命令“Plot”可带很多选项,现对常用的一些选项介绍如下:PlotRange 作图区域,格式为: PlotRange®因变量最小值,因变量最大值; PlotRange®自变量最小值,自变量最大值,因变量最小值,因变量最大值 PlotRange®All (表示显示所有点)PlotPoints 采样点数(默认值为25),格式为:PlotPoints®点数AxesLabel 指定坐标轴的名称,格式为:AxesLabel®横轴名称,纵轴名称GirdLines 在

15、图形上画横竖线,格式为:GirdLines®Automatic (表示在每个记号处画线)GirdLines(横轴方向画线处,纵轴方向画线处AspectRatio指定图形显示的高与宽的比例,格式为:AspectRatio®值;AspectRatio®Automatic(表示高宽比由计算机根据图形实际尺寸确定)3、参数方程所确定的曲线图形的绘制使用“ParametricPlot”命令,基本用法为:ParametricPlotxt,yt,t,tmin,tmax,选项选项基本与“Plot”的相同。同理可得由参数方程确定的空间曲线的绘图命令“ParametricPlot3D

16、”的调用格式。4、函数的立体图形的绘制使用“Plot3D”命令,基本用法为: Plot3Dfx,y,x,xmin,xmax,y,ymin,ymax,选项作图命令“Plot3D”也有很多选项,一些常用选项如表1所示。 选项 默认值 说 明 Axes True 是否画坐标轴 AxesLabel None 是否在坐标轴上加标注 Boxed True是否绘制外框 Mesh True是否在图形表面加上网格线 PlotRange AutomaticZ方向的绘图范围 Shading True表面上不着色 ViewPoint 1,3,-2,4,2观测点 PlotPoints 15在x和y方向取样点 表15、参

17、数方程所确定的曲面图形的绘制由于在曲面的显示方程作图时,Mathematica要求在自变量范围内(矩形区域)每一点处都计算其函数值,而这些值的计算在曲面边界处常会引起困难,因此直接用显函数形式绘制曲面时经常得不出理想的图形,这时可选取合适的参数方程来作曲面的图形。作参数方程所确定的曲面图形的命令格式为:ParametricPlot3Dxu,v,yu,v,zu,v,u,umin,umax,v,vmin,vmax,选项其选项基本与“Plot3D”的相同。6、图形的存储、重画与重叠可对已作的图形以一个变量存储,例如存储内的图形为变量t,则键入 t=PlotSinx,x,-Pi,Pi。可用命令“Sho

18、w”在同一坐标内画出已存储的图形t1,t2,t3,其调用格式为:Showt1,t2,t3五、微积分运算Mathematica提供了进行微积分运算的基本函数:微分、极限、积分、求和及泰勒级数展开,下面我们分别进行介绍。1、微分在Mathematica中,能方便地计算任意函数表达式的任意阶导数(或偏导数),微分操作函数见表2。函数名称函数功能说明Df,x关于x的偏微分Df,x1,x2,关于x1,x2等的偏微分Df,x,n关于x的n阶偏微分Dtf函数的全微分Dtf,x关于自变量x的全微分 表22、 积分 积分主要包括包括不定积分、定积分以及重积分。在Mathematica中,积分主要通过命令“Int

19、egrate”来完成,主要操作格式见表3。函数名称函数功能说明Integratef,x计算不定积分Integratef,x,y计算不定积分Integratef,xmin,xmax计算定积分Integratef,xmin,xmax,y,ymin,ymax计算定积分NIntegratef,x,xmin,xmax 计算定积分的近似值表3注意:对于分段函数或分区域函数,不能求其积分的精确值,但可求近似值,即再用“N”命令或用“NIntegrate”命令;可以通过基本输入模版来输入偏导和积分命令。3、极限在Mathematica中,求数列或函数的极限主要通过命令“Limit”来完成,它调用的主要格式有:

20、Limitan,n( 求数列an的极限Limitexpr,x(x0 求x趋向于x0时,expr的极限Limitexpr,x(x0,Direction(1 求expr当x趋向于x0时的右极限Limitexpr,x(x0,Direction(-1 求expr当x趋向于x0时的左极限4、求和运算、泰勒公式与幂级数展开 当符号变量的和存在时,可以使用“Sum”函数进行符号求和,其调用格式为: Sumexpr,n,n0,n1,n2 对表达式中的n从n0以步长为n2求和至n1,步长n2缺省时默认为1幂级数的展开格式为:Seriesexpr,x,x0,n(表示在x0点展开,阶数为n),而求函数的泰勒多项式格

21、式为:NormalSeriesexpr,x,x0,n。注意:对泰勒多项式作图时可使用“Evaluate”命令把它转化为可运算的。5、求解微分方程 在Mathematica系统中,用函数“Solve”可以得到微分方程的精确解,用函数“NSolve”可以得到微分方程的数值解,不过此时要给出求解区间,它们的命令格式如下:DSolveeqn,yx,x 求解微分方程eqnDSolveeqn1,eqn2,,y1x,y2x,x 求解微分方程组NDSolveeqn,yx,x,xmin,xmax 微分方程数值解注意:“NDSolve”命令会求出一个插值函数类型的近似解,是不可计算的,在作图时可利用“Evalua

22、te”命令把它转化为可运算的。六、编程基础虽然Mathematica提供了大量的函数可供使用,但在实际应用中,仍然经常需要自己定义函数或编写程序,以完成特定的功能。作为一种开发工具,Mathematica提供了完整的条件判断和各种控制循环语句,常用的语句与其它的高级语言很类似。1、自定义函数前面介绍了Mathematica本身自带的内置函数,下面我们以实例来说明定义函数的方法。例如,要定义函数,我们只要键入命令fx_:=Expx*(Sinx+1)+Logx2运行即可。要注意的是在函数的自变量后面有一个下划线“_”,这表示x为自变量,可以把x代入为任何的值进行计算;等号前面的有个冒号,表示定义函

23、数。同样可以定义多变量函数。定义了函数fx后,可以直接地调用fx来进行符号数学运算(例如积分、微分等)。2、 关系操作符与逻辑操作符关系运算符逻辑运算符<小于&& 与<=小于等于| 或>大于! 非>=大于等于=等于 表43、 条件结构我们在用计算机语言进行编程时,常用到条件语句,Mathematica也提供了多种设置条件的方法,并规定只有在该条件满足时才计算表达式。常用形式的条件结构有:lhs:=rhsl/;test当test为真时使用定义rshIftest,then,else 如test为真计算then,反之计算elseWhichtest1,value

24、1,test2,value2, 依次计算testi,给出对应的值vauleiSwitchexpr,form1,value1,form2,value2, expr与每一个formi相比较,给出相匹配的值valuei例如,我们可以用以下命令来定义分段函数: fx:=x2+1/;x>0;fx_:=-x2-1/;x<0;fx_:=0/;x=0或 fx_:=Ifx>0,x2+1,Ifx<0,-x2-1,0或 fx_:=Whichx>0,x2+1,x<0,-x2-1,x=0,0 4、循环结构Mathematica提供了与一般程序语言类似的描述重复执行的循环控制结构循环结

25、构:Do结构、For与While结构。下面将它们的调用形式做一简单介绍。Doexpr,i,imin,imax,di 循环计算expr,步长为di,i从imin增加imax(步长缺省则默认为1,imin缺省也默认为1)Doexpr,n 循环计算expr共n次Doexpr,i,imin,imax,di,j,jmin,jmax,dj 循环计算expr,i从imin到imax循环,对于每个i,j从jmin到jmax循环(即多重循环)Whiletest,body 只要test为真,则重复计算执行主体bodyForstart,test,incr,body 以start为起始值,重复计算执行主体body和执

26、行表达式incr改变循环变量的值,直到test为假要注意的是,当条件满足时,While循环一直进行,因此为了防止死循环,在While 中应包括命令能改变test的值。在有些情况下,需要改变正常的循环顺序,以便使计算流程更加自然和提高程序执行的效率,为此系统提供了一些特殊的程序流控制,在这里,给大家介绍一个“Break”命令,它的调用格式为:Break,表示中断并退出循环。实验一 观察数列的极限极限是高等数学中最基本的概念之一,初学者往往理解不够准确。本实验目的就是利用数学软件Mathematica加深对数列极限概念的理解。对于数列极限通俗的说法是:当充分大时,充分接近数A,则。我们通过利用数学

27、软件Mathematica来计算数列足够多项的值,从而考察数列的极限。例1 用数、形结合的方法观察极限。解:通过逐渐增加点并画点图,来观察当n越来越大时的变化趋势。其Mathematica语句为:运行后得到了16幅图,图1-1中列出了其中的4幅,从左至右图中点数逐渐增多,从图中可以看出所画出的点逐渐接近于直线。图1-1为使图形更加生动,我们还可以用鼠标选定这些图形后进行动画演示(即选定这些图形后再同时按“Ctrl”和“Y”键)。例2 设数列与由下式确定:,观察数列与的极限是否存在。解:输入以下语句可进行观察,此程序的功能是输出与的前10项数值。大家可改变For循环中终结语句()来改变输出项的项

28、数。运行该程序可得: 大家可以由运行结果可观察到,与均有极限,且这两极限值是相等的。实验习题11、 根据上面的实验步骤,通过作图,观察重要极限:。2、 设数列由下列递推关系式给出:,观察数列的极限。实验二 一元函数图形及其性态 本实验的目的是让同学熟悉数学软件Mathematica所具有的良好的作图功能,并通过函数图形来认识函数,运用函数的图形来观察和分析函数的有关性态,建立数形结合的思想。例1 给定函数(1)(2)(3)在同一坐标系下画出以上三个函数的图形。解:输入命令如下:在上面的程序中,命令“Plot”的选项“PlotStyle®RGBColora,b,c”是指选用颜色绘图,其

29、中a,b,c为介于0,1之间的数,若a,b,c选择1,0,0、0,1,0、0,0,1,则分别表示的是三元色:红、绿、蓝。运行后输出结果如图2-1所示:图2-1例2 制作函数的图形动画,并观察参数p对函数图形的影响。解:输入命令如下:此命令输出了6幅图,参数p是从1到3以为步长的选择,从这些图中可以很明显地看出在第一象限参数p对函数的影响。为了图形演示更加生动,我们可以对这些图形进行动画演示。例3 绘出函数以及的图形,并找出所有的驻点和拐点。解:首先,我们不妨将的自变量显示范围定为,则输入如下命令: 图2-2为了利于观察一些特殊点的位置,我们选择了选项“GirdLines®Automa

30、tic”使图形的坐标平面上出现了网格线,而且这时Mathematica将自动选择相应的的显示范围为(如图2-2)。图中的曲线差不多是函数图形的“全貌”。从图形中可以看出为函数的零点,单调性在附近改变,而且在附近曲线凸向似乎有所改变。总之,由函数的图形我们只能近似地判断出一些信息,那么这些印象是否属实呢?为了证实这些印象,我们利用下面的Mathematica语句来加以验证:运行后,绘出了的一阶导函数和二阶导函数的图形(如图2-3),从图中可以分别观察出,有三个零点,且均为的极值点;有三个零点,且均为的拐点。为了具体求出这些极值点和拐点,下面我们可以利用解方程的命令“Solve”来求解和的实根,输

31、入命令为:图2-3 运行后可得到这两个方程的解为:。 这样我们利用Mathematica并同时结合函数微分学的知识找出了一些关键点,从而对函数的图形就有了真实全面的了解。实验习题21、 制作函数的图形动画,并观察参数对函数图形的影响。2、 已知函数,作出并比较当分别取-1,0,1,2,3时的图形,并从图上观察极值点、驻点、单调区间、凹凸区间以及渐近线。实验三 泰勒公式与函数逼近一个函数若在点的邻域内足够光滑,则在该邻域内有泰勒公式,当很小时,有 ,其中,称为在点处的n阶泰勒多项式;为余项。下面我们利用Mathematica计算函数的各阶泰勒多项式,并通过绘制曲线图形,来进一步掌握泰勒展开与函数

32、逼近的思想。例1 (泰勒公式的误差)利用泰勒多项式近似计算。若,要求误差。解:我们根据拉格朗日余项可得,欲使,只要取即可。下面的Mathematica语句利用函数的5阶泰勒多项式来近似计算的值,并判断误差:输出结果为:输出结果每一行的最后一项表示误差,从结果中可以看出,当,其误差。例2 (观察阶数n对误差的影响)利用函数的n阶多项式计算e的值,并求误差。(n=5,6,7,8,9,10)解:为此,我们输入Mathematica语言如下:输出结果为:从结果中可知,阶数越高,误差越小。例3(根据图形观察泰勒展开的误差)观察的各阶泰勒展开的图形。解:(1)固定,观察阶数的影响。因为在处的偶数阶导数为零

33、,所以首先我们在同一坐标系内显示函数及它的阶泰勒多项式的图形。故输入命令如下:上述语句中的函数“PrependTot,Sinx”是表示把函数添加到表t中。运行后得到图3-1。 图3-1为了使图形比较更加生动,下面我们作出和它的某一阶泰勒多项式的同一坐标系下的比较图,并且在图中红色曲线表示函数的图形,蓝色曲线表示泰勒多项式的图形。命令如下:运行后得到了六幅图(图3-2),从图表中可以观察到泰勒多项式与函数图形的重合与分离情况,显然在范围内,第五幅图中两个函数的图形已经基本上吻合了,也就是说,的9次多项式与函数几乎无差别。图3-2(2)扩大显示区间范围,以观察在偏离展开点时泰勒多项式对函数的逼近情

34、况。显然,我们只要把上一个程序中的绘图命令中的范围由分别改到,并相应增加阶数。故输入如下命令:运行上面程序,绘出了从7阶直至17阶的泰勒多项式与的比较图(图3-3),观察图表可得,在区间范围内,的17次多项式与函数吻合得很好了。图3-3(3)固定,观察对函数逼近的影响。在下面的语句中,为了方便调用的泰勒多项式,首先定义了的泰勒展开函数tt,然后用不同的颜色在同一坐标系中画出了及的分别在处的6阶泰勒多项式的图形:输出的结果如图3-4所示。图3-4从本实验我们可以得到一些结论,函数的泰勒多项式对于函数的近似程度随着阶数的提高而提高,但是对于任一确定的次数的多项式,它只在展开点附近的一个局部范围内才

35、有较好的近似精确度。实验习题31、 对重复上面的实验。2、 作出函数的函数图形和泰勒展开式(选取不同的和值)图形,并将图形进行比较。实验四 定积分的近似计算我们已经学习了定积分的基本概念和定积分的计算方法,那里所谓的计算方法,是基于原函数的牛顿-莱布尼兹公式。但在许多实际问题中遇到的定积分,被积函数往往不用算式给出,而通过图形或表格给出;或虽然可用一个算式给出,但是要计算它的原函数却很困难,甚至于原函数可能是非初等函数。本实验的目的,就是为了解决这些问题,介绍定积分的“数值积分”,即定积分的近似计算。所谓定积分的近似计算,就是找到一个适当的计算公式,利用被积函数在积分区间上若干个点处的函数值,

36、来计算定积分的近似值,并作出误差估计。我们知道,定积分在几何上表示曲线,直线及x轴所围成的曲边梯形的面积。定积分近似计算的思想,就是将积分区间分割成许多小区间,然后在小区间上近似计算小曲边梯形的面积,最后将小曲边梯形的面积求和,就得到了定积分的近似值。1、 观察黎曼和式的收敛性 由定积分的定义知道,定积分就是黎曼和式的极限,因此可以用黎曼和式来近似计算定积分。为计算方便,这里特殊的,将积分区间等分为段,并以小区间中点处的函数值作近似,于是黎曼和式为:, 因而 。例1 计算的黎曼和。解:输入命令如下:上述命令是将区间2, 3等分为200段,运行求得黎曼和为:1.11842。2、 梯形法大家可以看

37、出,用上述方法进行的近似计算,其实是对小曲边梯形的面积用矩形面积来近似,上面取的特殊的黎曼和又称为中点积分公式。如果不用矩形而改用梯形来近似,就可以得到定积分的一个较好的近似方法梯形积分法。具体方法如下:将区间用等分为n个小区间,小区间的长度为。设,则每个小梯形的面积为,从而得到梯形法的公式为: 。下面来估计梯形法的误差。第个小曲边梯形的面积为,做变换,则,当在区间上连续时,利用分部积分法可以证明:。设为在区间上的最大值,则第个小曲边梯形与相应的梯形面积之差的绝对值估计如下:于是,梯形法的绝对误差为。例2 用梯形法近似计算,要求误差不超过。解:设,则,显然在区间上的最大值为。下面我们根据梯形法

38、利用Mathematica编程,在程序中,定义了等分时的梯形公式,并采用“Do”命令进行循环直到满足精度要求或达到预定的循环次数为止,每次循环要求输出及。输入命令如下:从运行结果看,循环到100次结束,最后输出“fail”,这表明没有达到精度要求,如把n0的值改为200,再次运行,发现循环到n=130时结束,此时达到精度要求,积分的近似值为:1.11843。3、 抛物线法梯形法的近似过程是在每个小区间中用直线段来近似被积函数段,即逐段地用线性函数来近似被积函数。为了进一步提高精确度,可以考虑在小范围内用二次函数来近似被积函数,这种方法称为抛物线法,也称为辛普森(Simpson)法。具体方法如下

39、:用分点,将积分区间n等分(这里要求n为偶数),各分点对应的函数值为,即。我们知道平面上三点可以确定一条抛物线,而相邻的两个小区间上经过曲线上的三个点,则由这三点做抛物线(因此抛物线法必须将区间等分为偶数个小区间),把这些抛物线构成的曲边梯形的面积相加,就得到了所求定积分的近似值。下面计算在区间上以抛物线为曲边的曲边梯形面积。为此,先计算区间上,以过三点的抛物线为曲边的曲边梯形面积:,由得:故。取,则上面所求的等于区间上以抛物线为曲边的曲边梯形的面积。同理可以得到区间上以抛物线为曲边的曲边梯形的面积:。于是,将这个曲边梯形的面积加起来,得到定积分的近似值为(设):。上式称为辛普森公式或抛物线公

40、式。用这个公式求定积分的近似值时,其绝对误差可以证明不超过,其中是在区间上的最大值。例3 用抛物线法近似计算,要求误差不超过。解:设,可由命令Dfx,x,4得到的四阶导函数为:,显然在区间上的最大值为。下面根据抛物线法的思想利用Mathematica编程,在程序中,与例2一样,定义了等分时的抛物线公式,并采用“Do”命令进行循环直到满足要求或达到预定的循环次数为止,每次循环要求输出及。输入命令如下:从运行结果看,循环到时因达到精度要求结束循环,并得到积分的近似值为:1.11843。从例2、例3可以看出,抛物线法比梯形法收敛的要快,这与实际情况也是相符的。最后,我们再说明一点,在Mathemat

41、ica内部有一个数值积分的命令“NIntegrate”,例如要计算,我们可以调用命令:或者我们可以通过基本输入模板直接输入积分符号:,字母“N”是表示输出的结果为实数的形式。运行后均得结果1.11842。 虽然使用内部的命令计算数值积分非常方便,但是误差估计不明显,而且作为一个大学生,应该要知道隐藏在命令后面的原理。因此掌握本实验介绍的数值积分的原理、公式及编程方法也是很必要的。实验习题41、计算定积分的黎曼和。2、分别用梯形法、抛物线法计算定积分的近似值(精确到0.0001)。实验五 常微分方程及追击问题在实际问题中,需要研究一些变动的量以及它们之间的关系,由于这些量是时刻变化的,因此它们之

42、间的关系不能用简单的代数方程,而要用微分方程来表达。在本实验中,我们要给出利用Mathematica求解一些简单常微分方程的方法,以及求微分方程的数值解的方法。1、 求解常微分方程的精确解在微分方程的学习中,对于一些特殊类型的微分方程可以求得其精确解,在Mathematica中对于这些类型,利用内部函数同样可以求得。例1 求解微分方程,并作出其积分曲线。解:打开Mathematica并输入语句运行后可求得方程的通解。下面在同一坐标系中做出这个微分方程的6条积分曲线如右图(其中分别对应)。例2 求微分方程满足初始条件的特解。解:只要输入语句运行即可得到结果。对于一阶微分方程,除了可分离变量的微分

43、方程,线性微分方程也可用Mathematica求出精确解,请同学们自己举例求解。除了这两类方程外,由实际操作可知,用Mathematica精确求解都比较困难,为此必须要考虑求微分方程的数值解问题。2、 微分方程的数值解例3求在区间上初值问题的数值解,并作数值解的图形。解:输入命令:运行后输出的结果为:,它表示得到了插值函数InterpolatingFunctiondomain, table类型的近似解,近似解的定义域domain为0,10。此时返回的解放在一个表中,函数yx不能调用进行运算,要绘出数值解的图形,先要用“Evaluate”命令把它转化为可运算的。为此先把刚才得到的结果取代为yx后

44、定义为fx,然后在区间0,10上作出fx即近似解的图形。输入命令如下:运行后便得到近似解的图形如右图。3、追击问题下面看一个实际问题:我缉私艇雷达发现,正东1 海里处一艘走私船正以常速向北方向逃窜,缉私艇立即以的速度追赶,借助于雷达,缉私艇航行的方向始终对准走私船。试求缉私艇的航行曲线方程,并问走私船航行多远时被我缉私艇追上。(一)建立微分方程模型:首先如右图建立坐标系。设缉私艇的航行曲线方程为,在时刻t位于,则有,又,消去t,得。两边对x求导,则实际问题化为求解微分方程:。此为可降阶的二阶微分方程,可解得:缉私艇的航行曲线方程为()。当时,故走私船航行海里时被缉私艇追上。或者用mathema

45、tica软件来求解上述微分方程,输入命令:运行后得到:显然第一个解为所求的方程,为了求得当时函数得值,可由以下命令得到:运行后也可得,即走私船航行海里时被缉私艇追上。(二)仿真方法:即模仿真实事件的行为和过程。在这个问题上,就是一步步地以时间间隔为来模拟缉私艇追踪敌艇的实际过程。如右图,当时,敌艇在处,缉私艇在处,方向指向敌艇,即。认为缉私挺的运动曲线是由水平方向和垂直方向组合而成。当时,敌艇运行到,而缉私艇运行到点,则,方向由点指向点,即;当时,敌艇运行到,缉私艇运行到点,则,方向由点指向点,即;于是,可以得到仿真的迭代格式为:,其中。于是,利用mathematica可以对该实际问题进行模拟

46、,不妨设海里/小时,则输入程序:在程序中,设定时间间隔为小时,并且在且迭代结束。从运行结果可以看出,当时迭代结束,此时追赶的时间为小时,说明敌艇航行了0.667497海里被缉私艇追上,这和前面的结果基本上一致。 另外,可以在程序中将改变进行模拟,而从运行结果来看不会改变敌艇被追上时的航行路程,改变的只是被追击上的时间。 实验习题5求在区间上初值问题的数值解,并作出数值解的图形。实验六 方程的近似解由连续函数的零点定理可知,若连续函数在区间的两个端点处异号,则函数在区间内必有零点,也即方程必有根。在科学研究和工程技术问题中,常会遇到求解高次代数方程或其它类型的方程问题,由于求这类的方程精确解很困难,因此需要求方程的近似解。本实验的目的是介绍方程近似求根的方法,并利用Mathematica软件来实现算法。1、 从函数图形观测根的大概位置前面介绍了一元函数的图形的画法,我们知道方程的实根在几何上表示曲线与轴交点的横坐标,因此可以从函数的图形上观

温馨提示

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

评论

0/150

提交评论