数学实验 - 图文

更新时间:2023-03-08 06:28:28 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数 学 实 验

中国石油大学(华东)理学院

2015.11

目 录

实验01 MATHEMATICA软件初步 ............................................................................................... 1 实验02 一元函数极限与导数运算 .............................................................................................. 14 实验03 一元函数微分学应用 ...................................................................................................... 25 实验04 一元微分应用中的数学模型 .......................................................................................... 38 实验05 一元函数积分学及积分应用中的数学模型 .................................................................. 42 实验06 空间图形画法 .................................................................................................................. 53 实验07多元函数微分学 ............................................................................................................... 74 实验08多元函数积分学 ............................................................................................................... 84 实验9 无穷级数及其应用 ............................................................................................................ 94 实验10 常微分方程 .................................................................................................................... 111 实验11常微分方程应用中的数学模型 ..................................................................................... 130 参考文献....................................................................................................................................... 139

实验01 MATHEMATICA软件初步

实验目的:

1、掌握Mathematica软件的基本操作

2、了解Mathematica软件在数值计算、符号计算、编程方面的基本命令

实验内容:

1、Mathematica软件的基本操作 2、Mathematica软件的基本命令 3、Mathematica编程初步

1.1实验准备

函数命令:详见1.2验证实验部分。

1.2验证实验 1.2.1软件概述 1)启动和运行

启动Mathematica后,在屏幕上显示Notebook窗口未命名-1,直到用户保存时重新命名为止。

新建笔记本(.nb)文件,在打开的窗口中输入1+1,按组合键Shfit+Enter执行上述命令,则屏幕上将显示: In[1] : =1+1 Out[1] =2

这里In[1] : = 表示第1个输入,Out[1]= 表示第1个输出,即计算结果。

1

在Mathematica的Notebook界面下,可以用这种交互方式完成各种运算,如函数作图,求极限、解方程等,也可以用它编写像C那样的结构化程序。在Mathematica系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以取到事半功倍的效果。这些函数分为两类,一类是数学意义上的函数,如:绝对值函数Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为底的对数函数Log[x],以a为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。

注:

(1)Mathematica严格区分大小写。一般地,内建函数的首写字母必须大写,有时一个函数名是由几个单词构成,则每个单词的首写字母也必须大写,如:求局部极小值函数FindMinimum[f[x],{x,x0}等。 (2)在Mathematica中,函数名和自变量之间的分隔符是用方括号“[ ]”,而不是一般数学书上用的圆括号“( )” 点击“文件”“退出”,如果文件未存盘,系统提示用户存盘,文件名以“.nb”作为后缀,称为Notebook文件。以后想使用本次保存的结果时可以通过“文件”“打开”菜单读入,也可以直接双击它,系统自动调用Mathematica将它打开。 2)表达式的输入 +、-、*、/、^??运算的优先顺序与通常的数学运算一致。 Mathematic担提供了两种格式的数学表达式。形如x/(2+3x)+y*(x-w)的称为一维格式,形如xy?的称为二维格式。 2?3xx?w数学运算 分式 n次方 开2次方 下标 数学表达式 按键 x Ctrl+/ 2 x Ctrl+^ n Ctrl +2 x x Ctrl+_ 2 可以使用快捷方式输入二维格式,也可用基本输入工具栏输入二维格式。 x 2xn x xn 另外也可从“面板”菜单中激活书写助手、数学助手、课堂助手输入。 3)帮助系统

(1)在Notebook界面下,用?可向系统查询运算符、函数和命令的定义和用法,获取简单而直接的帮助信息。例如,向系统查询作图函数Plot命令的用法?Plot系统将给出调用Plot的格式以及Plot命令的功能。?Plot*给出所有以Plot这四个字母开头的命令。单击>>,可以查看更详细的帮助信息。

(2)任何时候都可以通过按F1键或点击“帮助”菜单项“参考资料中心”,调出帮助菜单。

(3)访问官方网站:www.wolfram.com

2

1.2.2 Mathematica的基本量 1)数据类型 在Mathematic中,基本的数据类型有四种:整数、有理数、实数和复数。 如果计算机的内存足够大,Mathemateic可以表示任意长度的精确实数,而不受所用的计算机字长的影响。整数与整数的计算结果仍是精确的整数或是有理数。例如2的100次方是一个31位的整数: ln[1]:=2^100 Out[1]=1267650600228228229401496703205376 在Mathematica中允许使用分数,也就是用有理数表示化简过的分数。当两个整数相除而又不能整除时,系统就用有理数来表示,即有理数是由两个整数的比来组成如: In[2]:=12345/5555 Out[2]=2469 1111实数是用浮点数表示的,Mathematica实数的有效位可取任意位数,是一种具有任意精确度的近似实数,当然在计算的时候也可以控制实数的精度。实数有两种表示方法:一种是小数,另外一种是用指数方法表示的。如: In[3]:=0.239998 Out[3]=0.239998 In[4]:=0.12*10^11 Out[4]=0.12*10^11

实数也可以与整数,有理数进行混合运算,结果还是一个实数。 In[5]:=2+1/4+0.5 Out[5]=2.75

复数是由实部和虚部组成,实部和虚部可以用整数、实数、有理数表示。在Mathematica中,用I 表示虚数单位如:

In[6]:=3+0.7I Out[6]=3+0.7i

3

2)不同类型数的转换

在Mathematica的运算中对数字的类型要求是不同的。例如在公式推导中的数字常用整数或有理数表示,在数值计算中的数字常用实数表示。一般情况下在输出行Out[n]中,系统根据输入行In[n]的数字类型对计算结果做出相应的处理。如果有一些特殊的要求,就要进行数据类型转换。

在Mathematica中的提供以下几个函数达到转换的目的:

函数 N[x] x//N N[x,n] Rationalize[x] Rationalize[x,dx] 与N[x]等价 将x转换成近似实数,精度为n 给出x的有理数近似值 给出x的有理数近似值,误差小于dx 功能 将x转换成实数(有效位一般为6位) 举例: In[1]:=N[5/3,20] Out[1]=1.6666666666666666667 In[2]:=N[%,10] %表示上一输出结果,即%=1.6666666666666666667。 Out[2]=1.666666667 第二个输出是把上面计算的结果变为10位精度的数字。 In[3]:=Rationalize[%] Out[3]=5 3 3)数学常数 Mathematica定义了一些常见的数学常数,这些数学常数都是精确数。 常数 Pi E Degree I Infinity -infinity 意义 表示π=3.14159…… 自然对数的底e=2.71828…… 1度,π/180弧度 虚数单位i 无穷大∞ 负无穷大-∞ 数学常数可用在公式推导和数值计算中,在数值计算中表示精确值。如: In[1]:=Pi^2 Out[1]=π2 In[2]:=Pi^2//N Out[2]=9.8696 4)变量

