ブロック行列のブロック成分の操作に用いる指数は,MaTX4では 0 から始まる
が,MaTX5では 1 から始まる。これは,通常の行列の成分の操作とブロック行
列のブロック成分の操作を統一するための変更である。
行列 A = [[1 2][3 4]] を対角成分にもつ 4 x 4 の行列の記述例を以下に示す。
(MaTX4)
A = [[1 2][3 4]];
AA = Z(2,2,A);
AA(0,0,A) = A;
AA(1,1,A) = A;
print AA;
=== [AA] : ( 4, 4) ===
( 1) ( 2) ( 3) ( 4)
( 1) 1.00000000E+00 2.00000000E+00 0.00000000E+00 0.00000000E+00
( 2) 3.00000000E+00 4.00000000E+00 0.00000000E+00 0.00000000E+00
( 3) 0.00000000E+00 0.00000000E+00 1.00000000E+00 2.00000000E+00
( 4) 0.00000000E+00 0.00000000E+00 3.00000000E+00 4.00000000E+00
(MaTX5)
A = [[1 2][3 4]];
AA = Z(2,2,A);
AA(1,1,A) = A;
AA(2,2,A) = A;
print AA;
=== [AA] : ( 4, 4) ===
( 1) ( 2) ( 3) ( 4)
( 1) 1.00000000E+00 2.00000000E+00 0.00000000E+00 0.00000000E+00
( 2) 3.00000000E+00 4.00000000E+00 0.00000000E+00 0.00000000E+00
( 3) 0.00000000E+00 0.00000000E+00 1.00000000E+00 2.00000000E+00
( 4) 0.00000000E+00 0.00000000E+00 3.00000000E+00 4.00000000E+00
MaTX4では,多項式の変数は $ を用い
x = $;
のように定義するが,MaTX5では,多項式の変数を選び,
x = Polynomial("x");
のように定義する。この変数を使って多項式を記述すると,以下のように変数
名が x となる。
p = x^2 + 3*x + 4
p = x^2 + 3 x + 4
また,多項式の変数の変換も
Polynomial(p,"abc")
p = abc^2 + 3 abc + 4
のようにできる。ただし,内部データは 1 変数の多項式のままなので,異な
る変数の多項式を加えても多変数の多項式にはならない。
多項式の係数を変換関数 Matrix() でベクトルに変換すると,MaTX4では係数
が昇べきの順にベクトルの成分になるが,MaTX5では降べきの順に成分になる。
これは,多項式を表示した際の係数の順番とベクトルを表示した際の成分の順
番を同じにするためである。以下に,多項式とベクトルを変換する例を示す。
(MaTX4)
s = Polynomial("s");
p = s^3 + 2*s^2 + 3*s + 4;
Matrix(p);
=== [ans] : ( 1, 4) ===
( 1) ( 2) ( 3) ( 4)
( 1) 4.00000000E+00 3.00000000E+00 2.00000000E+00 1.00000000E+00
(MaTX5)
s = Polynomial("s");
p = s^3 + 2*s^2 + 3*s + 4;
Matrix(p);
=== [ans] : ( 1, 4) ===
( 1) ( 2) ( 3) ( 4)
( 1) 1.00000000E+00 2.00000000E+00 3.00000000E+00 4.00000000E+00
MaTX5での,多項式 p = x^2 + 3*x + 4 を記述する例を以下に示す。
多項式変数を用いる方法
Polynomial x, p;
x = Polynomial("x");
p = x^2 + 3*x + 4;
ベクトルを多項式に変換する方法
Matrix v;
Polynomial p;
v = [1 3 4];
p = Polynomial(v);
多項式の係数を設定する方法
Polynomial p;
p = Polynomail(Z(1,3));
p(0) = 4;
p(1) = 3;
p(2) = 1;