LinearAlgebra[Add] - 行列、ベクトル、スカラーの 1 次結合の計算
使い方
Add(A, B, c1, c2, ip, outopts)
パラメータ
A - 行列 (Matrix) 、ベクトル (Vector)、スカラー (scalar)
B - 行列 (Matrix) 、ベクトル (Vector)、スカラー (scalar)
c1, c2 - (オプション) スカラー (scalar)
ip - (オプション) BooleanOpt(inplace); 出力が入力を上書きするかどうかを指定
outopts - (オプション) outputoptions=list の形をした等式; 結果として得られるオブジェクトのコンストラクタオプション
|
説明
|
|
•
|
A と B が両方行列かまたは両方ベクトルのとき、 Add(A, B) 関数は、 A と B の成分ごとの和を計算します。スカラーと行列の和のような特別な場合は、下で説明します。 A と B の型が他の組み合わせだと結果はエラーになります。
|
|
A と B が両方行列か両方ベクトルのとき、 Add(A, B, c1, c2) は、 c1*A + c2*B を計算します。
|
|
A が定数で B が行列のとき、 Add(A, B, c1, c2) は、 c1*ScalarMatrix(A,op(1,B)) + c2*B を計算します。
|
|
A が行列で B が定数のとき、 Add(A, B, c1, c2) は、 c1*A + c2*ScalarMatrix(B,op(1,A)) を返します。
|
|
A が定数で B が定数のとき、 Add(A, B, c1, c2) は、 c1*A + c2*B を返します。
|
•
|
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) を実行した後にのみ Add(..) の形で使うことができます。ただし、長い形の名前 LinearAlgebra[Add](..) を使えばいつでもアクセスすることができます。
|
|
注意: このルーチンは、実際の計算を行うために、 MatrixAdd と VectorAdd の LinearAlgebra ルーチンの2つから選ぶために初めから2つのパラメータの型を用います。
|
|
|
例
|
|
>
|
with(LinearAlgebra):
Ax := <1.00004,1.99987,-0.00012>:
b := <1.,2.,0.>:
Add(Ax,b,1,-1);
|
| (2.1) |
>
|
M := <<m,o>|<n,p>>:
Add(M,-lambda,inplace);
|
| (2.2) |
| (2.3) |
|
|