(1)变量的命名

Mathematica中内部函数和命令都是以大写字母开始的标示符,为了不会与它们混淆,我们自定义的变量应该是以小写字母开始,后跟数字和字母的组合,长度不限。例如:a12,ast,aST都是合法的,而12a,z*a,a b(中间有空格)是非法的。另外在Mathematica中的变量是区分大小写的。在Mathematica中,变量不仅可以存放一个数值,还可以存放表达式或复杂的算式。

4

(2)给变量赋值

在Mathmatica中用等号=(或: =)为变量赋值。同一个变量可以表示一个数值,一个数组,一个表达式,甚至一个图形。”=”称为立即赋值,”:=”称为延迟赋值。

如:

In[1]:=x=3 Out[1]=3

In[2]:=x^2+2*x Out[2]=15 In[3]:=x=% +1 Out[3]=16

对不同的变量可同时赋不同的值,例如: In[4]:={u,v,w}={1,2,3} Out[4]={1,2,3} In[5]:=2u+3v+w Out[5]=11 对于已定义的变量,当不再使用它是,为防止变量值的混淆,可以随时用=.清除它的值,如果变量本身也要清除用函数Clear[var],例如: In[6]:=u=. In[7]:=2u+v (上面已定义了u,v的值) Out[7]=2+2u (3)变量的替换 在给定一个表达式时,可用变量替换来计算表达式的不同值,即expr/.x->xval,例如: In[1]:=f=x/2+1 Out[1]= 1+x 2In[2]:=f/.x->1 Out[2]= 3 2In[3]:=f/.x->2 Out[3]=2 如果表达式中有多个变量,也可同时替换,方法为:expr/.{x->xval,y->yval,...} In[4]:=(x+y)(x-y)^2/.{x->3,y->1-a} Out[4]=(4-a)(2+a)2 1.2.3 函数 1)系统函数

Mathematica中的函数与数学上的函数有些不同的地方,Mathematica中函数是一个具有独立功能的程序模块,可以直接被调用。同时每一函数也可以包括一个或多个参数,也可以没有参数。参数的的数据类型也比较复杂。更加详细的可以参看系统的帮助,了解各个函数的功能和使用方法是学习Mathematica软件的基础。

在Mathmatic中定义了大量的数学函数可以直接调用。下面是一些常用函数:

5

函数 Sqrt[x] Floor[x] Ceiling[x] Sign[x] Round[x] Abs[x] Max[x1,x2,x3……..] Min[x1,x2,x3……..] Random[] Random[R,xmax] Random[R,{xmin,xmax}] Exp[x] Log[x] Log[b,x] 开平方 功能 不比x大的最大整数 不比x小的最小整数 符号函数 接近x的整数 x绝对值 x1,x2,x3…….中的最大值 x1,x2,x3…….中的最小值 0~1之间的随机函数 0~xmax之间的随机函数(R为Real,Integer,Complex之一) xmin~xmax之间的随机函数(R为Real,Integer,Complex之一) 指数函数ex 自然对数函数lnx 以b为底的对数函数logbx Sin[x],Cos[x],Tan[x],Csc[x],Sec[x],Cot[x] 三角函数(变量是以弧度为单位的) 反三角函数 ArcSin[x],ArcCos[x],ArcTan[x],ArcCsc[x],ArcSec[x],ArcCot[x] Sinh[x],Cosh[x],Tanhx[x],Csch[x],Sech[x],Coth[x] ArcSinh[x],ArcCosh[x],ArcTanhx[x],ArcCsch[x],ArcSech[x],ArcCoth[x] Mod[m,n] Quotient[m,n] GCD[n1,n2,n3……]或GCD[s] LCM[n1,n2……]或LCM[s] N! 双曲函数 反双曲函数 m被n整除的余数,余数与n同号 m/n的整数部分 n1,n2,…或s的最大公约数,s为数据集合 n1,n2…或s的最小公倍数,s为数据集合 N的阶程 N的双阶程 N!! 2)函数的定义 (1)函数的立即定义 立即定义函数的语法如下f[x_]=expr函数名为f,自变量为x,expr是表达式。在执行时会把expr 中的x都换为f的自变量x(不是x_)。函数的自变量具有局部性,只对所在的函数起作用。函数执行结束后也就没有了,不会改变其它全局定义的同名变量的值。

请看下面的例子,定义函数f(x)=xsinx+x2,对定义的函数我们可以求函数值,也可绘制它的图形。

In[1]:=f[x_]=x*Sin[x]+x^2 Out[1]=x 2 +xSin[x] In[2]:=f[1]

Out[2]=1+Sin[1]

6

In[3]:=Plot[f[x],{x,-3,3}]

8642 对于定义的函数我们可以使用命令Clear[f]清除掉,而Remove[f]则从系统中删除该函数。 -3-2-112 (2)多变量函数的定义 也可以定义多个变量的函数,格式为f[x_,y_,z_,…]=expr自变量为x,y,z…,相应的expr中的自变量会被替换。例如定义函数f(x,y)=xy+ycosx。 In[1]:=f[x_,y_ ]=x*y+y*Cos[x] Out[1]=xy+yCos[x] In[2]:=f[2,3] Out[2]=6+3Cos[2] (3)延迟定义函数 延迟定义函数从定义方法上与即时定义的区别为“=”与“:=”延迟定义的格式为f[x_]:=expr其他操作基本相同。那么延迟定义和即时定义的主要区别是什么?即时定义函数在输入函数后立即定义函数并存放在内存中并可直接调用。延时定义只是在调用函数时才真正定义函数。 (4)使用条件运算符定义和If命令定义函数 ?x?1 x?02如果要定义如:f(x)??? x 0?x??1 ? sinx x??1?这样的分段函数应该如何定义,显然要根据x 的不同值给出不同的表达式。一种办法是使用条件运算符,基本格式为:f[x_]:=expr/;condition ,当condition条件满足时才把expr赋给f(x) 。

In[1]:=f[x_]:=x-1/;x>=0

f[x_]:=x^2/;(x>-1)&&(x<0) f[x_]:=x-1/;x<= -1 In[4]:=Plot[f[x],{x,-2,2}]

7

