Main Content

mtimes, *

シンボリック行列の乗算

説明

A*BAB の行列積です。Amp 列の、Bpn 列の行列の場合、得られる行列は mn 列の行列 C となり、次のように定義されます。

C(i,j)=k=1pA(i,k)B(k,j)

非スカラーの AB に対しては、A の列数は B の行数と等しくなる必要があります。非スカラー入力の場合、行列乗算は必ずしも可換ではありません。つまり、A*B は一般的に B*A と等価ではありません。少なくとも 1 つの入力がスカラーの場合、A*BA.*B と等価であり、可換です。

関数 mtimes(A,B) は、関数 A*B と等価です。

2 つのベクトルの乗算

15 列の行ベクトルと 51 列の列ベクトルを作成します。

syms x
A = [x, 2*x^2, 3*x^3, 4*x^4]
B = [1/x; 2/x^2; 3/x^3; 4/x^4]
A =
[ x, 2*x^2, 3*x^3, 4*x^4]
 
B =
   1/x
 2/x^2
 3/x^3
 4/x^4

これら 2 つのベクトルの行列積を求めます。

A*B
ans =
30

2 つの行列の乗算

43 列の行列と 32 列の行列を作成します。

A = sym('a%d%d', [4 3])
B = sym('b%d%d', [3 2])
A =
[ a11, a12, a13]
[ a21, a22, a23]
[ a31, a32, a33]
[ a41, a42, a43]
 
B =
[ b11, b12]
[ b21, b22]
[ b31, b32]

AB を乗じます。

A*B
ans =
[ a11*b11 + a12*b21 + a13*b31, a11*b12 + a12*b22 + a13*b32]
[ a21*b11 + a22*b21 + a23*b31, a21*b12 + a22*b22 + a23*b32]
[ a31*b11 + a32*b21 + a33*b31, a31*b12 + a32*b22 + a33*b32]
[ a41*b11 + a42*b21 + a43*b31, a41*b12 + a42*b22 + a43*b32]

行列にスカラーを乗じる

44 列のヒルベルト行列 H を作成します。

H = sym(hilb(4))
H =
[   1, 1/2, 1/3, 1/4]
[ 1/2, 1/3, 1/4, 1/5]
[ 1/3, 1/4, 1/5, 1/6]
[ 1/4, 1/5, 1/6, 1/7]

Heπ を乗じます。

C = H*exp(sym(pi))
C =
[   exp(pi), exp(pi)/2, exp(pi)/3, exp(pi)/4]
[ exp(pi)/2, exp(pi)/3, exp(pi)/4, exp(pi)/5]
[ exp(pi)/3, exp(pi)/4, exp(pi)/5, exp(pi)/6]
[ exp(pi)/4, exp(pi)/5, exp(pi)/6, exp(pi)/7]

vpa および digits を使用して、必要な桁数でシンボリックな結果を近似します。たとえば、5 桁の精度で近似値を求めます。

old = digits(5);
vpa(C)
digits(old)
ans =
[ 23.141,  11.57, 7.7136, 5.7852]
[  11.57, 7.7136, 5.7852, 4.6281]
[ 7.7136, 5.7852, 4.6281, 3.8568]
[ 5.7852, 4.6281, 3.8568, 3.3058]

入力引数

すべて折りたたむ

入力。シンボリック数、シンボリック スカラー変数、シンボリック行列変数、シンボリック関数、シンボリック行列関数、シンボリック式として指定するか、シンボリック スカラー変数のベクトルまたは行列として指定します。入力 AB は、いずれかがスカラー値でない限り、同じサイズでなければなりません。スカラー値は、他方の入力と同じサイズの配列に拡張されます。

入力。シンボリック数、シンボリック スカラー変数、シンボリック行列変数、シンボリック関数、シンボリック行列関数、シンボリック式として指定するか、シンボリック スカラー変数のベクトルまたは行列として指定します。入力 AB は、いずれかがスカラー値でない限り、同じサイズでなければなりません。スカラー値は、他方の入力と同じサイズの配列に拡張されます。

バージョン履歴

R2006a より前に導入

すべて展開する