Main Content

mpower, ^

説明

C = A^B は、AB 乗を計算して、C に結果を返します。

C = mpower(A,B)A^B の代替方法として実行できますが、まれにしか使われません。これにより、クラスの演算子のオーバーロードが可能です。

すべて折りたたむ

2 行 2 列の行列を作成し、それを二乗します。

A = [1 2; 3 4];
C = A^2
C = 2×2

     7    10
    15    22

構文 A^2 は、A*A と等価です。

2 行 2 列の行列を作成し、それをスカラーの指数として使用します。

B = [0 1; 1 0];
C = 2^B
C = 2×2

    1.2500    0.7500
    0.7500    1.2500

C の計算では、最初に行列 B の固有値 D および固有ベクトル V を求めます。

[V,D] = eig(B)
V = 2×2

   -0.7071    0.7071
    0.7071    0.7071

D = 2×2

    -1     0
     0     1

次に、2^B = V*2^D/V の式を使用してべき乗を計算します。

C = V*2^D/V
C = 2×2

    1.2500    0.7500
    0.7500    1.2500

入力引数

すべて折りたたむ

オペランド。スカラーまたは行列として指定します。入力 AB は、次の組み合わせのいずれかでなければなりません。

  • 基数 A と指数 B はどちらもスカラーです。この場合、A^BA.^B と等価です。

  • 基数 A が正方行列で、指数 B がスカラー。B が正の整数の場合、べき乗は行列乗算の繰り返しによって計算されます。B がそれ以外の値の場合は、固有値分解 (ほとんどの行列) または Schur 分解 (フル ランクでない行列) が計算に使用されます。

  • 基数 A がスカラーで、指数 B が正方行列。固有値分解が計算に使用されます。

整数データ型のオペランドは、複素数にできません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
複素数のサポート: あり

ヒント

  • MATLAB® は同じ方法で X^(-1)inv(X) を計算します。両方とも同じ制限を受けます。詳細については、inv を参照してください。

参照

[1] Higham, Nicholas J., and Lijing Lin. “An Improved Schur--Padé Algorithm for Fractional Powers of a Matrix and Their Fréchet Derivatives.” SIAM Journal on Matrix Analysis and Applications 34, no. 3 (January 2013): 1341–1360. https://doi.org/10.1137/130906118.

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する