10.5-2-11-0.5-1 当然使用If命令也可以定义上面的函数,If语句的格式为If[条件,值1,值2],如果条件成立取“值1”,否则取“值2”,用If语句的定义结果如下: In[5]:=g[x_]:=If[x>=0,x-1,If[x<= -1,Sin[x],x^2]] In[6]:=Plot[g[x],{x,-2,2}] 10.5-2-11-0.5 可以看出用If定义的函数g(x)和前面函数f(x)相同,这里使用了两个If嵌套,逻辑性比较强。 1.2.4 表 将一些相互关联的元素放在一起,使它们成为一个整体。既可以对整体操作,也可以对整体中的一个元素单独进行操作。在Mathematica中这样的数据结构就称作表(List)。表{a,b,c}表示一个向量;表{{a,b},{c,d}}表示一个矩阵。 1)建立表 在表中元素较少时,可以采取直接列表的方式列出表中的元素。 In[1]:={1,2,3} Out[1]={1,2,3} 下面是符号表达式的列表: In[2]:=1+%x+x^%

Out[2]={1+2x,1+2x+x2,1+3x+x3}

如果表中的元素较多时,可以用建表函数进行建表: -1函数 Table[f,{i,min,max,step}] Table[f,{min,max}] 功能 以step为步长给出f的数值表,i由min变到max 给出f的数值表,i由min变到max,步长为1 8

Table[f,max] TableForm[list] 或list//TableForm Range[n] Range[n1,n2,d] 给出max个f的表 以表格格式显示一个表 生成一个{1,2,……,n}的列表 生成{n1,n1+d,n1+d,….,n2}的列表 Table[f,{i,imin,imax},{j,jmin,jmax},….] 生成一个多维表 下面给出x乘i的值的表,i的变化范围为[2,6]: In[1]:=Table[x*i,{i,2,6}] Out[1]={2x,3x,4x,5x,6x} In[2]:=Table[x^2,{4}] Out[2]={x2,x2,x2,x2}

用Range函数生成一个序列数: In[3]:=Range[10] Out[3]={1,2,3,4,5,6,7,8,9,10} 下面这个序列是以步长为2,范围从8到20: In[4]:=Range[8,20,2] Out[4]={8,10,12,14,16,18,20} 上面的参数变化都是只有一个,也可制成包括多个参数的表,下面生成一个多维表: In[5]:=Table[2i+j,{i,1,3},{j,3,5}] Out[5]={{5,6,7},{7,8,9},{9,10,11}} 使用函数TableForm可以以表格的方式输出 In[6]:=%//TableForm Out[6]//TableForm= 5 6 7 7 8 9 9 10 11 2)表的元素的操作 当t表示一个表时,t[[i]]表示t中的第i个子表。如果t={1,2,a,b}那么t[[3]]表示“a”。 In[1]:=t=Table[i+2,j{i,1,3},{j,3,5}] Out[1]={{7,9,11},{8,10,12},{9,11,13}} In[2]:=t[[2]] Out[2]={8,10,12} 函数 Prepend[list, elem] Append[list, elem] Insert[list,elem,n/-n] Join[list1,list2...] Union[list1,list2...] 功能 表示在表头添加元素elem 表示在表尾添加元素elem 表示在正/倒数第n个位置插入元素elem 连接表list1, list2 去掉重复元素并排序后的合并(集合的并)

1.2.5表达式

1)表达式的含义

Mathematica 能处理数学公式,表以及图形等多种数据形式。尽管他们从形式上看起来不一样,但在Mathematica内部都被看成同种类型,即都把他们当作表达式的形式。Mathematica 中的表达式是由常量、变量、函数、命令、运算符和括号等组成,它最典型的形式是f[x,y]。

9

2)表达式的表示形式

在显示表达式时,由于需要的不同,有时我们需要表达式的展开形式,有时又需要其因子乘积的形式。在我们计算过程中可能得到很复杂的表达式,这时我们又需要对它们进行化简。常用的处理这种情况的函数就是变换表达式表示形式函数。

函数 Expand[expr] Factor[expr] Simplify[expr] 功能 按幂次升高的顺序展开表达式 以因子乘积的形式表示表达式 进行最佳的代数运算,并给出表达式的最少项形式 3)关系表达式与逻辑表达式

下面是常用的关系运算和它们的意义: 关系运算符 x==y x!=y x>y x>=y xy>z xy Out[2]=False 下面是常用的逻辑运算和它们的意义: 逻辑运算符 ! && || Xor If LogicalExpand[expr] 非 并 或 异或 条件 展开逻辑表达式 功能 例如下面的例子说明它们的应用:

In[4]:=3*x^2

In[5]:=3*x^2

10

4)其他常用的符号 符号 (term) f[x] {} [[i]] % %% %%%(k) %n 功能 圆括号用于组合运算 方括号用于函数 花括号用于列表 双括号用于排序 代表最后产生的结果 倒数第二次的算结果 倒数第k次的计算结果 例出行Out[n]的结果 1.2.6 编程初步 对于简单的计算,可以直接调用Mathematica内部函数完成,但是要完成一个指定的计算任务,往往还需要由自己来编制一些程序。Mathematica中提供了一般的程序流程完成的方式,包括顺序结构、条件结构和分支结构。下面就Mathematica的程序编制讲解一些初步的知识。 1)全局变量与局部变量 Mathematica 在工作时会自动启动一个程序,叫做\,它是负责计算和存储计算结果的程序。因此我们平常使用的变量都是全局变量,这些变量有这样的特点:一旦赋值它会作用于以后的计算,因而容易造成混乱。所以在复杂的程序设计中需要引进一些局部变量。在编写程序和函数时,如果用到了中间变量,一定要使用局部变量。坚决避免用全局变量作为函数或者程序的中间变量,否则很有可能出现不易发觉的错误。 局部变量与全局变量隔离开? 在Mathematica中,使用Module 结构可以解决这个问题,Module结构不但是分隔局部变量的机制,更重要的还是定义复杂函数或过程的机制,Module结构的形式如下: Module[ {局部变量列},表达式列] 其中,\局部变量列}\说明一个或者多个局部变量,后面的\表达式列\可以使用这些局部变量。对这些局部变量的操作不会影响到Module结构外的同名变量。 \表达式列\中的各表达式用分号分隔,整个Module结构返回表达式列中最后一个表达式的值。 Module 结构不但能调用Mathematica中的函数,还能调用自定义的函数。 例:定义一个函数,其自变量为一个数组,求出这个数组的最大值、最小值、平均值和方差。 In[1]:= f[x_List]:=Module[{M,m,E,D,t},M=Max[x]; m=Min[x];

E=Apply[Plus,x]/Length[x]; t=(x-E)^2;

D=Sqrt[Apply[Plus,t]]/Length[x]; {M,m,E,D}];

