第一节 函数:
一.基本初等函数:绝对值abs、开方sqrt、以e为底指数exp、log、ln、log10、sin、cos、tan、cot、sec、csc、反三角arc、双曲sh,ch,th,cth、反双曲arc等。 >sin(5);exp(1);
二.定义函数: (1) 赋值法 f:=数 或 表达式; (后赋值将替换以前的赋值, 加单引号表示符号变量) (2) 箭头算子法 f:=x->表达式、f::=(x,y)-> 表达式; (3) 过程 f:=proc(x) if 条件 then 式1 elif 条件 then式2 …… else 式n fi end 定义分段函数,这里x是过程带的参数。(这样定义的分段函数不能求极限、导数积分,但可以作为maple中命令) (4) 转换法 unapply(表达式,自变量) ,将表达式转换为箭头算子函数 (5) 定义分段函数f:=piecewise(条件1,表达试1,条件2,表达试2,……) 或 f:=x->piecewise(条件1,表达试1,条件2,表达试2,……) 这样定义的分段函数可以求极限、导数、积分等运算。其中piesewise为分段函数命令。 (1)形式定义的函数需定义自变量值,才能计算函数值,或用subs(x=a,f)计算x=a点函数值;(2)(3)(4)形式定义函数可以用f(a)或f(a,b)计算x=a点函数值。 函数可以用assume(0<x)定义自变量范围。如果是0<x<1应该用assume(0<x,x<1)
>y:=x^2-5*x+3;y(3);subs(x=3,y);diff(y,x);subs(x=8,”); >y:=x->x^2-5*x+3;y(3); >f:=unapply(sqrt(x^2+y^2),x,y);f(3,4); >p:=proc(x) if x>1 then x^2-1 else 2*(1-x) fi end:p(2);
三.函数运算(加、减、乘、除、复合、展开、合并、化简)
> f:=x->ln(x)+1:g:=y->y^2: > h:=g@f@g:h(exp(2));h:=f@@4:h(z);h:=f+g:h(z);h:=f-g:h(z);h:=f*g-f/g:h(z);#其中@号为复合运算号,@@则为连续复合 >expand(sin(x+y));#展开 >combine(”);#合并 >simplify(表达式);#化简
注:函数复合运算必须是箭头算子、过程、转换法定义的函数
第二节 极限: limit(f(x), 极限点,选项) Limit为极限号(可用value看值) 选项有:左left、右right,省略则为普通极限 注:不能对过程函数直接计算。
一.x=a点极限 limit(f(x),x=a)
>Limit((x-sin(x))/x^3,x=0)=limit((x-sin(x))/x^3,x=0); >Limit(exp(1/x),x=0)=limit(exp(1/x),x=0); >Limit(exp(1/x),x=0,left)=limit(exp(1/x),x=0,left); >Limit(exp(1/x),x=0,right)=limit(exp(1/x),x=0,right); >Limit(exp(x)-x)^(1/x):”=value(”);
二.x趋向无穷极限 limit(f(x),x=infinity)
> Limit((x^2-3*x+2)/(5*x^2-4),x=infinity)=limit((x^2-3*x+2)/(5*x^2-4),x=infinity); > Limit(x^sin(x),x=0)=limit(x^sin(x),x=0); > Limit((x^2-3*x+2)/(5*x-4),x=infinity)=limit((x^2-3*x+2)/(5*x-4),x=infinity); > Limit(sin(x),x=infinity)=limit(sin(x),x=infinity);
x趋向正负无穷大极限,在infinity前直接加+、-号即可
> Limit(exp(x),x=-infinity)=limit(exp(x),x=-infinity);
注:函数若由箭头算子、过程、转换法定义,求极限函数要用f(x)形式
>y:=x->exp(x):limit(y,x=3);limit(y(x),x=3);
第三节.导数 一. diff(f,x1,x2,…) x1,x2,…为各次求混合导数的自变量 diff(f,x$m,y$n) m,n分别为对自变量x、y求导阶数 Diff 为求导符号,可用value显示值 注:不能对过程函数直接使用
> Diff(exp(x^2),x)=diff(exp(x^2),x); > Diff((exp(x^2)+x^3)/sin(x),x)=diff((exp(x^2)+x^3)/sin(x),x); > Diff(log(x+sqrt(1+x^2)),x):”=avlue(”); > simplify("); >Diff(log(x+sqrt(1+x^2)),x$2):”=simplify(avlue(”)); >Diff(x^2*cos(y),x,y$3)=diff(x^2*cos(y),x,y$3); >diff(exp(sqrt(x^2+y^2)+x),x,y);subs(x=3,y=4,”);evalf(”)#计算函数在(3,4)点混合导数值 注:函数若由箭头算子、过程、转换法定义,求导函数要用f(x)形式
>y:=x->sin(1/x):diff(y,x);diff(y(x),x)
二.隐函数导数: diff(方程,自变量及阶数); 1.将方程中函数变量全部写成自变量函数形式(如y(x)),再求导。
>f:=x^2+x*exp(y(x))=x*y(x);diff(f,x);dy/dx=solve(",diff(y(x),x)); >diff(x*exp(x*y(x))=x+y(x),x,x);
2.用别名命令alias将函数变量先定义为自变量的函数 如alias(y=y(x))再对方程求导
> alias(y=y(x)):f:=x^y+sin(x*y)=x:diff(f,x);dy/dx=solve(",diff(y,x));
三.导数算子:D(函数),D[i$m,j$n,…](函数) i,j整数表示,对第i、第j个变量求导
> f:=x^2+3*x+5:g:=x->x^2+3*x+5(f);D(g);D[1,1](g); > h:=(x,y)->sqrt(x^2+y)[1](h);D[2](h);D[1,2](h);D[1,1](h);D[1$2,2](h);
注:只有箭头算子、过程、转换法定义函数,才能使用求导算子。
第四节 积分 一.一元积分 int(f,x) 不定积分 int(f,x=a..b) 定积分 Int为积分符号,用value显示值 注:不能对过程函数使用。
> Int(2*x*sin(x),x)=int(2*x*sin(x),x)+c; > Int(sqrt(a^2+x^2),x)=int(sqrt(a^2+x^2),x)+C; >Int((x-2)/(x^3-1),x)=int((x-2)/(x^3-1),x)+C; >Int(x*ln(x),x):”=value(”);
注:箭头算子、过程、转换法定义函数要用int(f(x),x)
>f:=x->x^2-1/x:int(f(x),x);
二.重积分 int(int(f(x,y),y=y1(x)..y2(x)),x=a..b)
>Int(Int(abs(y)*x^2,y=-sqrt(1-x^2)..sqrt(1-x^2)),x=-1..1):”=value(”);
第五节 方程求解: solve(方程,未知数); fsolve(方程,未知数,选项); 解数值解 选项:1.complex复数域上求根2.fulldigits保持精度3.maxsols=n求n个解4.范围
一.一元方程(省略“=”号为=0) > p:=x->x^2+2*x-3:plot(p(x),x=-4..2); solve(p(x));fsolve(p(x)=12,x); >t:=solve(6*x^4-35*x^3+22*x^2+17*x-10):t1:=eval(t[1]);t2:=eval(t[2]);t3:=eval(t[3]); t4:=eval (t [4]); >p:=x->12*x^5+32*x^4-57*x^3-213*x^2-104*x+60:plot(p,-5..5,650..300); >solve(p) > solve(ln(x)+ln(x+1)=ln(2));
二.方程组
> solve({2*x+3*y,y= x+1}); > solve({2*x+3*y,x^2=y^2-1}); > allvalues(");
三.数值解
>solve(x^5-3*x^4-23*x^3+27*x^2+166*x+120=0,x); #等于0时,=0可省略 >fsolve(x^5-3*x^4-23*x^3+27*x^2+166*x+120,x,-1.5..3.5); >solve(x^4-3*x+4,x);allvalues(”); >fsolve (x^4-3*x+4,x,complex); >fsolve(x^5-3*x^4-23*x^3+27*x^2+166*x+120=0,x,maxsols=2);
四.多项式分解因式、函数展开、合并、化简、转换: factor(多项式,k) expand(函数) combine(函数) simplify(表达式) convert(表达式,形式,选项) 取分子numer(分式) 取分母denom(分式)
>p:=x->12*x^5+32*x^4-57*x^3-213*x^2-104*x+60: factor(p(x)); >expand(sin(x+y));combine(”); >f := (x^3+x)/(x^2-1); > convert(f, parfrac, x);#转换为简单分式 >numer(f);denom(f); >convert( 1.23456, fraction );#小数转分数 >convert(9, binary);#十进制转二进制
第六节 极值与最值
一.最值: maximize(f,x) maximize(f,x,a..b) minimize(f,x) minimize(f,x,a..b) 上述命令求函数f的最(极)大、最小值或区间[a,b]上最大、最小值。如果求最大、最小值点可结合图形,用fsolve(f=最大(最小)值,x)解的。
>f:=x^3-x^2-x+1: > plot(f,x=-2..2.7,color=plum); > maximize(f,x);x1:= minimize(f,x);x2:=maximize(f,x,-1..2); >fsolve(x^3-x^2-x+1=x1);fsolve(x^3-x^2-x+1=x2);#求最值点 >factor(x^3-x^2-x+1);
求闭区间上最大、最小值: > maximize(x^3-x^2-x+1,x,-1..2);minimize(x^3-x^2-x+1,x,-1.5..2);
二.条件极值: extrema(函数,{条件方程},自变量,'极值点变量’) 没有条件方程时,条件方程内为空,但花括号不能省。若不需要极值点,最后一项可省略。该命令非基本命令,要从函数库用命令readlib(extrema)调入。
> readlib(extrema): > extrema( a*x^2+b*x+c,{},x,'s');allvalues(s); > f := (x^2+y^2)-z^2; g1 := x^2+y^2-16=0; g2 := x+y+z=10; extrema(f, {g1,g2}, {x,y,z},'s'); allvalues(s);
第七节 微分方程与差分方程 一.微分方程解析解与数字解 dsolve(方程,解函数,选项) dsolve({方程组及初始条件},{解函数},选项) 方程中未知函数要用y(x)记,n阶导可用D@@n(y)(x),初始条件y(x0)=a,(D@@n)(y)(x0)=b 选项:type=series 级数解 type=numeric数值解explicit=true显式解method=laplace拉普拉斯变换求解。在数值解中又可有方法选项:method=rkf45四五指令Runge-Kutta法 method=dverk78七八指令Runge-Kutta法 method=classical古典法 method=gear齿轮法 method=mgear和 method=lsode.
>dsolve(diff(y(x),x,x)+y=x*exp(x),y(x)); >dsolve({diff(y(x),x)=0.003*y*(100-y),y(0)=15},y(x)); >assign(”):plot(y(x),x);#将求出的解定义为函数,并作图 > dsolve({diff(z(x),x)-z(x)+x=0,z(0)=2},z(x)); > dsolve({diff(v(t),t)+2*t=0,v(1)=5},v(t)); > dsolve(diff(y(x),x$2) - y(x) = sin(x)*x, y(x)); > ?dsolve > p:= dsolve({D(y)(x) = y(x), y(0)=1}, y(x),type=numeric):#解数值解 > with(plots): > odeplot(p,[x,y(x)],-1..1 ): #作微分方程数字解图 > p := dsolve({ diff(y(x),x) = sin(x*y(x)),y(0)=2},y(x),type=numeric): > odeplot(p,[x,y(x)],0..6,labels=[x,y]);#作微分方程数字解图 > sys := diff(y(x),x)=z(x),diff(z(x),x)=y(x): fcns := {y(x), z(x)}:#微分方程组 > p:= dsolve({sys,y(0)=0,z(0)=1},fcns,type=numeric): > odeplot(p, [x,y(x)], -4..4, numpoints=25): >odeplot(p, [x,y(x),z(x)],-4..4,numpoints=25, color=orange): >p:= dsolve({diff(y(x),x$3)=y(x), y(0)=1,D(y)(0)=2,(D@@2)(y)(0)=4}, y(x));
二. 差分方程: rsolve(方程,解函数,选项) ,rsolve({方程组,初始条件},{解函数},选项) 选项为'genfunc'(x)解以x为自变量;选项为'makeproc'解为过程函数。
> rsolve({f(n)=2*f(n-1)+3*f(n-2),f(1)=3,f(0)=5},f(n)); > rsolve({c(n)=c(n-1)-5*c(n-2),c(0)=1,c(1)=0},c(n)); rsolve({F(n) = F(n-1) + F(n-2), F(1..2)=1}, F, 'genfunc'(x)); > rsolve({s(n) = s(n-1) + t(n-1), t(n) = s(n) + t(n-1), s(0)=0, t(0)=1},{s, t}, 'genfunc'(z)); >rsolve({s(n) = 2*s(n-1), s(0)=1}, s, 'makeproc');
第八节 级数 一.级数求和 sum(f(n),n) sum(f(n),n=a..b) Sum 为求和号
>Sum(x^n/n!,n=0..infinity)=sum(x^n/n!,n=0..infinity); >Sum(1/k^2,k=1..infinity):”=value(”);
二.函数展开 tayloe(函数,点,项数) series(函数,点,项数) 其中项数省略为6项,点也可以直接用自变量代替,这时表示在x=0点展开。
> 1/(1-x)=series(1/(1-x),x);exp(x)=taylor(exp(x),x); > sin(x)=series(sin(x),x=Pi/2,8); > x^3/(x^4+4*x-5)=series(x^3/(x^4+4*x-5),x=infinity);
三. 构造幂级数with(powseries)调入幂级数软件包。 powcreate(f(n)=通项系数,初始值)定义系数 tpsform(f,x,项数) 显示幂级数
> with(powseries): >powcreate(f(n)=2^n/n!):powcreate(h(n)=(-1)^(n+1)/n,h(0)=1): >Sum(2^n*x^n/n!,n=0..infinity)=tpsform(f,x,7); >powcreate(h(n)=(-1)^(n+1)/n,h(0)=1): >Sum((-1)^(n+1)*x^n/n,n=1..infinity)=tpsform(h,x,5); >powcreate(v(n)=(v(n-1)+v(n-2))/4,v(0)=4,v(1)=2): >tpsform(v, x); >powseries[powsin](x):sin(x)=powseries[tpsform](",x,10);#也可以这样直接调用 >a := powseries[powexp](x): >b := powseries[tpsform](a, x, 5);
|