高数项目微积分MathematicaWord文档格式.docx
《高数项目微积分MathematicaWord文档格式.docx》由会员分享,可在线阅读,更多相关《高数项目微积分MathematicaWord文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
![高数项目微积分MathematicaWord文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/334c74d2-a1d5-44b8-846b-e24d09ef15b2/334c74d2-a1d5-44b8-846b-e24d09ef15b21.gif)
Dt[f[x,y],Constants->
{a}]
3.在平面上作二元函数的等高线的命令ContourPlot
命令的基本格式为
ContourPlot[f[x,y],{x,x1,x2},{y,y1,y2}]
例如,输入
ContourPlot[x^2-y^2,{x,-2,2},{y,-2,2}]
则输出函数的等高线图(图1.1).该命令的选项比较多(详细的内容参见光盘中的实验案例库).如选项Contours->
15表示作15条等高线,选项Contours->
{0}表示只作函数值为0的等高线.
图1.1
实验举例
求多元函数的偏导数与全微分
例1.1(教材例1.1)设求
输入
Clear[z];
z=Sin[x*y]+Cos[x*y]^2;
D[z,x]
D[z,y]
D[z,{x,2}]
D[z,x,y]
则输出所求结果.
例1.2设求和全微分dz.
z=(1+x*y)^y;
则有输出
再输入
Dt[z]
则得到输出
例1.3(教材例1.2)设其中a是常数,求dz.
Clear[z,a];
z=(a+x*y)^y;
wf=Dt[z,Constants->
{a}]//Simplify
则输出结果:
(a+xy)-1+y(y2Dt[x,Constants->
{a}]+
Dt[y,Constants->
{a}](xy+(a+xy)Log[a+xy]))
其中Dt[x,Constants->
{a}]就是dx,Dt[y,Constants->
{a}]就是dy.可以用代换命令“/.”把它们
换掉.输入
wf/.{Dt[x,Constants->
{a}]->
dx,Dt[y,Constants->
dy}
输出为
(a+xy)-1+y(dxy2+dy(xy+(a+xy)Log[a+xy]))
例1.4(教材例1.3)设,求
eq1=D[x==E^u+u*Sin[v],x,NonConstants->
{u,v}]
(*第一个方程两边对x求导数,把u,v看成x,y的函数*)
eq2=D[y==E^u-u*Cos[v],x,NonConstants->
(*第二个方程两边对x求导数,把u,v看成x,y的函数*)
Solve[{eq1,eq2},{D[u,x,NonConstants->
{u,v}],
D[v,x,NonConstants->
{u,v}]}]//Simplify
(*解求导以后由eq1,eq2组成的方程组*)
则输出
其中D[u,x,NonConstants->
{u,v}]表示u对x的偏导数,而D[v,x,NonCosnstants->
{u,v}]表示v
对x的偏导数.类似地可求得u,v对y的偏导数.
微分学的几何应用
例1.5求出曲面在点(1,1)处的切平面、法线方程,并画出图形.
解
(1)画出曲面的图形.曲面的参数方程为
输入命令
Clear[f];
f[x_,y_]=2x^2+y^2;
p1=Plot3D[f[x,y],
{x,-2,2},{y,-2,2}];
g1=ParametricPlot3D[{r*Sin[u]/Sqrt[2.],r*Cos[u],r^2},
{u,0,2*Pi},{r,0,2}]
则输出相应图形(图1.2).
图1.2
(2)画出切平面的图形.输入命令
a=D[f[x,y],x]/.{x->
1,y->
1};
b=D[f[x,y],y]/.{x->
p[x_,y_]=f[1,1]+a(x-1)+b(y-1);
g2=Plot3D[p[x,y],{x,-2,2},{y,-2,2}];
则输出切平面方程为及相应图形(图1.3).
图1.3
(3)画出法线的图形.输入命令
ly[x_]=1+b(x-1)/a;
lz[x_]=f[1,1]-(x-1)/a;
g3=ParametricPlot3D[{x,ly[x],lz[x]},{x,-2,2}];
Show[p1,g2,g3,AspectRatio->
Automatic,
ViewPoint->
{-2.530,-1.025,2.000}];
则输出相应图形(图1.4).
图1.4
例1.6(教材例1.4)求曲面在点处的切平面方程,并把曲面和它的切平面作在同一图形里.
Clear[k,z];
k[x_,y_]=4/(x^2+y^2+1);
(*定义函数k(x,y)*)
kx=D[k[x,y],x]/.{x->
1/4,y->
1/2};
(*求函数k(x,y)对x的偏导数,并代入在指定点的值*)
ky=D[k[x,y],y]/.{x->
(*求函数k(x,y)对y的偏导数,并代入在指定的值*)
z=kx*(x-1/4)+ky*(y-1/2)+k[1/4,1/2];
(*定义在指定点的切平面函数*)
qm=Plot3D[k[x,y],{x,-2,2},{y,-2,2},PlotRange->
{0,4},
BoxRatios->
{1,1,1},PlotPoints->
30,
DisplayFunction->
Identity];
qpm=Plot3D[z,{x,-2,2},{y,-2,2},
Show[qm,qpm,DisplayFunction->
$DisplayFunction]
则输出所求曲面与切平面的图形(图1.5).
图1.5
多元函数的极值
例1.7(教材例1.5)求的极值.
f[x_,y_]=x^3-y^3+3x^2+3y^2-9x;
fx=D[f[x,y],x]
fy=D[f[x,y],y]
critpts=Solve[{fx==0,fy==0}]
则分别输出所求偏导数和驻点:
{{x->
-3,y->
0},{x->
2},{x->
2}}
再输入求二阶偏导数和定义判别式的命令
fxx=D[f[x,y],{x,2}];
fyy=D[f[x,y],{y,2}];
fxy=D[f[x,y],x,y];
disc=fxx*fyy-fxy^2
输出为判别式函数的形式:
(6+6x)(6-6y)
data={x,y,fxx,disc,f[x,y]}/.critpts;
TableForm[data,TableHeadings->
{None,{"
x"
"
y"
fxx"
disc"
f"
}}]
最后我们得到了四个驻点处的判别式与的值并以表格形式列出.
Xyfxxdiscf
-30-12-7227
-32-127231
101272-5
1212-72-1
易见,当时判别式disc=72,函数有极大值31;
当时判别式disc=72,函数有极小值-5;
当和时,判别式disc=-72,函数在这些点没有极值.
最后,把函数的等高线和四个极值点用图形表示出来,输入
d2={x,y}/.critpts;
g4=ListPlot[d2,PlotStyle->
PointSize[0.02],DisplayFunction->
g5=ContourPlot[f[x,y],{x,-5,3},{y,-3,5},Contours->
40,PlotPoints->
60,
ContourShading->
False,Frame->
False,Axes->
AxesOrigin->
{0,0},DisplayFunction->
Show[g4,g5,DisplayFunction->
则输出图1.6.
图1.6
从上图可见,在两个极值点附近,函数的等高线为封闭的.在非极值点附近,等高线不
封闭.这也是从图形上判断极值点的方法.
注:
在项目一的实验4中,我们曾用命令FindMinimum来求一元函数的极值,实际上,也可
以用它求多元函数的极值,不过输入的初值要在极值点的附近.对本例,可以输入以下命令
FindMinimum[f[x,y],{x,-1},{y,1}]
{-5.,{x->
1.,y->
-2.36603×
10-8}}
从中看到在的附近函数有极小值-5,但y的精度不够好.
例1.8求函数在条件下的极值.
Clear[f,g,la];
f[x_,y_]=x^2+y^2;
g[x_,y_]=x^2+y^2+x+y-1;
la[x_,y_,r_]=f[x,y]+r*g[x,y];
extpts=Solve[{D[la[x,y,r],x]==0,
D[la[x,y,r],y]==0,D[la[x,y,r],r]==0}]
得到输出
f[x,y]/.extpts//Simplify
得到两个可能是条件极值的函数值但是否真的取到条件极值呢?
可利用等高线作图来判断.
dian={x,y}/.Table[extpts[[s,j]],{s,1,2},{j,2,3}]
g1=ListPlot[dian,PlotStyle->
PointSize[0.03],
Identity]
cp1=ContourPlot[f[x,y],{x,-2,2},{y,-2,2},
Contours->
20,PlotPoints->
cp2=ContourPlot[g[x,y],{x,-2,2},{y,-2,2},
PlotPoints->
60,Contours->
{0},ContourShading->
Automatic,ContourStyle
->
Dashing[{0.01}],
AxesOri