f[{1,2,3,4,5,6,7,8}]//N

Out[1]= {8.,1.,4.5,0.810093}

2)循环结构

11

(1)While[条件,表达式]

\条件\是一个逻辑表达式,执行时系统先对条件求值,如得到结果为True,则求它的表达式值,然后重复上述过程,直到条件不满足为止,循环结束。

例:求平方小于100的最大的整数。 In[1]:= Clear[x]; x=0;

While[x^2<=100,x=x+1]; x-1

Out[1]= 10

(2)For[i=1,i<=imax ,i++,表达式]

在For[ ]循环中,\表示循环变量,\表示循环变量从初值1 开始,\表示循环变量所能取的最大范围,\表示将i 的值增加一个单位。

例:求出前10个自然数的和L与前10个自然数的乘积S。 In[1]:= L=0;S=1; For[i=1,i<=10,i++, L=L+i; S=S*i;] L S

Out[1]= 55

Out[2]= 3628800

(3)Do[表达式,循环描述]

Do[ ]循环是一种数步式的循环方式,它需要在\循环描述\中指定步数。 例:将t=t^2+1从t=1开始执行3次。 In[1]:= Clear[t] t=1;

Do[t=t^2+1,{3}] t

Out[1]= 26

3)分支结构 (1)If [条件,表达式] If[条件,表达式],当\条件\为True时,求\表达式\的值;当\条件\为False 时,返回Null。 If[条件,表达式1,表达式2],当\条件\为True时,求\表达式\的值;当\条件\为False时,求\表达式2\的值。

例:

In[1]:= abs[x_]:=If[x<0,-x,x] abs[-1] Out[1]= 1

(2)Which[条件1,表达式1,条件2,表达式2,…] In[1]:= a=2;

12

Which[a==1,x,a==2,b] Out[2]= b

(3)Switch[判别表达式,模式1,表达式1,模式2,表达式2,…]

例:构造一个函数,当x被3整除时,函数值为a,当x关于3的模为1时,函数值为b,当x关于3的模为2时,函数值为c。

In[1]:= f[x_]:=Switch[Mod[x,3],0,a,1,b,2,c] f[1] f[2] f[3]

Out[2]= b Out[3]= c Out[4]= a 4)转向结构 包括以下命令项: Break[ ] 用在For, While(Do不能使用)语句中,表示结束包含这个break表达式的最近循环,且以Null作为该结构的值。 函数 Continue[] Return Return[] Return[expr] 功能 立即结束包含这个Continue的循环,执行下一次循环。 从函数的求值过程中退出。 退出函数的求值,以Null作为当前函数值。 退出函数的求值,以expr作为当前函数值。 13

实验02 一元函数极限与导数运算

实验目的:

1、掌握运用函数的图形来观察和分析函数的有关特性与变化趋势的方法, 建立数形结合的思想; 掌握用Mathematica作平面曲线图形的方法与技巧;

2、掌握Mathematica的基本运算,包括多项式的代数运算、求方程和方程组的根;

3、通过计算与作图, 从直观上揭示极限的本质, 加深对极限概念的理解. 掌握用Mathematica计算极限的方法. 深入理解函数连续的概念; 4、深入理解导数与微分的概念、导数的几何意义. 掌握用Mathematica求导数与高阶导数的方法. 深入理解和掌握求隐函数的导数, 以及求由参数方程定义的函数的导数的方法。

实验内容:

1、Mathematica的基本运算 2、一元函数作图 3、一元函数求极限 4、一元函数求导数

2.1实验准备 函数命令:

1)一元函数作图 (1)基本一元函数作图命令

Plot[f[x], {x, xmin, xmax},可选项]

其中,f[x]代表一个函数表达式,x表示函数的自变量,xmin和xmax分别表示所要画的图形中x取值的上、下限。可选项是对图形参数的设定,如果不写可选项,则系统按内定的参数输出图形。同时画多个函数的图形。其命令格式为:

Plot[{f1[x],f2[x],…},{x,xmin,xmax}]

注意,其中多个函数应该使用同一个自变量x。 (2)参数方程的命令

ParametricPlot[{x[t],y[t]},{t,tmin,tmax}] (3)极坐标方程作图命令

PolarPlot[r,{t,t1,t2}]

产生一个半径为r的曲线极坐标图,作为角度t的函数.

PolarPlot[{f1,f2,…},{t,t1,t2}]

产生一个曲线的极坐标,显示径函数f1,f2,….

2)Mathematica的基本运算 (1)多项式的表示形式 函数 Expand[ploy] ExpandAll[ploy] Factor[ploy] FactorTerms[ploy,{x,y,…}] Simplify[poly] 功能 按幂次展开多项式ploy 全部展开多项式ploy 对多项式poly进行因式分解 按变量x,y,…进行分解 把多项式化为最简形式 14

FullSimplify[ploy] Collect[poly,x] Collect[poly,{x,y…}]

(2) 求解代数方程和方程组 函数 Solve[lhs==rhs,vars] NSolve[lhs==rhs, vars] Roots[lhs==rhs ,vars] FindRoot[lhs==rhs,{x, x0}] 把多项式化简 把多项式poly按x幂展开 把多项式poly按x,y….的幂次展开 功能 给出方程的解集 直接给出方程的数值解集 求表达式的根 求x在x0附近的方程的数值解

3)极限 Mathematica计算极限的命令是Limit[]。

4)Mathematica中求函数导数的命令D[]。 2.2验证实验

2.2.1 一元函数图形 基本一元函数作图 例如:

命令中的AspectRatio->Automatic 表示按实际比例作图。在不加这个参数时,系统按0.618:1作图。 Mathematica 可以很好地处理奇点。 例:画f(x)=e在区间[-1, 1]上的图形。系统可以略过x=0的点,而在它的邻域内画出函数的图形。 1x

Mathematica可以同时画多个函数的图形。其命令格式为:

Plot[{f1[x],f2[x],…},{x,xmin,xmax}]

15

注意,其中多个函数应该使用同一个自变量x。

例:画出sinx , 1/2 sin 2x , 1/3sin3x在区间[0, 2π]上的图形。

参数方程作图

参数方程的命令格式为:ParametricPlot[{x[t],y[t]},{t,tmin,tmax}] ??x?a?t?sint?,t ?(0,2?)的图形。 例:画出旋轮线???y?a?1?cost?

极坐标方程作图 例:画四叶玫瑰线r=2cos2t的图形。

