8. 求由下列参数方程确定的函数的导数:
6t?x?,3??1?t3?x?cost,?(1) ? (2) ? 236t?y?sint;?y??.?1?t3?
实验4 导数的应用(基础实验)
实验目的
理解并掌握用函数的导数确定函数的单调区间、凹凸区间和函数的极值的方法. 理解曲线 的曲率圆和曲率的概念. 进一步熟悉和掌握用Mathematica作平面图形的方法和技巧. 掌握用 Mathematica求方程的根(包括近似根)和求函数极值(包括近似极值)的方法.
基本命令
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是求近似根时所需要的初值. 执行后得到方程在初 值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)用这个命令. 不过, 正确的极大值是 所得到的极小值的相反的数.
使用此命令前, 也要先作函数的图形, 以确定极值的个数与初值. 43
4.作平面图元的命令Graphics
如果要在平面上作点、圆、线段和多边形等图元, 可以直接用命令Graphics, 再用命令Show 在屏幕上显示. 例如, 输入
g1=Graphics[Line[{{1,-1},{6,8}}]] Show[g1,Axes->True]
执行后得到以(1,-1)和(6,8)为端点的直线段.
实际上Show命令中可以添加命令Graphics的所有选项. 如果要作出过已知点的折线, 只要 把这些点的坐标组成的集合放在命令Line[ ]之内即可. 如输入
Show[Graphics[Line[{{0,0},{1,2},{3,-1}}]],Axes->True]
输出为图4.1.
21.510.50.5-0.5-111.522.5图4.1
实验举例
求函数的单调区间
例4.1 (指导书 例4.1) 求函数y?x3?2x?1的单调区间. 输入
f1[x_]:=x^3-2x+1;
Plot[{f1[x],f1 ' [x]},{x,-4,4},PlotStyle-> {GrayLeve1[0.01],Dashing[{0.01}]}]
则输出图4.2.
10 5-4-2-52 -10 图4.2
图4.2中的虚线是导函数的图形. 观察函数的增减与导函数的正负之间的关系.
再输入
Solve[f1 ' [x]==0,x]
则输出 44
?2???????x??????,?x??3????????2?????? 3????即得到导函数的零点?2/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?上单调减少.
求函数的极值
例4.2 (指导书 例4.2) 求函数y?x1?x2的极值. 输入
f2[x_]:=x/(1+x^2); Plot[f2[x],{x,-10,10}]
则输出图4.3.
0.40.2-6-4-224-0.2-0.4图4.3
观察它的两个极值. 再输入
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.
求函数的凹凸区间和拐点
45
例4.3 求函数y?输入
11?2x2的凹凸区间和拐点.
f3[x_]:=1/(1+2x^2);
Plot[{f3[x],f3'' [x]},{x,-3,3},PlotRange->{-5,2},
PlotStyle->{GrayLeve1[0.01],Dashing[{0.01}]}]
输出图4.4, 其中虚线是函数的二阶导数. 观察二阶导数的正负与函数的凹凸之间的关系.
21-3-2-1-1-2-3-412图4.4
再输入
gen=Solve[f3'' [x]==0,x]
则输出
?1??1????? ??x???,x??????
?6??6?????-5 即得到二阶导数等于0的点是?
1
??1?1??和??上二阶??,?,??. 用例1中类似的方法知在????6?66?????11??上二阶导数小于零, 曲线弧向上凸. ?,导数大于零, 曲线弧向上凹. 在??66???再输入
f3[x]/.gen
则输出
{3/4,3/4}
?13??13?11???这说明函数在?和的值都是3/4. 因此两个拐点分别是???6,4?和?6,4?.
66????例4.4 已知函数
1254f(x)?x6?2x5?x?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]NSolve[f '' [x]==0,x];
46
则输出图4.5
600040002000-6-4-2-2000-4000-6000-800024 图4.5
求极值的近似值
例4.5 (教材 例4.3) 求函数y?2sin2(2x)?值.
输入
f4[x_]:=2 (Sin[2 x])^2+5x*(Cos[x/2])^2/2; Plot[f4[x],{x,0,Pi}]
则输出图4.6.
3.532.521.510.50.511.522.5 5?x?xcos2??的位于区间(0,?)内的极值的近似2?2? 图4.6
观察函数图形, 发现大约在x?1.5附近有极小值, 在x?0.6和有x?2.5极大值. 用命令 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.5}]
则输出
{-3.73233,{x->0.864194}}
47