Правила формального синтаксиса команд Maple

Команды Maple для работы с процедурами, функциями и более сложными структурами

Версия для печати

Основные операции со структурами данных

Создание пустых структур

NULL, :=, [].

Seq1:=NULL;
List1:=NULL; List2:=NULL; List3:=[];
Set1:={}; Set2:=NULL;
Tab1:=table();
Array1:=Array(-10..10);
Vec1:=Vector(10);
Matrix1:=Matrix(10,10);
Связанные структуры

||, op, [ ], cat.

k:=1; Seq1:=seq(i,i=1..9);
List1:=[Seq1];
a||Seq1;
"Seq1"||(1..9);
k||(1..9);
cat(a,Seq1);
op([List1,List1]);
cat(Seq1,Seq1);
Извлечение i-го элемента из структуры

[ ], op, select, has.

Seq1:=seq(i^2,i=1..9); List1:=[Seq1];
Set1:={Seq1};
Array1:=Array(1..9,1..9,[List1,0,List1,0,List1,List1]);
i:=5; j:=2; List1[i]; op(i,List1);
Array1[i,j]; op(i,Set1);
element:=9; select(has,Set1,element);
Определение числа элементов в структуре

nops.

List1:=[x,y,z]; Set1:={op(List1)}; nops(List1);
nops(Set1);
Создание подструктур

op, [ ].

Seq1:=x||(1..9); List1:=[Seq1];
Set1:={Seq1};
n:=nops(List1);
List2:=[Seq1,Seq1];
n1:=2; n2:=5; List3:=[op(n1..n2,List1)];
List4:=List1[n1..n2]; Seq2:=op([(n1..n2)],List2);
Set2:={op(n1..n2,Set1)}; Set3:=Set1[n1..n2];
Seq3:=op([(n1..n2)], Set1);

Здесь n1n2n и n – число элементов List1.

Замена i-го элемента структуры

:=, [ ], subsop, subs, evalm.

Seq1:=x[i] $ i=1..9; List1:=[Seq1];
i:=5; j:=2; val:=20; List1[i]:=val;
evaln(List1)=List1;
List2:=subsop(i=val+1,List1);
A:=Matrix(1..i,1..i,symbol=s);
A1:=subs(s[i,j]=cos(a+b),A);
Вставка элемента или нескольких элементов в структуру

[ ], op.

n1:=2; n2:=5; Seq1:=x[i] $ i=1..9;
List1:=[Seq1];
List2:=[op(List1),A1];
List3:=[A1,op(List1)];
List4:=[op(n1..n2,List1),A1,A2,A3,A4,op(List2)];
Создание структуры согласно формуле или обладающей особыми свойствами

Например, нуль, равенство, разреженность, симметричность, диагональность и т. п.

f:=x->cos(x); n:=0; m:=3;
List1:=[seq(f(i*t),i=n..m)];
Set1:=map(x->x"2,{x,y,z});
List2:=[op(Set1)];
Matrix1:=Matrix(m,m,(i,j)->i+j);
Vector1:=Vector(m,i->i"2);
with(LinearAlgebra):
ZeroMatrix(m,m);
IdentityMatrix(m,m);