16

可选参数

作图命令可以添加可选参数,改变图形属性。以“选项名->选项值”的形式,一次可设置多个选项,选项依次排列,用逗号隔开,也可以不设置选项,采用系统的默认值。如上面的AspectRatio。每个作图命令的可选参数不同,具体可查看帮助。 选项 AspectRatio AxesLabel PlotLabel PlotRange PlotStyle PlotPoint 图形的高、宽比 给坐标轴加上名字 给图形加上标题 指定函数因变量的区间 用什么样方式作图(颜色,粗细等) 画图时计算的点数 说明 1/0.618 不加 不加 计算的结果 值是一个表 25 默认值 2.2.2 Mathematica的基本运算 1)多项式的表示形式 可认为多项式是表达式的一种特殊的形式,所以多项式的运算与表达式的运算基本一样,表达式中的各种输出形式也可用于多项式的输出。Mathematica提供一组按不同形式表示代数式的函数。下面是一些例子 (1) 对x 8 -1 进行分解 In[1]:=Factor[x^8-1] Out[1]=(-1+x)(1+x)(1+x 2)(1+x4) (2) 展开多项式 (1+x) 5 In[2]:= Expand[(1+x)^5] Out[2]=1+5x+10x 2+10x 3+5x 4+x5 (3) 展开多项式 (1+x+3y) 4 In[3]:= Expand[(1+x+3y)^4] Out[3]=1+4x+6x 2+4x 3+x 4+12y+36xy+36x 2y+12x 3y+54y 2 +108xy 2+54x 2y 2+108y 3+108xy 3+81y 4 (4) 展开并化简(2+x) 4 (1+x) 4 (3+x) 3 In[4]:= Simplify[Expand[(2+x)^4(1+x)^4(3+x)^3]] Out[4]=(3+x) 3 (2+3x+x 2 ) 4 2)多项式的代数运算 多项式的运算有加、减、乘、除运算:+,-,*,/。 (1)约去公因式 使用Cancel函数可以约去公因式 In[1]:= p1= a^2+3*a+2;p2= a+1; Cancel[p1/p2] Out[1]=2+a (2)商式和余式 两个多项式相除,总能写成一个多项式和一个有理式相加Mathematic中提供两个函数PolynomialQuotient和PolynomialRemainder分别返商式和余式。

x2例如:1?2x

17

In[2]:=PolynomialQuotient[x^2, 1+2x,x]

1x??Out[2]=42 商的整式部分

In[3]:= PolynomialRemainder[x^2, 1+2x,x]

1Out[4]=4 商的余式部分

3)方程及其根的表示 因为Mathematica把方程看作逻辑语句。在数学方程式表示为形如“x 2 -2x -3=0”的形式。在Mathematica中“=”用作赋值语句,这样在Mathematica中用“==”(两个等号中间没有空格)表示逻辑等号,则方程应表示为“x^2 -2x -3==0” 。方程的解同原方程一样被看作是逻辑语句。例如用Roots[lhs==rhs,vars]求方程x 2-3x+2=0的根显示为: In[1]:=Roots[x^2-3x+3==0,x]

Out[1]=x==1||x==2 这种表示形式说明x取1或2均可 而用Solve[lhs==rhs,vars]可得解集形式: In[2]:=Solve[x^2-3x+3==0,x] Out[2]={{x→1},{x→2}}

4)求解一元代数方程 先看Solve函数例子:

In[3]:=Solve[x^2-2x-3==0,x] Out[3]= {{x→-1},{x→3}}

Solve函数可处理的主要方程是多项式方程。Mathematica总能对不高于四次的方程进行精确求解,对于三次或四次方程,解的形式可能很复杂。 例如求x 3 +5x+3=0

In[4]:=Solve[x^3+5x+3==0,x]

这时可用N函数近似数值解: In[5]:=N[%]

Out[5]= {{x→-0.5641},{x→0.28205-2.28881i},{x→0.28205+2.28881i}}

当方程中有一些复杂的函数时,Mathematica可能无法直接给出解来。在这种情况下我们可用FindRoot[ ]来求解,但要给出起始条件。 例如求3Cosx=lnx的解:

In[6]:=FindRoot[3*Cos[x]==Log[x],{x,1}] Out[6]= {x→1.44726}

但只能求出x=1附近的解,如果方程有几个不同的解,当给定不同的条件时,将给出不同

18

1.4 练习

n1?1?1)取很大的正整数n,验证公式?1???e和??e。

?n?k?0k!n2)输入以下命令, 理解选项的含义:

Plot[{Sin[x],Sin[2x],Sin[3x]},{x,0,2Pi},PlotStyle->

{RGBColor[1,0,0],RGBColor[0,1,0],RGBColor[0,0,1]}]; Plot[Sqrt[1+x^2],{x,-6,6},

PlotStyle->{Dashing[{0.01,0.02}], RGBColor[1,0,0]}]; 3)输入以下命令, 观察函数的复合情形: Plot[Sin[Cos[Sin[x]]],{x,-Pi,Pi}]; Plot[Sin[Tan[x]]-Tan[Sin[x]]/x^2,{x,-2Pi,2Pi}]; Plot[{E^x,ArcTan[x],E^ArcTan[x]},{x,-5,5},PlotStyle-> {RGBColor[1,0,0],RGBColor[0,1,0],RGBColor[0,0,1]}]; 4)为观察函数的叠加, 输入以下命令: g1=Plot[x,{x,-5,5},PlotStyle->RGBColor[1,0,0]] g2=Plot[2Sin[x],{x,-5,5},PlotStyle->RGBColor[1,1,0]] g3=Plot[x+2Sin[x],{x,-5,5},PlotStyle->RGBColor[0,0,1]] Show[g1,g2,g3] 5)分别用ParametricPlot和PolarPlot作出五叶玫瑰线?=4sin5?的图形. 6)定义数列x0?1,xn?7)求极限:

13(xn?1?),计算前10项的值, 观察变化趋势. 2xn?1lim(xsinx?011?sinx); xx x?0?limxx,

tanx?sinxlim x?0x3 x2lim x???exlimx2lnx

sinx1?cosxlim() x?0x1 x?0?8)求下列函数的导数: y=f(x2); y=f2(x); 9)求函数y=x2cosx的高阶导数y(10). 10)求下列隐函数y=y(x)的导数

y=ln(f(x)); lnx?e?yx?e,

arctany?lnx2?y2x24

实验03 一元函数微分学应用

实验目的:

