
Maple6-ch3-微积分运算.doc
19页第三章 微积分运算在student库3.1 极 限3.1.1 一元函数的极限在Maple中,求极限的函数是limit(或Limit),完整的函数表达式是:limit(f(x),x=a[,dir]); Limit(f(x),x=a[,dir]);其中,a为极限点或无穷,dir极限方向(left、right)或real(实)和complex(复)参数空时,系统自动取实 EX.1 > f:=x*sin(1/x);> limit(f,x=0);> plot(f,x=-0.1..0.1);1 / 18> limit(f,x=0,left);> limit(f,x=0,real);> limit(f,x=0,complex); 由于复数不能求三角函数,故以复数趋于0极限不存在 Ex.2 > f:=f: f:=(sqrt(1+x^4)-(x^6-2*x^2)^(1/3))/(x^2*tan(1/x)*sin(1/x)*(1-cos(1/x)));> limit(f,x=infinity); 也可用求极限的另一形式:> f:=f: f:=x->(sqrt(1+x^4)-(x^6-2*x^2)^(1/3))/(x^2*tan(1/x)*sin(1/x)*(1-cos(1/x)));> limit(f(x),x=infinity); Ex.3 > limit(1/x,x=0); x->infinity的符号影响结果,故出给不存在> limit(1/x,x=0,left);3.1.2 多元函数的极限多元函数求极限,公式与一元函数极限公式类似,其完整形式如下:limit(expr(x1,x2,…,xn), {x1=a1,x2=a2,…,xn=an},dir); Limit(expr(x1,x2,…,xn), {x1=a1,x2=a2,…,xn=an},dir);其中,如果某些xi没有取值时,系统将保留不动。
> limit((x^2-y^2)/(x^2+y^2),x=1,left);> limit((x^2-y^2)/(x^2+y^2),{x=1,y=2});> limit((x^2-y^2)/(x^2+y^2),{x=0,y=0});> limit((x^2-y^2)/(x^2+y^2),{x=0,y=infinity});3.1.3 复变函数的极限> z:=x+y*I;> f:=f: f:=(abs(z))^2;> limit(evalc(f),{x=1,y=1}); 求极限的另一方法:> f:=f: z:=z: f:=z->(z+4)/(z-4); limit(f(z),z=-4+4*I);4.1.4 函数的连续性用来判断函数连续性的函数:iscont(expr, x=a..b, dir);其中expr是一个代数表达式,即要判断的表达式x=a..b用来表示需要判断的自变量所在的区间,a和b都取实数,当a比b大时,系统会自动将其转换Dir可取open、closed或什么都不选,用来表示在开区间中判断函数的连续性还是在闭区间中判断,默认值是在开区间中进行,当在闭区间中判断连续性是将检查起始点和终止点的连续性。
> iscont(1/x,x=0..1); 在(0,1)上连续> iscont(1/x,x=0..1,open); 在(0,1)上连续> iscont(1/x,x=0..1,closed); 在[0,1]上不连续> iscont(1/(exp(x)+b),x=1..2); 在(1,2)上没有结果Maple还提供两个寻找函数表达式的不连续点,它们是:参P129discont(f,x);fdiscont(f,domain,res ivar,eqns);第二个函数中“domain”表示求解区间;“res”是期望值的精度;“ivar”是独立变量的名称;“eqns”是一个可选的等式,用来设置系统运算的参数3.2 序列与级数3.2.1 创建一个序列序列的创建多种多样,这里给出生成函数seq(f, i=m..n);seq(f,i=x);——x其中第一个参数f为代数表达式,第二个参数是设定的自量变的取值范围,可以是区间,也可以是另外一个序列或集合、列表等如:> x:=seq(i^2,i=1..5); 生成区间[1,5]上的整数的平方序列x> seq(i mod 5, i=x); 生成上序列x的模5的值序列> seq(i,i="a".."f"); 生成字符串序列> seq(x^2,x=[a,a^2,3]); 3.2.2 序列的基本运算1. 赋值操作由于序列是多个元素的集合,在各种运算时都是对多个元素进行操作,Maple又把序列看成是一个多元素对象,因此有些普通数值和符号运算规则需要稍做修改。
> SqC:=a,b,a+b,a-b,a*b,a/b;> subs(a=3,b=4,SqC); 将SqC中的a,b分别换为3,4Error, wrong number (or type) of parameters in function subs出错的原因是subs()只能包含一个代数表达式,而Maple却将序列SqC看成是多个代数表达式为了解决这个问题,我们不得不先将序列转换成一个列表(list),操作完成后以后再转换成序列,如:> op(subs(a=3,b=4,[SqC])); op()——取列表中各元素得序列或> subs(a=3,b=4,[SqC]);> whattype(%);> op(%%);2. 函数运算上面对序列进行赋值运算时需将其转化为列表才行如果按同样的思路,将序列转化为列表,然后将元素作为一个函数自变量的值进行运算,实际上行不通,如:> exp([%]);Error, exp expects its 1st argument, x, to be of type algebraic, but received [3, 4, 7, -1, 12, 3/4]系统报错,好在Maple有一个函数map()可以解决这个问题:map(fcn, expr, arg2, …, argn);fcn为操作名,expr是任何一个表达式,argi是一个可选操作名。
如:> op(map(exp,[SqC])); 又如:> map(f, x + y*z);> map(f, y*z);> map(f, {a,b,c});> map(x -> x^2, x + y);> map(proc(x,y) x^2+y end proc, [1,2,3,4], 2);> map(f, g, {a,b,c});> map2(f, g, {a,b,c});> map(op, 1, [a+b,c+d,e+f]);3. 从序列中按位置寻找元素——P1334. 判断元素是否在序列中5. 寻找最大和最小值6. 寻找满足特写条件的元素7. 序列各元素之间的代数运算3.2.3 数的定义与展开1. 幂级数展开series(expr,eqn);series(expr,eqn,n);expr是需要展开的表达式,eqn是一个等式(如,x=a)或是一个变量名(如,x),n是级数展开的阶数(n-1),缺省“n”,系统取默认的值“Order=6”,展开Order-1阶如:> series(exp(x),x);> Order:=4;> series(exp(x),x);> series(exp(x),x=a,4);> Ps:=convert(%,polynom); # 将高阶项去掉2. 泰勒(Taylor)展开Maple提供两个函数taylor、mtaylor来分别处理一元表达式和多元表达式的展开,它们的参数设置与幂级数展开series相同,如:> taylor(exp(x),x);> Order:=4;> taylor(exp(x),x);> taylor(exp(x),x=a,4);> Ps:=convert(%,polynom);多元函数的泰勒展式:> mtaylor(exp(x*y),{x=1,y=1},3);3. Laurent级数展开4. 泊松(Possion)级数展开5. 傅立叶(Fourier)展开3.2.4 级数的基本运算> Sn:=1/x^n;> sum(Sn,n=1..infinity);> sum(Sn,n=4..10);> simplify(%);3.3 微 分3.3.1 一元函数的微分运算定义:> f:=f: f:=x->x/(x^2+1);> limit((f(x+h)-f(x))/h,h=0);求导函数: diff(f,x);——返回经过计算的表达式diff(f,x,x,…,x);——求高阶导数表达式Diff(f,x); ——返回没有经过计算的表达式如:> diff(x/(x^2+1),x): simplify(%); 一阶导数> diff(x/(x^2+1),x,x): simplify(%); 二阶导数> diff(x/(x^2+1),x, x$3): simplify(%); 三阶导数 另有函数D:——P142> D(x->x/(x^2+1))(x): simplify(%); 一阶导数> D(x/(x^2+1))(x): simplify(%); 视x为函数3.3.2 多元函数的偏微分运算> f(x,y):=x^6*y^5;> diff(f(x,y),x,y);> diff(f(x,y),x$3,y$2); 3.3.3 隐函数的微分运算例:设,求y’.> Eq:=Eq: Eq:=2*x^2-2*x*y(x)+y(x)^2+x+2*y(x)+1=0;上步中,一定将“y”换成“y(x)”,否则将y视为参数,而不是x的函数> dEq:=diff(Eq,x); 对方程两边关于x求导数> isolate(dEq,diff(y(x),x)); 解出diff(y(x),x) 练习: 已知氢分了离子的反键态能量如下形式:(1)证明Eg可以写成Eg=,并求出F(t)和G(t),其中t=kR;(2) 假设已知 =0情况下导致k= , 求解当t分别趋于0和正无穷时k的值。
提示: > Eg:=Eg:> Eg:=-1/2*k^2+(k^2-k-1/R+1/R*(1+k*R)*e^(-2*k*R)-k*(k-2)*(1+k*R)*e^(-k*R))/(1-e^(-k*R)*(1+k*R+1/3*k^2*R^2)): Eg:=subs(e=ex。












