数学实验
DESCRIPTION
数学实验. 2.6 偏导数与全微分. D[Exp[x+y+z^2],z] D[x^2+y^2,x,y] D[Exp[x+2y],{y,5}] D[x[1]^2+x[2]^2,x[1]] D[g[x^2,y^2],x] D[g[x,y^2],x,x,y] D[x^2+y^2,x,NonConstants->{y}] D[x^2+y[x]^2,x] D[f[Sin[x],y[x^2]],x] Dt[x^2+y^2,x] Dt[x^2+y^2+z^2,x] Dt[x^2+y^2+z^2,x,Constants->{y}] Dt[ArcSin[x/y]]. - PowerPoint PPT PresentationTRANSCRIPT
2.6 2.6 偏导数与全微分偏导数与全微分
格式 意义D[f,x] 计算 f 关于 x 的偏导数D[f,x1,x2,…] 计算 f 关于 x1,x2,… 的高阶偏导数D[f,{xi,n}] 计算 f 关于 xi 的 n 阶偏导数D[f,x,NonConstants->{y}]
计算 f 关于 x 的偏导数, y 是 x 的函数
Dt[f,x] 计算 f 关于 x 的全导数Dt[f,x1,x2,…] 计算 f 关于 x1,x2,… 的全导数Dt[f,x,Constants-> {c1,c2,…}]
计算 f 关于 x 的全导数,其中 c1,c2,… 为常数
Dt[f[x,y]] 求 f 的全微分
D[Exp[x+y+z^2],z]
D[x^2+y^2,x,y]
D[Exp[x+2y],{y,5}]
D[x[1]^2+x[2]^2,x[1]]
D[g[x^2,y^2],x]
D[g[x,y^2],x,x,y]
D[x^2+y^2,x,NonConstants->{y}]
D[x^2+y[x]^2,x]
D[f[Sin[x],y[x^2]],x]
Dt[x^2+y^2,x]
Dt[x^2+y^2+z^2,x]
Dt[x^2+y^2+z^2,x,Constants->{y}]
Dt[ArcSin[x/y]]
t1={{"D[Exp[x+y+z^2],z]",
"D[x^2+y^2,x,y]",
"D[Exp[x+2y],{y,5}]}",
"D[x[1]^2+x[2]^2,x[1]]",
"D[g[x^2,y^2],x]",
"D[g[x,y^2],x,x,y]",
"D[x^2+y^2,x,NonConstants->{y}]",
"D[x^2+y[x]^2,x]",
"D[f[Sin[x],y[x^2]],x]",
"Dt[x^2+y^2,x]",
"Dt[x^2+y^2+z^2,x]",
"Dt[x^2+y^2+z^2,x,Constants->{y}]",
"Dt[ArcSin[x/y]]"}};
t2={{D[Exp[x+y+z^2],z],
D[x^2+y^2,x,y],
D[Exp[x+2y],{y,5}],
D[x[1]^2+x[2]^2,x[1]],
D[g[x^2,y^2],x],
D[g[x,y^2],x,x,y],
D[x^2+y^2,x,NonConstants->{y}],
D[x^2+y[x]^2,x],
D[f[Sin[x],y[x^2]],x],
Dt[x^2+y^2,x],
Dt[x^2+y^2+z^2,x],
Dt[x^2+y^2+z^2,x,Constants->{y}],
Dt[ArcSin[x/y]]}};
TableForm[Transpose[Join[t1,t2]]]
隐函数求导隐函数求导
例 已知 x2+y2+z2-4z=0, 求 .
eq=(x^2+y^2+z^2-4z==0);
y/:Dt[y,x]=0;
deq1=Dt[eq,x]
deq2=Dt[eq,x,x]
Solve[{deq1,deq2},{Dt[z,x],Dt[z,{x,2}]}]
2
2
,x
z
x
z
例 设 x u-y v=0, y u+x v=1, 求
eq={x u-y v==0,y u+x v==1};
y/:Dt[y,x]=0; x/:Dt[x,y]=0;
eqx=Dt[eq,x]
{jie1}=Solve[eqx,{Dt[u,x],Dt[v,x]}]
eqy=Dt[eq,y]
{jie2}=Solve[eqy,{Dt[u,y],Dt[v,y]}]
.,,,y
v
x
v
y
u
x
u
uv=Solve[eq,{u,v}];
u=u/.uv[[1]];v=v/.uv[[1]];
{D[u,x],D[u,y],D[v,x],D[v,y]}//Simplify
{Dt[u,x],Dt[u,y],Dt[v,x],Dt[v,y]}/.jie1/.jie2//Simplify
2.7 2.7 多元函数的极值多元函数的极值 例 1 设 z=x4-8xy+2y2-3, 求函数的极值点和极值 .
z=x^4-8x y+2y^2-3;
dzx=D[z,x];dzy=D[z,y];
s0=Solve[{dzx==0,dzy==0},{x,y}]
dzxx=D[z,x,x];dzxy=D[z,x,y];dzyy=D[z,y,y];
L=dzxx dzyy-dzxy^2
Module[{a,b,c,d,e},Do[a=L/.s0[[k]] ;b=
dzxx/.s0[[k]];c=z/.s0[[k]];d=x/.s0[[k]];e=y/.s0[[k]];
If[a>0,If[b<0,Print["(",d,", ",e,") is a maximum point. ","
z=",c], Print["(",d,", ",e,") is a minimum point."," z=",c]]],
{k,1,Length[s0]}]]
也可以通过图形来观察极值点与驻点Plot3D[z,{x,-4,4},{y,-6,6},PlotPoints->100,Mesh->False]
缩小值域再作观察 :
small=Plot3D[z,{x,-4,4},{y,-6,6},PlotPoints->100,PlotRange->
{-20,3},Mesh->False]
Show[small,ClipFill->None]
ContourPlot[z,{x,-4,4},{y,-6,6},PlotRange->{-30,3}]
条件极值与条件极值与 LagrangeLagrange 乘数法乘数法
例 2 求表面积为 a2 且体积最大的长方体的体积 .
Clear[x,y,z,r,g]
g[x_,y_,z_]:=x y z-k(2x y+2y z+2 x z-a^2)
eq1=D[g[x,y,z],x]==0; eq2=D[g[x,y,z],y]==0;
eq3=D[g[x,y,z],z]==0; eq4=D[g[x,y,z],k]==0;
r=Solve[{eq1,eq2,eq3,eq4},{x,y,z,k}]
g[x,y,z]/.r[[2]]
Clear[g,eq1,eq2,eq3,eq4,r]
Clear[x,y,z,s,t,r,k1,k2,m1,m2,L]
L=(x-s)^2+(y-t)^2+(z-r)^2+k1(x+y-z-1)+m1(2x+y-z-2)+
k2(s+2t-r-2)+m2(s+2t+2r+4);
rr=Solve[{D[L,x]==0,D[L,y]==0,D[L,z]==0,D[L,s]==0,
D[L,t]==0,D[L,r]==0,D[L,k1]==0,D[L,k2]==0,
D[L,m1]==0,D[L,m2]==0},{x,y,z,s,t,r,k1,k2,m1,m2}]
d=Sqrt[(x-s)^2+(y-t)^2+(z-r)^2]/.rr[[1]]
Print[p1={x,y,z}/.rr[[1]],",",p2={s,t,r}/.rr[[1]],",",p2-p1]
例 3 已知两条直线的方程分别为:
求这两条直线间的最短距离 .
0422
022:
022
01: 21 zyx
zyxl
zyx
zyxl 和
二元函数在区域二元函数在区域 DD 内的最大值和最小值内的最大值和最小值
例 4 求函数 z=x2+y2-4x-2y+7 在上半圆域 x2+y216, y0
上的最大值和最小值 .
(1) 画出函数的等高线和区域 D 的边界线 .
Clear[x,y,z,r,g]
g[x_,y_]:=x^2+y^2-4x-2y+7
pts=Table[N[{4Cos[t],4Sin[t]}],{t,0,Pi,Pi/20}];
ContourPlot[g[x,y],{x,-5,5},{y,-5,5},Epilog->{RGBColor[1,1,0],
Thickness[0.003],Line[pts],Line[{{-4,0},{4,0}}]}];
(2) 求函数在区域 D 内的驻点,计算相应的函数值 .
r=Solve[{D[g[x,y],x]==0,D[g[x,y],y]==0},{x,y}]
g[x,y]/.r[[1]]
(3) 求函数在直线边界 y=0, -4x4 上的最值 .
Plot[g[x,0],{x,-4,4},PlotRange->All];
r=Solve[D[g[x,0],x]==0,x]
Print[g[x,0]/.r[[1]], " , ",g[-4,0], " , ",g[4,0]]
(4) 求函数在圆弧边界 x2+y2=16, y0 上的最值 .
Plot[g[4Cos[t],4Sin[t]],{t,0,Pi}];
eqt=D[g[4Cos[t],4Sin[t]],t]==0; rt=FindRoot[eqt,{t,0.5}]
{4Cos[t],4Sin[t]}/.rt
g[4Cos[t],4Sin[t]]/.rt
根据上述计算可知:函数在区域 D 上的点 (2,1) 处取得最小值 2 ;在边界点 (-4,0) 处取得最大值 39.
3.1 3.1 平面上的几何变换平面上的几何变换函数图形的平移变换函数图形的平移变换
f[x_]:=Exp[-x^2/2]
Plot[{f[x],f[x+1],f[x-2]},{x,-5,5},PlotStyle->{RGBColor[1,0,0],
RGBColor[0,1,0], RGBColor[0,0,1]}]
例 1 设 ,在同一坐标系中作出 y=f(x), y=f(x+1)
和 y=f(x-2) 的图象 .
2
2
)(x
exf
ParametricPlot[{{Cos[t],Sin[t]}, {Cos[t]+3,Sin[t]-2}},{t,0,2Pi},
PlotStyle->{RGBColor[1,0,0],RGBColor[0,0,1]},AspectRatio
->Automatic]
Plot[{f[x],f[x]+2,f[x-2]-3},{x,-5,5},PlotStyle-
>{RGBColor[1,0,0], RGBColor[0,1,0], RGBColor[0,0,1]}]
函数图形的伸缩变换函数图形的伸缩变换
f[x_]:=Exp[-x^2/2]
Plot[{f[x],f[2x],f[x/2]},{x,-5,5},PlotStyle->{RGBColor[1,0,0],
RGBColor[0,1,0], RGBColor[0,0,1]}]
例 2 设 ,在同一坐标系中作出 y=f(x), y=f(2x)
和 y=f(x/2) 的图象 .
2
2
)(x
exf
通过动画观察图象的变化情况:Do[Plot[f[s x],{x,-5,5},PlotStyle->RGBColor[0,0,1], PlotRang
e->{0,1},PlotLabel->"s="<>ToString[s]],{s,0.2,5,0.2}]
进一步观察 t f(s x),f(-x),-f(x) 及参数方程图象的变化情况 .
函数图形的旋转变换函数图形的旋转变换
z[t_]:=(t+t^2 I)Exp[Pi/6 I]
ParametricPlot[{Re[z[t]],Im[z[t]]},{t,-2,2},AspectRatio->
Automatic,PlotRange->{{-5,5},{-1,5}},PlotStyle->
RGBColor[0,0,1]]
例 3 将抛物线 绕原点旋转 30 度 .2xy
动画观察图象旋转的效果 :
z1[t_,s_]:= (t+t^2 I)Exp[s I]
Do[ParametricPlot[{Re[z1[t,s]],Im[z1[t,s]]},{t,-2,2}, AspectRat
io-> Automatic,PlotRange->{{-5,5},{-5,5}}, PlotStyle-> RGBC
olor[0,0,1]],{s,0,2Pi,Pi/12}]
函数图形的对称变换函数图形的对称变换
(1) 偶延拓f=.;f[x_]:=Sqrt[2x-x^2]/;x>=0
f[x_]:=f[-x]/;x<0
Plot[f[x],{x,-2,2},AspectRatio->Automatic]
例 4 已知 ,试扩展 f(x) 的定义域,使 f(x) 分别成为奇函数和偶函数,作出延拓后的函数图象 .
20,2)( 2 xxxxf
(2) 奇延拓f1[x_]:=Sqrt[2x-x^2]/;x>=0
f1[x_]:=-f1[-x]/;x<0
Plot[f1[x],{x,-2,2},AspectRatio->Automatic]
周期延拓Clear[f];
f[x_]:=Which[0<=x<=2,Sqrt[2x-x^2],x>2,f[x-2],x<0,f[x+2]]
Plot[f[x],{x,-6,6},AspectRatio->Automatic]
例 5 将例 4 中的函数 f(x) 延拓为以 2 为周期的周期函数,作出延拓后的函数图象 .
ang[x_]:=ArcTan[x];a=1/2;
zf[t_]:=(t+Sqrt[2t-t^2] I);
zf1[t_,u_]:=Conjugate[zf[t] Exp[-ang[u]I]]Exp[ang[u]I];
ParametricPlot[{{Re[zf1[t,a]],Im[zf1[t,a]]},{t,t/2},{Re[zf[t]],
Im[zf[t]]}},{t,0,2},AspectRatio->Automatic,PlotStyle->
{RGBColor[1,0,0], RGBColor[0,1,0], RGBColor[0,0,1]}]
例 6 作出例 4 中的函数 y=f(x) 关于直线 y=ax 的镜像 .
动画观察图象镜像的效果 :
Do[ParametricPlot[{{Re[zf1[t,b]],Im[zf1[t,b]]},{t,b t},
{Re[zf[t]],Im[zf[t]]}},{t,0,2},PlotRange->{{-1,2.01},{-1.01,2}},
AspectRatio->Automatic, PlotStyle->{RGBColor[1,0,0], RGB
Color[0,1,0], RGBColor[0,0,1]}],{b,0,2,1/12}]
a=3;b=5I;
zf2[t_,u_]:=Conjugate[(zf[t]-b)Exp[-ang[u]I]]Exp[ang[u]I]+b;
ParametricPlot[{{Re[zf2[t,a]],Im[zf2[t,a]]},{t-2,3(t-2)+5},
{Re[zf[t]],Im[zf[t]]}},{t,0,2}, AspectRatio->Automatic,
PlotStyle->{RGBColor[1,0,0], RGBColor[0,1,0],
RGBColor[0,0,1]}]
例 7 作出例 4 中的函数 y=f(x) 关于直线 y=3x+5 的镜像 .
几个练习几个练习
z=.;x=.;y=.;point={x->1,y->1,z->1};
eqns={2x-3y+5z-4==0,x^2+y^2+z^2-3x==0};
jie=Solve[Dt[eqns,x],{Dt[y,x],Dt[z,x]}]
dzx=Dt[z,x]/.jie[[1]]/.point
dyx=Dt[y,x]/.jie[[1]]/.point
v0={1,dyx,dzx}
(x-1)/1==(y-1)/dyx==(z-1)/dzx
Expand[(x-1)+(y-1)dyx+(z-1)dzx]==0
例 1 P143 ,练习五
Module[{a,b,b0,m,u,x,y,z},
m[v_]:=Sqrt[v.v];
u=x^2+y^2+z^2;z[t_]:={t,t^2,t^2};
b=D[z[t],t]/.{t->1};b0=b/m[b];
grad={D[u,x],D[u,y],D[u,z]}/.{x->1,y->1,z->1} ;
db0=grad.b0;
Print[db0," , ",grad]]
例 2 P143 ,练习六
fff[x_,y_]:=Evaluate[Normal[Series[x^y,{x,1,5},{y,1,5}]]];
N[fff[1101/1000,1021/1000],10]
例 3 P143 ,练习七 (2)
Module[{a,s,data,xydata,T1,T2,TT,g1,i},
a=Pi/30;s=Sin[a]+Cos[a];
data={{-1,-1,1},{1,-1,1},{1,1,1},{-1,1,1}};
T1={{Cos[a],Sin[a],0},{-Sin[a],Cos[a],0},{0,0,1}};
T2={{s,0,0},{0,s,0},{0,0,1}};TT=N[T1.T2]; g1={};
For[i=0,i<21,i++,
xydata=Transpose[Drop[Transpose[data],-1]];
xydata=Append[xydata,xydata[[1]]];
g1=Append[g1,Graphics[Line[xydata]]];
Show[g1,AspectRatio->1,PlotRange->{{-10,10},{-10,10}}];
data=data.TT]]
例 4 P163 ,练习四
Module[{a,s,data,xydata,g1,i},
a=Pi/30;s=Sin[a]+Cos[a];
data={-1-I,1-I,1+I,-1+I,-1-I};
g1={};
For[i=0,i<21,i++,
xydata=Transpose[{Re[data],Im[data]}];
g1=Append[g1,
Graphics[{RGBColor[1,0,1],Line[xydata]}]];
Show[g1,AspectRatio->1,PlotRange->{{-10,10},{-10,10}}];
data=N[data Exp[a I] s]]
]
复数法
3.3 3.3 机翼轮廓线的加工机翼轮廓线的加工问题的提出问题的提出
在飞机制造业中,机翼的加工是一项关键技术。由于机翼的尺寸很大,通常在图纸中只能标出某些关键点的数据。下表给出的是某型号飞机的机翼上缘轮廓线的部分数据。
x 0. 4.74 9.50 19.00 38.00 57.00 76.00
y 0. 5.32 8.10 11.97 16.15 17.10 16.34
x 95.00 114.0 133.0 152.0 171.0 190.0
y 14.63 12.16 9.69 7.03 3.99 0.0
t={{0.,0.},{4.74,5.32},{9.50,8.10},{19.00,11.97},{38.00,16.15},
{57.00,17.10},{76.00,16.34},{95.00,14.63},{114.00,12.16},
{133.00,9.69},{152.00,7.03},{171.00,3.99},{190.00,0.}};
TableForm[Join[{{x,y}},t]]
ListPlot[t,PlotJoined->True,AspectRatio->1/4,PlotStyle->
RGBColor[1,0,0]]
25 50 75 100 125 150 175
2.55
7.510
12.515
17.5
多项式插值多项式插值
设多项式为 ,根据已知条件,对应每个节点 ,应有
所以系数 a0,a1,…,an 应满足如下方程组:
nnn xaxaxaaxP ...)( 2
210
),( ii yx
nnnnnn
nn
nn
yxaxaxaa
yxaxaxaa
yxaxaxaa
...
......
...
...
2210
112
12110
002
02010
niyxP iin ,...,2,1,0,)(
当 x0,x1,…,xn 互不相同时,由 n+1 个节点可确定唯一的 n 次插值多项式 Pn(x).
s={{0,853.},{30,921.},{60,934.}};
n=3;eqns={};vars={};
Pn[x_]:=a[0]+Sum[a[k]x^k,{k,1,n-1}]
For[i=1,i<=n,i++,eqn[i]=(s[[i,2]]==Pn[s[[i,1]]])]
For[i=1,i<=n,i++,AppendTo[eqns,eqn[i]];
AppendTo[vars,a[i-1]]]
xishu=Solve[eqns,vars]
fy=Pn[x]/.xishu[[1]]
Plot[fy,{x,0,60}]
FindMinimum[-fy,{x,30}]
例 1 ( P.172) 略 .
通过计算可以看出,当 x=52 ,即 6 月 22 日的白天最长,约为 935.11 分钟。
待定系数法
x0=0;x1=30;x2=60;y0=853.;y1=921.;y2=934.;
l[x_,a_,b_,c_]:=(x-b)/(a-b) (x-c)/(a-c)
L0[x_]:=l[x,x0,x1,x2];L1[x_]:=l[x,x1,x0,x2];
L2[x_]:=l[x,x2,x0,x1]
p12[x_]:=L0[x] y0+L1[x]y1+L2[x]y2
FindMinimum[-p12[x],{x,30}]
线性插值线性插值 考虑过两个节点 (x0,y0),(x1,y1) 的线性插值 .
抛物线插值 抛物线插值 考虑过节点 (x0,y0),(x1,y1), (x2,y2) 的抛物线插值 .
基函数法
LagrangeLagrange 插值插值InterpolatingPolynomial[data,x]
InterpolatingPolynomial[{1,4,5,8},x]//Simplify
s={{0,853.},{30,921.},{60,934.}};
InterpolatingPolynomial[s,x]//Expand
三次样条插值三次样条插值
三次样条函数 满足以下: (a) 在每一区间段 [xi-1,xi] 上都是三次多项式,记为 Si(x).
(b) S(x) 在区间 [a,b] 上有二阶连续导数 .
(c) 在插值节点处满足插值条件 S(xi)=yi, i=0,1,2,…,n.
bxaxS ),(
使用方法<<NumericalMath`SplineFit`
SplineFit[Data,Cubic]
sindata=Table[{t,Sin[t]},{t,0,6Pi,0.3Pi}];
splinesin=SplineFit[sindata,Cubic]
ParametricPlot[splinesin[t],{t,0,20},Compiled->False]
fff=SplineFit[t,Cubic];
ParametricPlot[fff[t],{t,0,12}, AspectRatio->1/3]
3.4 3.4 数控机床的刀具补偿数控机床的刀具补偿实际问题:刀具补偿的估计实际问题:刀具补偿的估计
在数控机床加工零件时,由于刀具磨损会影响加工精度,要对刀具的磨损进行补偿 . 为测定刀具的磨损速度,实验室每隔一小时测量一次刀具的厚度(单位 : mm),得到实验数据如下:
时间 0 1 2 3 4 5 6 7
厚度 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8
t={0,1,2,3,4,5,6,7}; y={27.0,26.8,26.5,26.3,26.1,25.7,25.3,24.8};
data=Transpose[{t,y}]
ph0=ListPlot[data,PlotStyle->
{RGBColor[1,0,0],PointSize[0.02]]
1 2 3 4 5 6 7
25.5
26
26.5
27
最小二乘法最小二乘法
从数据图可以看出:这些点大致位于一条直线的附近。因此设 y 与 t近似满足线性关系,设 y=a+b t.
可以使用最小二乘法来确定 a,b.
M[a_,b_]:=Sum[(y[[i]]-(a+b t[[i]]))^2,{i,1,8}]
eqt={D[M[a,b],a]==0,D[M[a,b],b]==0}//Simplify
r=Solve[eqt,{a,b}]
a=.;b=.;
ss1=a+b t/.r[[1]]
Ph1=Plot[ss1,{x,0,7},PlotStyle->RGBColor[0,1,0]]
ss1=Fit[data,{1,x},x]
ss2=Fit[data,{1,x,x^2},x]
ss3=Fit[data,{1,x,x^2,x^3},x]
ss4=Fit[data,{1,Sin[x],x^2},x]
ph2=Plot[{ss1,ss2,ss3,ss4},{x,0,7},PlotStyle->
{RGBColor[0,1,0], RGBColor[0,0,1], RGBColor[1,1,0],
RGBColor[0,1,1]}]
Show[ph0,ph1]
Mathematica 系统提供了 Fit专用函数来实现在最小二乘原则下的线性拟合运算 .
Fit[Data,funcs,var]
曲线拟合曲线拟合
例 在研究某单质分子的化学反应速度时,得到如下数据:
t 3 6 9 12 15 18 21 24
y 57.6 41.9 31.0 22.7 16.6 12.2 8.9 6.5
试根据实验数据确定经验分布函数 y=f(x).
t1={3,6,9,12,15,18,21,24};
y1={57.6,41.9,31.0,22.7,16.6,12.2,8.9,6.5};
data1=Transpose[{t1,y1}];
d2=ListPlot[data1,PlotStyle->
{RGBColor[0,0,1],PointSize[.015]}]
根据化学反应速度理论, y=f(t) 应该是指数函数 y=keat ,其中 a, k 是待定常数。取对数得, lny=lnk+at=b+at ,即 lny
与 t 满足线性关系。
logy=Log[y1];
data2=Transpose[{t1,logy}];
d3=ListPlot[data2, PlotStyle->
{RGBColor[0,0,1],PointSize[.015]}]
ly=Fit[data2,{1,x},x]
y=Exp[ly]//Factor
g=Plot[y,{x,1,25}, PlotStyle->RGBColor[1,0,0]]
Show[d2,g]
sss=Fit[data1,{1,x,x^2,x^3},x];g1=Plot[sss,{x,1,25}];
Show[d2,g1]