Matrix - 行列の作成
使い方
Matrix(r, c, init, ro, sym, sc, sh, st, o, dt, f, a)
パラメータ
r - (オプション) 非負の整数もしくは 1 から始まる整数の範囲(例: 1..5); 行列の行の次元
c - (オプション) 非負の整数もしくは 1 から始まる整数の範囲(例: 1..5); 行列の列の次元
init - (オプション) Maple のプロシージャ, table, array, list, Array, Matrix, Vector, 等式の集合もしくは形式的代数式; 行列の初期値
ro - (オプション) readonly=true もしくは false; 行列の入力項目を変更できるか指定
sym - (オプション) symbol=name; 行列の入力に使用する記号名の指定
sc - (オプション) scan=name もしくは scan=list; 構造やデータ順序から初期値を解明するために指定; 変数 init の初期値のための読み取り
sh - (オプション) shape=name もしくは shape=list; 一つ以上の組み込みもしくはユーザ定義の indexing functions を指定; 行列の記憶域の割り当て
st - (オプション) storage=name, name は許可された storage mode; 行列の入力に必要な記憶域
o - (オプション) order=name, name は C_order もしくは Fortran_order; 行列の入力を行もしくは列で記録されるよう指定
dt - (オプション) datatype=name, name は complex[8] もしくは integer[n] (n=1,2,4,8) の Maple の型; 行列に保存されるデータの型
f - (オプション) fill=value, value は dt パラメータで指定されるタイプ; 別の方法で設定されなかった位置での行列の入力を指定
a - (オプション) attributes=list, list は許可された attributes を指定; 追加する行列の数学性質を指定
|
説明
|
|
•
|
次元が 1..25 (コマンドラインの場合) もしくは 1..10 (ワークシートの場合) までの行列は Maple のウィンドウに表示されます。その他の大きな行列はプレースホルダーを使用して表示されます。プレースフォルダーの表示に関する情報は structuredview をご参照ください。
|
|
Maple の初期ファイル (maple を参照) に interface(rtablesize=infinity) コマンドを含めることで環境設定を変更でき、Maple は全ての rtable ルーチンを表示します。
|
•
|
全てのパラメータはオプションですが、行列の数学的な形状や定義に必要なストレージ等の十分な情報をパラメータに指定する必要があります。パラメータに何も指定しない場合は 0 x 0 の行列を返します。
|
•
|
The Matrix(r) 関数はパラメータ f (デフォルトは 0)で埋め尽くした r x r 行列を作成します。行の次元が指定されていない場合はデフォルトの 0 になります。
The Matrix(r,c) 関数はパラメータ f (デフォルトは 0)で埋め尽くした r x c 行列を作成します。列の次元が指定されていない場合は行と同じ次元になります。行の次元を指定しないで列の次元だけを指定することはできません。
|
•
|
Matrix(init) 関数はパラメータ init で定義された形状、入力で行列を構成します。
Matrix(r,c,init) 関数はパラメータ init (init によって行列の入力が設定されない場合は f)で定義された初期入力の r x c 行列を構成します。初期入力が行列に与えられない場合は全ての値はデフォルトの 0 で埋め尽くされます。
パラメータ init には以下のフォームを利用できます。(プロシージャ, 代数式, テーブルもしくは集合を使用する場合は必ず init に次元を提供する必要があります。)
|
プロシージャ
|
プロシージャは正の整数の組 (行列のインデックス) をパラメータに受け付け、行列の対応する位置に値を返します。
|
代数式
|
代数式は関数 (もしくはプロシージャ) として正の整数の組をパラメータとして受け付け、行列の対応する位置に値を返します。
|
テーブル
|
テーブルは i, j が正の整数 (行列のインデックス) で指定される [i,j] によって参照されます。(テーブルに含まれる他のフォームのインデックスの入力は無視されます。)
|
式の集合
|
式の集合には i, j が正の整数 (行列のインデックス) で指定される (i, j) = <value> のフォームとなる必要があります。作成する行列に存在しない位置のインデックスを指定した場合はエラーが返されます。
|
array もしくは Array
|
2D table ベースの arrayもしくは rtable ベースの Array で指定します。インデックスは 1 ベースで移動します。作成する行列に存在しない位置のインデックスを指定した場合はエラーが返されます。
|
Matrix
|
行列構成は初期入力に別の行列を受け付けます。作成する行列に存在しない位置のインデックスを指定した場合はエラーが返されます。
|
list もしくは listlist
|
init にスカラーのリスト (具体的には、algebraic タイプや indexable タイプではないもの) が指定された場合、行列の次元が指定されている場合は順にリストの値が指定され、リストの要素が足りない場合には 0 で埋め尽くされます。行列の次元が指定されていない場合は 1 行の行列として定義されます。リストリストの場合は各リストが行列の行毎の値となり要素の数が足りない部分は 0 で埋め尽くされます。
|
Vector
|
ベクトルの要素は、行列の先頭の列もしくは行に配置され行列を構成します。また、パラメータ sh に shape = diagonal もしくは shape = [diagonal] が設定された場合、ベクトルは結果の行列の対角行列の初期値に使用されます。
|
•
|
ro オプションが readonly もしくは readonly=true として指定された場合、行列は読み込み専用となります。(行列を作成後、入力されている値を変更できません。)
|
•
|
初期化子が提供されなければ、symbol=name で指定された sym オプションが行列の入力に使用するシンボル名として提供されます。初期化子が与えられた場合このパラメータは無視されます。
|
•
|
パラメータの先頭に 2 つの整数が含まれている場合は 1 つ目は行の次元、2 つ目は列の次元です。その他、パラメータが繰り返し指定された場合は最後のものが適用されます。
|
•
|
パラメータには様々な順で与えることができます。(パラメータの 1 つ目が行の次数、2 つ目が列の次数という指定は除きます).
|
•
|
呼び出し手順に残るパラメータは、行列の計算における最大限度の効率を達成するよう提供されます。
|
scan=name もしくは scan=list
|
init が list の場合行列の初期値として解釈する構造またはデータ順を指定します。scan パラメータが指定されておらず、かつ init が list の場合 scan はデフォルトの [rectangular,rows] となります。init がリストでない場合は scan パラメータは無視されます。行列のスキャン方法に関する詳細は、scan をご参照ください。
|
shape=name もしくは shape=list
|
1 つ以上の組み込みもしくはユーザ定義によるインデックス関数を指定することで非ゼロ構造の行列を定義します。複数のインデックス関数が含まれる場合はリストとして入力される必要がありあます。shape のデフォルトは [] (なし) です。行列のインデックス関数は次の通りです:
|
antihermitian antisymmetric band constant
diagonal identity hermitian scalar
symmetric triangular zero Hessenberg
storage=name
|
行列の入力が物理メモリにどう割り当てられるかを指定します。デフォルトのストレージは長方形です。
詳細は storage をご確認ください。
|
order=name
|
行列の構造の内部オーダーを指定します。指定可能な値は C_order (行で保管) または Fortran_order (列で保管) です。デフォルトは Fortran_order です。
|
datatype=name
|
行列に記録されるデータのタイプを指定します。integer[n], float[n], complex[n], もしくは Maple type 指定から一つを指定します。
|
|
integer[n] の n には 1, 2, 4, 8 の整数毎のバイトを指定します。float[n] または complex[n] の n には 8 だけしか許可されません。デフォルトのデータタイプは Maple の一般的な anything になります。
|
fill=value
|
行列の要素の未指定の値を指定します。この値は初期化値と同じ評価必要条件を満たす必要があります。デフォルトの値は 0 です。
|
|
注意: fill の値はインデックス関数に関らず未指定の行列の要素にのみ値を埋め尽くします。例えば、上三角行列の下三角部分には値は埋め尽くされません。また、スパース行列では fill の値は無視されます。
|
attributes=list
|
行列が作成される属性を指定します。このオプションは行列に数学的な性質をつけるのに使用できます。行列の属性には setattribute に有効な引数を何でも指定できます。
|
|
この情報は例えばアルゴリズムを選ぶときに様々なルーチンで使用することができます。特に、以下の LinearAlgebra パッケージのルーチンは、もし attributes=[positive_definite] が行列の構成のルーチンに含まれた場合、効果的に適切なアルゴリズムを選択することができます。
|
ConditionNumber Eigenvalues Eigenvectors
LinearSolve LUDecomposition MatrixInverse
•
|
expr が行列表示の場合、nops(expr) は 3 を返します。
|
|
また、op(n, expr) は n の値によって以下を返します。
|
n 出力
0 Matrix (型)
1 行と列の次元を二つの整数の式列で出力
2 行列の要素を (インデックス)=値 の形式の集合で出力
3 行列のオプションを option=value の形式の式列で出力
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
>
|
Matrix([[1,2,3],[4,5,6]]);
|
| (2.4) |
>
|
Matrix(3,2,[1,2,3,4,5]);
|
| (2.5) |
>
|
f:= (i,j) -> x^(i+j-1):
Matrix(2,f);
|
| (2.6) |
>
|
s:={(1,1)=0,(1,2)=1}:
Matrix(1,2,s);
|
| (2.7) |
| (2.8) |
読み込み専用の行列に書き込もうとするとエラーが返されます。
>
|
A:=Matrix(3,4,[[1,2,3],[4,5,6]],readonly=true);
|
| (2.9) |
Error, cannot assign to a read-only Matrix
| |
|
|
参照
|
|
MatrixOptions, Vector, convert[Matrix], convert[Vector], Array, array, list, procedure, scan, shortcuts, storage, set, rtable_indexfcn, table, type[algebraic], type[BooleanOpt], type[indexable], LinearAlgebra,General,MVassignment
|
|