空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 2160|回复: 0

Maple之微积分

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2014-1-14 15:54:45 | 显示全部楼层 |阅读模式
第一节  函数:

一.基本初等函数:绝对值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 条件 then2 …… 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看值)
选项有:左leftright,省略则为普通极限
注:不能对过程函数直接计算。

一.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=nn个解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);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-5-5 18:29 , Processed in 0.036992 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表