mpower, ^
行列のべき乗
説明
例
行列の二乗
行列の指数
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
入力引数
A
, B
— オペランド
スカラー | 行列
オペランド。スカラーまたは行列として指定します。入力 A
と B
は、次の組み合わせのいずれかでなければなりません。
基数
A
と指数B
はどちらもスカラーです。この場合、A^B
はA.^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.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
A
が 2 行 2 列以上の行列でB
がInf
または-Inf
の場合、A^B
はNaN
値の行列を返します。A^b
については、b
が整数でないスカラーの場合、A
とb
のうち少なくとも一方が複素数でなければなりません。コード生成では、この関数のスパース行列入力はサポートされません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
A
が 2 行 2 列以上の行列でB
がInf
または-Inf
の場合、A^B
はNaN
値の行列を返します。A^b
については、b
が整数でないスカラーの場合、A
とb
のうち少なくとも一方が複素数でなければなりません。コード生成では、この関数のスパース行列入力はサポートされません。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
どちらの入力もスカラーでなければならず、また指数の入力 k
は整数でなければなりません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
底
A
がスパース行列の場合、指数B
は非負の実数の整数でなければなりません。A
がスパース スカラーの場合、B
はスカラーでなければなりません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入R2021b: フル ランクでない行列のアルゴリズムの改善
フル ランクでない行列の実数乗に対するアルゴリズムが改善されました。以前のリリースでは、それらの入力に対して mpower
は固有値分解に基づくアルゴリズムを使用しており、フル ランクでない行列の場合に正しくない結果を返すことがありました。フル ランクでない行列に対する新しいアルゴリズムは、代わりに Schur 分解をベースにしています。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)