列表:
象这样来表示一个列表:[a, b, c]。
如果L是一个列表,则L[i]是它的第i个元素。L[1]是第一个元素。
map(f, L)应用f 到L的每一个元素上。
apply(“ + “, L)对L的所有元素求和。
for x in L do expr对L中的每一个元素,求值expr。
length(L)是L中元素的个数。
矩阵:
矩阵象这样定义:matrix(L1 , . . . , Ln ),其中(L1 , . . . , Ln )是矩阵中每行矩阵元的列表。
如果M 是一个矩阵,M [i, j]或者M [i][j]就是它的第(i, j)个矩阵元。M [1, 1]是左上角矩阵元。
运算符 . 代表不可交换的乘法。M.L, L.M 和M.N 是不对易乘法,其中L是一个列表,M 和N 是矩阵。
transpose(M )是M 的转置。
eigen">values(M )返回M 的本征值。
eigenvectors(M )返回M 的本征向量。
length(M )返回M 行数。
length(transpose(M ))返回M 的列数。
集合:
Maxima 理解显式定义的有限集合。集合跟列表不同如果要把一种变为另一种,需要显式的转换。
集合中元素是a, b, c, . . .时,我们这样指定集合:set(a, b, c, . . .)
union(A, B)是A和B的并集。
intersection(A, B)是A和B的交集。
cardinality(A)是集合A中元素的个数。
定义函数
1. 运算符:=定义一个函数,引用函数体。
在下面的例子中, 每当调用函数时 ,diff都要重新求值。 自变量被代入到x, 然后求值最后的表达式。 当变量不 是一个符号时, 将发生错误 : 对于foo(1) Maxima试图对diff(sin(1)2 , 1)求值。
(%i1) foo (x) := diff (sin(x)^2, x); 2(%o1) foo(x) := diff(sin (x), x)(%i2) foo (u);(%o2) 2 cos(u) sin(u)(%i3) foo (1);Non-variable 2nd argument to diff:1#0: foo(x=1) -- an error.
2. define定义一个函数并对函数体求值。
在这个例子中,只对diff求值一次(当函数被定义的时候)。foo(1)现在是有效的。
(%i1) define (foo (x), diff (sin(x)^2, x));(%o1) foo(x) := 2 cos(x) sin(x)(%i2) foo (u);(%o2) 2 cos(u) sin(u)(%i3) foo (1);(%o3) 2 cos(1) sin(1)