にほんブログ村 科学ブログ 数学へ
にほんブログ村

Maximaではリストと呼ばれるデータ構造が多用されます。リストとは、数や式などを好きな個数だけ[ ]の中にカンマで区切って並べたものです。例えば、

(%i1) a:[1,2,3];

 

$$ ag{%o1}  left[ 1 , 2 , 3 ight]  $$

はリストです。aの値は[1, 2, 3]というリストになります。

 

今度はbという変数に以下のリストを作って代入します。

(%i2) b:[4,5,%pi,%e];

 

$$ ag{%o2}  left[ 4 , 5 , pi , e ight]  $$

この中には円周率やネピア数も入っています。

 

この二つのリストを連結することができます。そのためにはappend()関数を使います。

(%i3) append(a,b);

 

$$ ag{%o3}  left[ 1 , 2 , 3 , 4 , 5 , pi , e ight]  $$

ちゃんと繋がっていますね。

 

今度はaのリストの最初の要素とbのリストの3番目の要素から分数を一つ作ります。

(%i4) first(a)/third(b);

 

$$ ag{%o4}  frac{1}{pi} $$

 

リストを引数にとるrest()という関数を使うと、最初の要素を除いたリストを作ることができます。次の例ではaの2番目以降とbの2番目以降のリストを連結しています。

(%i5) append(rest(a),rest(b));

 

$$ ag{%o5}  left[ 2 , 3 , 5 , pi , e ight]  $$

 

リストの長さを調べるにはlength()関数を使います。

(%i6) length(a);

 

$$ ag{%o6}  3 $$

 

リストの最後の要素を得るにはlast()関数を使います。

(%i7) last(b);

 

$$ ag{%o7}  e $$

このようにリストを操作する関数は色々とあるので、マニュアルを調べて試してみて下さい。

 

ちょっと変わった書き方なのですが、bの値がリストの場合にその3番目の要素を取り出すには次のように書くことも出来ます。(これは別途ご紹介する配列のアクセスの記法と同じです)。

(%i8) b[3];

 

$$ ag{%o8}  pi $$