Maxima导引

来自Ubuntu中文
Dbzhang800留言 | 贡献2007年6月1日 (五) 12:18的版本 →‎导数
跳到导航跳到搜索

来源:http://blog.chinaunix.net/u/20/showart_172159.html

作者:win_hate

函数

定义函数

注意函数使用的符号是 :=

一元函数

f(x):=expr;

例子:

(%i1) f(x):= 1+x;
(%o1)                            f(x) := 1 + x
(%i2) f(2);
(%o2)                                  3

多元函数

f(x,y):=expr;

例子:

(%i3) f(x,y):=y^2+x^2;
                                         2    2
(%o3)                         f(x, y) := y  + x
(%i4) f(2,3);
(%o4)                                 13

初等函数

幂函数: x^2, x^(-1/2),...
指数函数:2^x, (1/2)^x, exp(x), %e^x...
在 maxima 中,常数e=2.718281828459045被记为:%e. 所以指数函数 e^x 在 maxima 中被表示为:%e^x

由于这个函数的重要性,它有一个专门的记法:exp(x).

(%i2)f(x) := %e^x;
                                            x
(%o2)                             f(x) := %e
(%i3)g(x) := exp(x);
(%o3)                           g(x) := exp(x)
(%i4)expand(f(x) - g(x));
(%o4)                                  0
对数函数:log(x)
在 maxima 中,log(x) 就是自然对数,即以 e 为底的对数,数学上常记为 ln(x)。maxima 没有其它形式的对数,要使用以 10 或 2 为底的对数,只能使用换底公式。如果把下面的代码放到 ~/.maxima/maxima-init.mac 中,则 maxima 在运行时会加载自定义函数 log10、log2,并把 ln 定义为 log。这样就可以使用 log10、log2 和 ln 了。
log10(x):=log(x)/log(10);
log2(x):=log(x)/log(2);
ln:log; 
三角函数:sin, cos, tan, cot, sec, csc
在 maxima 中,pi=3.141592653589793 被记为 %pi.
反三角函数:asin, acos, atan, acot, asec, acsc

分段函数

f(x)= x-1, x<0
      0,   x=0
      x+1, x>0
(%i2) f(x) := if x < 0 then x - 1 else (if x = 0 then 0 else 1 + x);
(%o2)    f(x) := if x < 0 then x - 1 else (if x = 0 then 0 else 1 + x)
(%i3) f(- 1);
(%o3)                                 - 2
(%i4) f(0)
(%o4)                                  0
(%i5) f(1)
(%o5)                                  2

极限

求极限的命令为:

limit (expr, var, val, direction);


expr 是要求极限的表达式; var 是变量名; val 指定在何处取极限;direction 是方向,可以是 plus 和 miuns,分别指右极限和左极限。


例子:

(%i2)limit (sin(x)/x, x, 0);
(%o2)                           1
(%i3)limit (tan(x), x, %pi/2);
(%o3)                          und
(%i4)f:diff(abs(x), x);
(%i5)limit(f, x, 0, plus);
(%o5)                           1
(%i6)limit(f, x, 0, minus);
(%o6)                          -1


其中 und 表示极限不存在。

如果要取无穷处的极限,可以用常数 inf, minf。前者表示正无穷,后者表示负无穷。

(%i1) limit (1/x, x, inf);
(%o1)                           0
(%i2) limit (atan(x), x, inf);
(%o2)                         %pi/2
(%i3) limit (atan(x), x, minf);
(%o3)                         -%pi/2

导数

求导数:

diff(expr, var)

例子:

(%i1) diff(sin(x),x);
(%o1)                               cos(x)
(%i2) diff(f(x)*g(x),x);
                            d                  d
(%o2)                 f(x) (-- (g(x))) + g(x) (-- (f(x)))
                            dx                 dx


求高阶导数:

diff(expr, var, n) 


例子:

(%i3)diff(sin(x),x, 2);
(%o3)                              - sin(x)
(%i4) diff(f(x)*g(x),x,3);
             3                            2
            d                d           d
(%o4) f(x) (--- (g(x))) + 3 (-- (f(x))) (--- (g(x)))
              3              dx            2
            dx                           dx
                                     2                               3
                                    d            d                  d
                               + 3 (--- (f(x))) (-- (g(x))) + g(x) (--- (f(x)))
                                      2          dx                   3
                                    dx                              dx

集合