270 likes | 600 Views
数学实验. 格式. 意义. Limit[f[x], x->x0]. 求极限. Limit[f[x], x->x0, Direction->1]. 求极限. Limit[f[x], x->x0, Direction->-1]. 求极限. 2.1 极限与导数的计算. 一、极限的计算. 例如: Limit[Sin[x]/x,x->0] Limit[(1+1/n)^n,n->Infinity] Limit[(x Sin[x]+Cos[x]-1)/x^2,x->0]. 注意极限的方向与函数关系式的选择,如: Limit[Exp[1/x],x->0] 要改为
E N D
格式 意义 Limit[f[x], x->x0] 求极限 Limit[f[x], x->x0, Direction->1] 求极限 Limit[f[x], x->x0, Direction->-1] 求极限 2.1 极限与导数的计算 一、极限的计算 例如: Limit[Sin[x]/x,x->0] Limit[(1+1/n)^n,n->Infinity] Limit[(x Sin[x]+Cos[x]-1)/x^2,x->0]
注意极限的方向与函数关系式的选择,如: Limit[Exp[1/x],x->0] 要改为 Limit[Exp[1/x],x->0,Direction->1] 和 Limit[Exp[1/x],x->0,Direction->-1] Limit[(-1)^(2n),n->Infinity] 要修改为 Limit[((-1)^2)^n,n->Infinity]
二、导数与微分的计算 例如: D[x^n,{x,5}] D[f[x],x] Dt[Sin[v^2],x] D[Sin[v^2],x] D[f[g[x]],{x,2}]
计算参数方程所确定的函数的导数 一阶导数 pD[x_,y_,t_]:=Module[{s=D[y,t],r=D[x,t]}, Simplify[s/r]] pD[Sin[t],Cos[t],t] 二阶导数 pD2[x_,y_,t_]:=pD[x,pD[x,y,t],t] pD2[Sin[t],Cos[t],t] 高阶导数 pDn[1,x_,y_,t_]:=pD[x,y,t] pDn[n_,x_,y_,t_]:=pD[x,pDn[n-1,x,y,t],t] pDn[3,Sin[t],Cos[t],t]
计算隐函数的导数 impD[eqn_,y_,x_]:=Module[{s,r,t}, s=D[eqn,x,NonConstants->{y}]; {r}=Solve[s,D[y,x,NonConstants->{y}]]; t=D[y,x,NonConstants->{y}]/.r;Simplify[t]] 或者 impD1[f_,y_,x_]:=-Simplify[D[f,x]/D[f,y]] 例如: impD[x^2+y^2==1,y,x] impD[Log[y]==x Log[x] ,y,x] impD[Cos[x^2]+y^2==0,y,x]
例如: g1=(1-Cos[2x])/x/Sin[x] Plot[g1,{x,-10,10}] FindMinimum[g1,{x,0.5}] FindMinimum[-g1,{x,0.5,1}] FindMinimum[-g1,{x,0.3,-0.5,1}] FindMinimum[Sin[x y],{x,0.5}, {y,0.5}] FindMinimum[x^2+y^2,{x,0.5},{y,0.3}]
2.2 Taylor展开式的计算 Series[x^4-5x^3+x^2+4,{x,4,5}] Series[x Sin[x],{x,0,8}] Series[Tan[x],{x,0,8}] Series[Log[1+x],{x,0,8}] u=Series[1/(1-x),{x,0,8}] u1=Normal[u] p=1+x+x^2+x^5;p1=p+O[x]^5;Head[p1]
Taylor展开的近似计算与截断误差 考虑带Lagrange余项的Taylor展开式 若用Taylor多项式来近似表示函数值,则有截断误差 其中假设
例 使用Taylor公式 计算ex. 若|x|<1, 要求截断误差<0.005,问n应取多大? 首先估计余顶: m=Module[{n=0},While[(3/(n+1)!)>=0.005,n++]; n] 列表验证如下: p2[x_]:=Evaluate[Normal[Series[Exp[x],{x,0,m}]]] t1=Table[N[{x,Exp[x],p2[x],Exp[x]-p2[x]}],{x,-1,1, 0.4}] t2=Join[{{x,e^x,p2[x],R[x]}},t1] TableForm[t2]
2.3 积分的计算 计算不定积分 Integrate[ArcTan[Sqrt[x]]/(Sqrt[x](1+x)),x] Integrate[x Tan[x]^2,x] Integrate[1/(1+Sin[x]+Cos[x]),x] Integrate[f'[x]f''[x],x]
计算定积分 Integrate[1/(x^2 Sqrt[x^2+1]), {x,1,Sqrt[3]}] Integrate[Exp[2x]Cos[x],{x,0,Pi/2}] Integrate[Cos[x]^n,{x,0,Pi/2},Assumptions->n>-1] Integrate[f'[x]f''[x],{x,a,b}] 变上限的函数 D[Integrate[Sqrt[1-t^2],{t,0,x^2}, Assumptions->-1<x<1],x] Simplify[%] Limit[Integrate[Exp[t^2],{t,0,x}]^2/Integrate[t Exp[t^2]^2, {t,0,x}],x->0] ff1[x_]:= Integrate[t Sin[t^2],{t,0,x}]; Plot[{ff1[x], x Sin[x^2]},{x,0,3}, PlotStyle->{RGBColor[1,0,0], RGBColor[0,0,1]}]
计算广义积分 Integrate[1/x^4 , {x,1,Infinity}] Integrate[1/Sqrt[x],{x,1,Infinity}] Integrate[x/Sqrt[1-x^2],{x,0,1}] Integrate[1/(1-x)^2,{x,0,2}] 数值积分 NIntegrate[Sin[x]/x,{x,0,1}] NIntegrate[Exp[-x]x^5.1,{x,0,Infinity}] NIntegrate[Sin[Sin[x]]/x,{x,0,Pi/2}]
2.4 向量的运算 1、调用向量运算程序包 Needs["Calculus`VectorAnalysis`"] 或者 << Calculus`VectorAnalysis`
例1 使用点积运算计算向量的模长、两向量之间的夹角、向量v1在v2上的投影. 若已知向量a={1,1,4}, c={1,-2,2}, 求c在a方向上的投影向量. m[v_]:=Sqrt[v.v] angcos[v1_,v2_]:=v1.v2/(m[v1]m[v2]) proj[v1_,v2_]:=v1.v2/m[v2] a={1,1,4};c={1,-2,2}; cproj=proj[c,a] a/m[a]
例2 已知空间三点的坐标为A(2,-3,1), B(1,-2,0),C(0,0,0), 使用叉积计算△ABC的面积. 由叉积的概念,向量a和b间的叉积的模为: chax[v1_,v2_]:=CrossProduct[v1,v2] pointA={2,-3,1};pointB={1,-2,0};pointC={0,0,0}; abc=chax[pointB-pointA,pointC-pointA] area=1/2 m[abc]
例3 给定直线方程 使用混合积计算两条直线间的距离d, 并由此判断这两条直线是否相交. 由混合积的概念,直线r=r1+t v1和r=r2+t v2间的距离为 r1={3,0,-1};r2={-1,3,2};v1={2,4,3};v2={2,0,1}; misp=Abs[(r2-r1).CrossProduct[v1,v2]] dist=misp/m[CrossProduct[v1,v2]] 或者 dist1[r1_,r2_,v1_,v2_]:= Abs[(r2-r1).CrossProduct[v1,v2]]/ m[CrossProduct[v1,v2]]
函数 称为一元向量函数. 在数学上, 的分量表示曲线的参数方程,其导数表示曲线的切向量. 在物理上, 表示一个质点的向径在空间的运动轨迹,其一阶导数表示质点的速度向量,二阶导数表示质点的加速度向量. 3、一元向量函数及其运算
例4 设质量为m的质点作斜抛运动. (1) 在忽略空气阻力的理想条件下,求质点的运动轨迹; (2) 若t=0时,质点的初始位移为 , 初速度为 , 绘制运动轨迹的图象; (3) 求质点运动弹道的最高点和落地时距发射点的水平距离. 在忽略空气阻力的理想条件下,质点只受到重力的作用,其加速度为{0,0,-g}. a={0,0,-g};v0={vx,vy,vz};s0={x0,y0,z0}; v[t_]:=Integrate[a,t]+v0; s[t_]:=Integrate[v[t],t]+s0
将初始值代入,得到运动轨迹方程. v0={30,20,40};s0={0,0,0};g=9.8; sss=s[t] ParametricPlot3D[sss,{t,0,10}] 弹道最高点 high=FindMinimum[-sss[[3]],{t,0}] p=sss/.high[[2]] 弹道水平距离 dist=Solve[sss[[3]]==0,t] q=sss/.dist[[2]] d=Sqrt[q[[1]]^2+q[[2]]^2]
例5 已知四点A(1,0,1),B(4,4,6),C(2,2,3),D(10,14,17), (1) 验证A,B,C,D四点在同一平面上; (2) 求四边形ABCD两对角线交点的坐标. (1) 验证A,B,C,D四点在同一平面上. a={1,0,1};b={4,4,6};c={2,2,3};d={10,14,17}; a1=CrossProduct[b-a,c-a];a2=CrossProduct[b-d,c-d]; a3=CrossProduct[a1,a2] 或者 (d-a).CrossProduct[b-a,c-a] 或者 ScalarTripleProduct[b-a,c-a,d-a] 或者 dist1[a,c,b-a,d-c]
(2)求四边形ABCD两对角线交点的坐标. 首先观察四边形的位置: l1=ParametricPlot3D[a+(b-a)t,{t,0,1},Axes->False]; l2= ParametricPlot3D[b+(c-b)t,{t,0,1} ,Axes->False]; l3= ParametricPlot3D[c+(d-c)t,{t,0,1} ,Axes->False]; l4= ParametricPlot3D[d+(a-d)t,{t,0,1} ,Axes->False]; Show[l1,l2,l3,l4,Graphics3D[{Text["A",a],Text["B",b],Text["C",c],Text["D",d]}],ViewPoint->{0,0,15},Boxed->False] 然后求交点坐标: t=.;s=.; Solve[{(a+(d-a)s)[[3]]==(b+(c-b)t)[[3]], (a+(d-a)s)[[1]]==(b+(c-b)t)[[1]]},{s,t}] a+(d-a)s/.%[[1]]
DSolve[y'[x]+y[x]==1,y[x],x] 2y'[x]+y[x]+y[0]/.% DSolve[y'[x]+y[x]==1,y,x] y[x]+2y'[x]+y[0]/.% y'[x]+y[x]==1/.%% DSolve[y''''[x]==y[x],y[x],x] DSolve[{y''''[x]==y[x],y[0]==y'[0]==2,y''[0]=y'''[0]==1}, y[x],x] Clear[u]; NDSolve[{u'[x]==(u[x]^2-2u[x])/x,u[1]==1},u[x],{x,1,3}] u=u[x]/.%[[1]];Plot[u,{x,1,3}]
微分方程的幂级数解法 作为微分方程的一种近似解法,可以设y为任意幂级数,系数待定. 将其代入微分方程中,通过比较同次幂的系数,确定出y的系数. 这种方法称为幂级数解法. Clear[a,y]; y=Sum[a[k] x^k,{k,1,11}]+O[x]^11 Solve[D[y,x]==x+y^2] y/.%