1、理解并掌握用函数的导数求单调区间、凹凸区间、极值的方法。 2、结合图形理解泰勒公式和中值定理的意义。

实验内容:

1、求函数的单调区间、凹凸区间、极值。

2、求函数的泰勒公式,并绘制函数及其泰勒公式的图形。 3、验证中值定理的正确性。

3.1实验准备 3.1.1 数学原理:

1)利用导数求函数的单调区间

设函数f(x)在某个区间内有导数,如果在这个区间内f'(x)?0,那么函数y?f(x)在此区间为的增函数;如果在这个区间内f'(x)?0,那么函数y?f(x)在此区间内为减函数. 2)利用导数求函数的凹凸区间

设函数y?f(x)在区间(a,b)内的二阶导数存在,(1)若在(a,b)内f\x)?0,则函数y?f(x)在区间(a,b)内是凹的;(2)若在(a,b)内f\x)?0,则函数y?f(x)在区间

(a,b)内是凹的.

函数y?f(x)的拐点一定是f\x)=0的点或f\x)不存在的点,但f\x)=0的点或

f\x)不存在的点不一定是函数的拐点.

3)利用导数求函数的极值 若x0满足f'(x0)?0,且在x0的两侧f(x)的导数异号,则x0是f(x)的极值点,f(x0)是极值,并且如果f'(x)在x0两侧满足“左正右负”,则x0是f(x)的极大值点,f(x0)是极大值;如f'(x)在x0两侧满足“左负右正” ,则x0是f(x)的极小值点,f(x0)是极小值.

4)泰勒公式

对于正整数n,若函数f(x)在闭区间[a,b]上n阶连续可导,且在(a,b)上n?1阶可导。任取x0?[a,b]是一定点,则对任意x?[a,b]成立下式:

f'(x0)f\x0)f(n)(x0)2f(x)?f(x0)?(x?x0)?(x?x0)???(x?x0)n?Rn(x)

1!2!n!25

其中,f(n)(x)表示f(x)的n阶导数,多项式称为函数f(x)在x0处的泰勒展开式,剩余的

Rn(x)是泰勒公式的余项,是(x?x0)n的高阶无穷小。

5)中值定理

【罗尔中值定理】

如果函数f(x)满足以下条件:在闭区间[a,b]上连续,在(a,b)内可导,f(b)=f(a),则至少存在一个??(a,b),使得f'(?)?0。 【拉格朗日中值定理】 若函数f(x)在区间[a,b]满足以下条件: (1)在(a,b)上可导;(2)在[a,b]上连续; 则必有一??(a,b),使得f'(?)?【柯西(Cauchy)中值定理】 设函数f(x)、g(x)满足 (1)在闭区间[a,b]上连续; (2)在开区间(a,b)内可导; (3)对任意x?(a,b),g'(x)?0, 那么在(a,b)内至少有一点??(a,b),使得f(b)?f(a)。 b?af'(?)f(b)?f(a)?. g'(?)g(b)?g(a)

3.1.2函数命令: 1.求多项式方程的近似根的命令NSolve和NRoots 命令NSolve的基本格式为:NSolve[f[x]= =0,x]。执行后得到多项式方程f(x)?0的所有根(包括复根)的近似值. 命令NRoots的基本格式为:NRoots[f[x]= =0,x,n]。它同样给出方程所有根的近似值. 但是二者表示方法不同. 在命令NRoots的后面所添加的选项n, 要求在求根过程中保持n位有效数字;没有这个选项时, 默认的有效数字是16位. 2.求一般方程的近似根的命令FindRoot

命令的基本格式为 FindRoot[f[x]= =0,{x,a},选项] 或者 FindRoot[f[x]= =0,{x,a,b},选项]

其中大括号中x是方程中的未知数, 而a和b是求近似根时所需要的初值. 执行后得到方程

26

在初值a附近, 或者在初值a与b之间的一个根.

方程的右端不必是0, 形如f(x)?g(x)的方程也可以求根. 此外, 这个命令也可以求方程组的近似根. 此时需要用大括号将多个方程括起来, 同时也要给出各个未知数的初值. 例如,

FindRoot[{f[x,y]= =0,g[x,y]= =0},{x,a},{y,b}]

由于这个命令需要初值, 应先作函数的图形, 确定方程有几个根, 以及根的大致位置, 或所在区间, 以分别输入初值求根.

命令的主要选项有: (1) 最大迭代次数:MaxIterations->n, 默认值是15. (2) 计算中保持的有效数字位数:WorkingPrecision->n, 默认值是16位. 3.求函数极小值的近似值的命令FindMinimum 命令的基本格式为 FindMinimum[f[x],{x,a}, 选项] 执行后得到函数在初值a附近的一个极小值的近似值。这个命令的选项与FindRoot相同, 只是迭代次数的默认值是30. 如果求函数f(x)的极大值的近似值, 可以对函数?f(x)用这个命令. 不过, 正确的极大值是所得到的极小值的相反的数. 使用此命令前, 也要先作函数的图形, 以确定极值的个数与初值. 4.作平面图元的命令Graphics 如果要在平面上作点、圆、线段和多边形等图元, 可以直接用命令Graphics. 输入 g1=Graphics[Line[{{1,-1},{6,8}}],Axes->True] 执行后得到以(1,-1)和(6,8)为端点的直线段. 实际上Show命令中可以添加命令Graphics的所有选项. 如果要作出过已知点的折线, 只要把这些点的坐标组成的集合放在命令Line[ ]之内即可. 如输入 Graphics[Line[{{0,0},{1,2},{3,-1}}],Axes->True] 输出为图. 2.01.51.00.50.51.01.52.02.53.0?0.5?1.0

3.2设计实验

3.2.1求函数的单调区间

例1 求函数y?x?2x?1的单调区间.

27

3

输入

f1[x_]:=x^3-2x+1;

