LinearAlgebra[MatrixAdd] - 2 つの行列の 1 次結合の計算
LinearAlgebra[VectorAdd] - 2 つのベクトルの 1 次結合の計算
使い方
MatrixAdd(A, B, c1, c2, ip, outopts)
VectorAdd(U, V, c1, c2, ip, outopts)
パラメータ
A, B - 同じサイズの行列
U, V - 方向と次元が同じベクトル
c1, c2 - (オプション) スカラー
ip - (オプション) BooleanOpt(inplace); 出力が入力を上書きするかどうかを指定
outopts - オプション) o(utputoptions=list の形をした等式; 結果として得られるオブジェクトのコンストラクタオプション
|
説明
|
|
•
|
MatrixAdd(A, B) 関数は、A と B の成分毎の和を計算します。
|
|
A と B が m x n 行列で M := MatrixAdd(A, B) ならば i=1..m と j=1..n に対して M[i,j] = A[i,j] + B[i,j] です。
|
|
オプションのスカラーパラメータ c1 と c2 が呼び出し手順に含まれていると、 M[i,j] = c1*A[i,j] + c2*B[i,j] です。
|
•
|
VectorAdd(U, V) 関数は、 U と V の成分毎の1次結合を計算します。
|
|
U と V は方向が同じ n 次元ベクトルで M := VectorAdd(U, V) ならば、i=1..n に対して M[i] = U[i] + V[i] です。
|
|
オプションのスカラーパラメータ c1 と c2 が呼び出し手順に含まれていると、M[i] = c1*U[i] + c2*V[i] です。
|
•
|
inplace オプション (ip) は結果が返される場所を決定します。 inplace=true が与えられたら、結果は最初の引数に上書きされます。 inplace=false が与えられるか、呼び出し手順に含まれていないときは、結果は新しい行列(あるいはベクトル)として返されます。
|
|
inplace=true という条件は、inplace と略記することができます。
|
|
inplace オプションは、注意して使わなければいけません。なぜなら、演算が失敗すれば元の行列(あるいはベクトル)の引数は改悪されてしまうからです。
|
•
|
outputoptions オプション (outopts) は、結果を作成する Matrix (あるいは Vector) コンストラクタに付加情報 (readonly, shape, storage, order, datatype, attributes) を与えます。
|
•
|
inplace と outputoptions オプションは両立しません。
|
•
|
この関数は LinearAlgebra パッケージの一部ですから、 with(LinearAlgebra) を実行した後にのみ MatrixAdd(..) の形で使うことができます。ただし、長い形の名前 LinearAlgebra[MatrixAdd](..) を使えばいつでもアクセスすることができます。
|
|
|
例
|
|
>
|
with(LinearAlgebra):
A := <<a,d>|<b,e>|<c,f>>;
|
| (2.1) |
>
|
MatrixAdd( A, IdentityMatrix(2,3) );
|
| (2.2) |
>
|
MatrixAdd( ConstantMatrix(1,2,3), A, n );
|
| (2.3) |
| (2.4) |
>
|
VectorAdd( V, <i | j | k>, 1, -2, inplace );
|
| (2.5) |
| (2.6) |
|
|