Plot[{f1[x],f1 ' [x]},{x,-4,4},PlotStyle->{GrayLevel[0.01],Dashing[{0.01}]}] 则输出如图.

4020?4?2?20?4024 图中的虚线是导函数的图形. 观察函数的增减与导函数的正负之间的关系. 再输入 Solve[f1 ' [x]==0,x] 则输出 ?2???????x??????,?x??3????????2??????3???? 即得到导函数的零点?2/3. 用这两个零点, 把导函数的定义域分为3个区间. 因为导函数连续, 在它的两个零点之间, 导函数保持相同符号. 因此, 只需在每个小区间上取一点计算导数值, 即可判定导数在该区间的正负, 从而得到函数的增减. 输入 f1' [-1] f1' [0] f1' [1] 输出为1,-2,1. 说明导函数在区间??,?2/3,?2/3,2/3,?????2/3,??上分别取?+,-和+. 因此函数在区间??,?2/3?和?2/3,??上单调增加, 在区间

??????2/3,2/3?上单调减少. ??

3.2.2求函数的凹凸区间和拐点 例2 求函数y?1的凹凸区间和拐点. 21?2x输入

f3[x_]:=1/(1+2x^2);

Plot[{f3[x],f3'' [x]},{x,-3,3},PlotRange->{-5,2}, PlotStyle->{GrayLevel[0.01],Dashing[{0.01}]}]

输出如图, 其中虚线是函数的二阶导数. 观察二阶导数的正负与函数的凹凸之间的关系.

28

21?3?2?1?1?2?3?4?5123

再输入 gen=Solve[f3'' [x]==0,x] 则输出 ?1??1???????x????,?x?????6??6????? 即得到二阶导数等于0的点是?11??1??. 用例1中类似的方法知在???,?和,?????66??6??上二阶导数大于零, 曲线弧向上凹. 在????11?,?上二阶导数小于零, 曲线弧向上凸. 66?再输入 f3[x]/.则输出 {3/4,3/4} 这说明函数在?例3 已知函数 11?13??13?和的值都是3/4. 因此两个拐点分别是??,?和?,?. 4666??64??f(x)?1625x?2x5?x4?60x3?150x2?180x?25, 22在区间[?6,6]上画出函数f(x),f?(x),f??(x)的图形, 并找出所有的驻点和拐点.

输入命令

f[x_] := x^6/2 - 2*x^5 - 25*x^4/2 + 60*x^3 - 150*x^2 - 180*x - 25;

Plot[{f[x], f'[x], f''[x]}, {x, -6, 6}, PlotStyle -> {GrayLevel[0], Dashing[{0.01}], RGBColor[1, 0, 0]}]

NSolve[f'[x] == 0, x]

29

NSolve[f''[x] == 0, x] 则输出如图

600040002000?6?4?2?2000?4000?6000246

3.2.3求函数的极值 例4 求函数y?x的极值. 21?x输入 f2[x_]:=x/(1+x^2); Plot[f2[x],{x,-10,10}] 则输出如图. 0.40.2?10?5?0.2510?0.4

观察它的两个极值. 再输入 Solve[f2' [x]==0,x] 则输出

{{x->-1},{x->1}}

即驻点为x??1.用二阶导数判定极值, 输入 f2'' [-1] f2'' [1]

则输出1/2与-1/2. 因此x??1是极小值点, x?1是极大值点. 为了求出极值, 再输入 f2[-1] f2[1]

输出-1/2与1/2. 即极小值为-1/2, 极大值为1/2.

30

3.2.4 求极值的近似值 例5 求函数y?2sin2(2x)?5?x?xcos2??的位于区间(0,?)内的极值的近似值. 2?2?输入

f4[x_]:=2 (Sin[2 x])^2+5x*(Cos[x/2])^2/2; Plot[f4[x],{x,0,Pi}] 则输出如图.

3.53.02.52.01.51.00.50.51.01.52.02.53.0

观察函数图形, 发现大约在x?1.5附近有极小值, 在x?0.6和有x?2.3极大值. 用命令 FindMinimum直接求极值的近似值. 输入 FindMinimum[f4[x],{x,1.5}] 则输出 {1.94461,{x->1.62391}} 即同时得到极小值1.94461和极小值点1.62391. 再输入 FindMinimum[-f4[x],{x,0.6}] FindMinimum[-f4[x],{x,2.3}] 则输出 {-3.73233,{x->0.864194}} {-2.95708,{x->2.24489}} 即得到函数?y的两个极小值和极小值点. 再转化成函数y的极大值和极大值点.

3.2.5泰勒公式与函数逼近 x2xn????Rn(x)近似计算ex. 若|x|?1,要求截断误差例6 利用泰勒公式e?1?x?2!n!x|Rn|?0.005,问n应取多大?

exe3因为|Rn|?xn?1?|x|n?1?,

(n?1)!(n?1)!(n?1)!所以, 欲使|Rn|?0.005, 只要取n?5即可.

31

输入命令

f[x_]=Normal[Series[Exp[x],{x,0,5}]]

Table[N[{x,Exp[x],f[x],Exp[x]-f[x]}],{x,-1,1,0.4}] 则输出下表结果

?xexp(x)截断误差Rn(?x)0.001212770.00005963618.64113?10?89.14935?10?80.00007080040.00161516?1.000.3678790.366667?0.600.54888120.548752?0.200.200.601.000.8187311.22141.822122.718280.8187311.22141.822052.71667 例7 观察函数f(x)?sinx各阶泰勒展开的图形. (1) 固定x0?0,观察阶数n的影响; 输入命令 t = Table[Normal[Series[Sin[x], {x, 0, i}]], {i, {5, 15, 25}}]; PrependTo[t, Sin[x]]; Plot[t, {x, 0, 5*Pi}, PlotRange -> {-3, 3}, PlotStyle -> {RGBColor[0, 0, 0], RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1]}, Background -> RGBColor[0.753, 0.753, 0.753]] 则输出如图. 32151015?1?2?3 (2) 扩大显示区间范围, 以观察在偏离展开点x0时泰勒多项式对函数的逼近情况; 输入命令

t = Table[Normal[Series[Sin[x], {x, 0, i}]], {i, 1, 19, 2}]; PrependTo[t, Sin[x]];

Plot[Evaluate[t], {x, -Pi, Pi}]

Plot[Evaluate[t], {x, -Pi, Pi}, AspectRatio -> Automatic] Plot[Evaluate[t], {x, -2 Pi, 2 Pi}, AspectRatio -> Automatic] Plot[Evaluate[t], {x, -3 Pi, 2 Pi}, AspectRatio -> Automatic]

32

则分别输出相应图形.

321?3?2?1?1?2?3123

321?3?2?1123?1?2?3

42?6?4?2246?2?4 33

42?5?25?4

通过观察泰勒多项式图形与函数图形的重合与分离情况, 可以看到在[??,?]范围内y?sinx的9次泰勒多项式与函数图形几乎重合, 而在[?2?,2?]范围内y?sinx的各次泰勒多项式陆续与y?sinx的图象分离, 但其15次以及更高的泰勒多项式仍紧靠着y?sinx, 而在[?3?,3?]范围内, 其15次泰勒多项式的图形也与y?sinx的图象分离.

由此可见, 函数的泰勒多项式对于函数的近似程度随着次数的提高而提高, 但对于任一确定次数的多项式, 它只在展开点附近的一个局部范围内才有较好的近似精确度. (3) 固定n?10,观察x0的影响. 输入命令 t = Table[Normal[Series[Sin[x], {x, x0, 10}]], {x0, {0, 5, 12}}]; PrependTo[t, Sin[x]]; Plot[t, {x, 0, 6*Pi}, PlotRange -> {-3, 3}, PlotStyle -> {RGBColor[0, 0, 0], RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1]}, Background -> RGBColor[0.753, 0.753, 0.753]] 则输出如图. 32151015?1?2?3

34

3.2.6中值定理 例8 对函数f(x)?x(x?1)(x?2),观察罗尔定理的几何意义. 因为f(0)?f(1)?f(2)?0,由罗尔定理, 存在x1?(0,1), x2?(1,2), 使得 f?(x1)?f?(x2)?0. (1) 画出y?f(x)与f?(x)的图形, 并求出x1与x2. 输入 f[x_] = x*(x - 1)*(x - 2); g1 = Plot[f[x], {x, -1, 3}, PlotStyle -> RGBColor[1, 0, 0]]; g2 = Plot[f'[x], {x, -1, 3}]; Show[g1, g2] NSolve[f'[x] == 0, x] 21?1?1?2?3123

(2)画出y?f(x)及其在点(x1,f(x1))与(x2,f(x2))处的切线. 输入 t1[x_] = f[0.42265]; t2[x_] = f[1.57735]; Plot[{f[x], t1[x], t2[x]}, {x, -1, 3}] 1.51.00.5?1?0.5?1.0?1.5123

35

例9 对函数f(x)?ln(1?x)在区间[0,4]上观察拉格朗日中值定理的几何意义. (1) 画出y?f(x)及其左、右端点连线的图形; 输入命令 Clear[g1, g2];

f[x_] = Log[1 + x]; a = 0; b = 4;

g1[x_] := f[a] + (f[b] - f[a])*(x - a)/(b - a); g2[x_] := f'[x] - (f[b] - f[a])/(b - a); Plot[{f[x], g1[x]}, {x, a, b}] 1.51.00.51234 (2)画出函数y?f?(x)?f(4)?f(0)f(4)?f(0). 的曲线图, 并求出?使得f?(?)?4?04?0 输入 Plot[g2[x],{x,a,b}] NSolve[f ' [x]==(f[b]-f[a])/(b-a),x]; 0.60.40.21234?0.2 {{??→1.4853397382384472}}

(3)画出y?f(x),它在?处的切线及它在左、右端点连线的图形. 输入命令

x1 = 1.4853397382384472; g3[x_] = f[x1] + f'[x1]*(x - x1); Plot[{f[x], g1[x], g3[x]}, {x, a, b}]

36

1.51.00.51234

例10 函数f(x)?1/x4在区间[1,2]上满足拉格朗日中值定理的条件, 因此存在??(1,2)使

f?(?)?f(f(2)?f(1))/(2?1). 验证这个结论的正确性. 输入 Clear[f]; f[x_]:=1/x^4; Solve[D[f[x],x]==f[2]-f[1],x]//N 输出中有5个解: {{x -> -1.08137 - 0.785663 I}, {x -> 1.33665}, {x ->0.413048 + 1.27123 I}, {x ->0.413048 - 1.27123 I}, {x -> -1.08137 + 0.785663 I}} 其中的实数解就是满足拉格朗日中值定理的?, 约为1.33665. 3.3 大作业 1)在区间[0,1]上对函数f(x)?4x?5x?x?2验证拉格朗日中值定理的正确性。 2)在区间[0,232?2]上对函数f(x)?sinx和F(x)?x?cosx验证柯西中值定理的正确性 3)求y?x在(1,1)处的切线和法线方程。 4)求x?t,y?sint在(1,sin1)处的切线和法线方程。 5)作函数y=x4+2x3–72x2+70x+24及其二阶导函数在区间[–8, 7]上的图形, 并求该函数的凹凸区间和拐点. 6)函数f(x)?e?x21625xcos(),g(x)?sinx3?作它们在区间[0, ?]上的图形, 并求方程

4?f(x)=g(x)在该区间内的近似根.

7)查阅Cauchy中值定理的相关资料,编写通用的Cauchy中值定理验证函数,该函数并具有相应的画图功能。请举例验证该函数,写出实验报告。

37

实验04 一元微分应用中的数学模型

实验目的:

1、学习建立一元函数的极值模型

2、学习使用Mathematica求一元函数极值的方法

实验内容:

1、圆柱形水塔维修问题 2、驳船的长度问题

4.1实验准备 4.1.1 数学原理:

定理1(极值的第一充分条件)

设函数y=f(x)在x的一个领域内可微(在x处可以不可微,但必须连续),若当x在该邻域内由小于x连续地变为大于x时,其导数f′(x)改变符号,则f(x)为函数的极值. x为函数的极值点,并且

(1)若导数f′(x)由正值变为负值,则x为函数的极大值点; (2)若导数f′(x)由负值变为正值,则x为函数的极小值点; (3)若导数f′(x)不变号,则x不是函数的极值点. 运用该定理求函数极值点的一般步骤是:

(1)确定函数定义域并找出所给函数的驻点和导数不存在的点; (2)考察上述点两侧导数的符号,确定极值点; (3)求出极值点处的函数值,得到极值. 定理2(极值的第二充分条件)

设函数y=f(x)在x处的二阶导数存在,若f′(x)=0,且f″(x)≠0,则x为函数的极值点,f(x)为函数的极值,并且

(1)当f″(x)>0时,则x为函数的极小值点,f(x)为函数的极小值; (2)当f″(x)<0时,则x为函数的极大值点,f(x)为函数的极大值. 运用该定理求函数极值点的一般步骤是:

(1)确定函数定义域,并找出所给函数的全部驻点; (2)考察函数的二阶导数在驻点处的符号,确定极值点.

4.1.2函数命令:

求一元函数的导数命令 绘制一元函数图形的命令 求解一元函数的根的命令

4.2设计实验

4.2.1圆柱形水塔维修问题

在地面上建有一座圆柱形水塔,水塔内部的直径为d, 并且在地面处开了一个高为H的小门.现在要对水塔内部进行维修施工, 施工方案要求把一根长为s(s>d)的水管运到水塔内部. 请问水塔的门高H多高时, 才有可能成功地把水管搬进水塔内?(d=8米, s=8米) 解答:

38

本文来源:https://www.bwwdw.com/article/58e.html

Top