このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
pagemrdivide
説明
は、N 次元配列 X
= pagemrdivide(B
,A
)A
の各ページと N 次元配列 B
の各ページの行列の右除算を計算します。出力配列 X
の各ページは X(:,:,i) = B(:,:,i) / A(:,:,i)
で与えられます。B
と A
のページは、mrdivide
(/
) に対する有効な入力でなければなりません。
B
および A
が 3 次元より大きい場合、最初の 2 次元を超える次元はすべて互換性のあるサイズでなければなりません。pagemrdivide
は、余分な次元を暗黙的に拡張し、X(:,:,i,j,k) = B(:,:,i,j,k) / A(:,:,i,j,k)
のように、すべてのページの組み合わせを除算します。
例
方程式系の求解
2 つのページのそれぞれに 3 行 3 列の行列を含む 3×3×2 の配列 A
を作成します。さらに、1×3×2 の配列 B
を作成します。
p1 = magic(3); p2 = hilb(3); A = cat(3,p1,p2)
A = A(:,:,1) = 8 1 6 3 5 7 4 9 2 A(:,:,2) = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000
B = ones(1,3,2)
B = B(:,:,1) = 1 1 1 B(:,:,2) = 1 1 1
A
と B
の対応する各ページのセットについて方程式 X(:,:,i)*A(:,:,i) = B(:,:,i)
の解を求めます。
X = pagemrdivide(B,A)
X = X(:,:,1) = 0.0667 0.0667 0.0667 X(:,:,2) = 3.0000 -24.0000 30.0000
転置された方程式系の求解
2 つのページのそれぞれに 4 行 4 列の行列を含む 4×4×2 の配列 A
を作成します。さらに、1×4×2 の配列 B
を作成します。
p1 = pascal(4); p2 = magic(4); A = cat(3,p1,p2)
A = A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 A(:,:,2) = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
B = 2*ones(1,4,2)
B = B(:,:,1) = 2 2 2 2 B(:,:,2) = 2 2 2 2
"transpose"
オプションを指定して、A
と B
の対応する各ページのセットについて方程式系 X(:,:,i)*A(:,:,i).' = B(:,:,i)
の解を求めます。
X = pagemrdivide(B,A,"transpose")
X = X(:,:,1) = 2 0 0 0 X(:,:,2) = 0.1176 0.2353 -0.1176 0
配列ページの条件数の逆数をチェック
2 つのページのそれぞれに 10 行 10 列の行列を含む 10×10×2 の配列 A
を作成します。さらに、1×10×2 の配列 B
を作成します。
p1 = diag([ones(9,1);0]); p2 = pascal(10); A = cat(3,p1,p2)
A = A(:,:,1) = 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 A(:,:,2) = 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 1 3 6 10 15 21 28 36 45 55 1 4 10 20 35 56 84 120 165 220 1 5 15 35 70 126 210 330 495 715 1 6 21 56 126 252 462 792 1287 2002 1 7 28 84 210 462 924 1716 3003 5005 1 8 36 120 330 792 1716 3432 6435 11440 1 9 45 165 495 1287 3003 6435 12870 24310 1 10 55 220 715 2002 5005 11440 24310 48620
B = 3*ones(1,10,2)
B = B(:,:,1) = 3 3 3 3 3 3 3 3 3 3 B(:,:,2) = 3 3 3 3 3 3 3 3 3 3
A
と B
の対応する各ページのセットについて方程式 X(:,:,i)*A(:,:,i) = B(:,:,i)
の解を求めます。2 つの出力を指定して、A
の各ページの条件数の逆数も返します。
[X,rcondA] = pagemrdivide(B,A)
X = X(:,:,1) = NaN NaN NaN NaN NaN NaN NaN NaN NaN Inf X(:,:,2) = 3 0 0 0 0 0 0 0 0 0
rcondA = rcondA(:,:,1) = 0 rcondA(:,:,2) = 1.2295e-10
条件数の逆数を eps
と比較します。この結果は、最初のページの行列が悪条件であることを示しています。コマンド B(:,:,1)/A(:,:,1)
で警告が返され、そのページの演算の結果は信頼できません。
rcondA < eps
ans = 1x1x2 logical array
ans(:,:,1) =
1
ans(:,:,2) =
0
入力引数
B
, A
— 入力配列 (個別の引数として)
多次元配列
transpA
— A
の転置オプション
"none"
(既定値) | "transpose"
| "ctranspose"
A
の転置オプション。次の値のいずれかとして指定します。
値 | 説明 |
---|---|
"none" | A を転置しません。これは既定値です。 |
"transpose" | A の各ページを複素共役なしで転置します。 |
"ctranspose" | A の各ページを複素共役を使用して転置します。 |
例: pagemrdivide(B,A,"transpose")
出力引数
X
— 線形方程式系の解
多次元配列
線形方程式系の解。B
および A
と同じ数のページをもつ多次元配列として返されます。X
の各ページは線形方程式系 X(:,:,i,...) = B(:,:,i,...) / A(:,:,i,...)
の解になります。
rcondA
— A
の条件数の逆数
多次元配列
A
の条件数の逆数。多次元配列として返されます。A
のページが m
行 n
列の方形行列 (m~=n
) の場合、rcondA
は QR 分解の R
の要素を使用して推定されます。rcondA(1,1,i) < eps
の場合、X(:,:,i) = B(:,:,i) / A(:,:,i)
は行列が悪条件であるため警告を返します。ただし、pagemrdivide
は悪条件の入力に対して警告を発行しません。
詳細
配列ページ
pagemrdivide
のようなページ単位関数は、多次元配列に配置された 2 次元行列を処理します。たとえば 3-D 配列では、配列の 3 番目の次元にある要素は、本のページのようにお互いの上に積み重なるため、一般に "ページ" と呼ばれています。各ページは関数によって処理される行列です。
2 次元行列の集合から、4 次元配列または 5 次元配列のような、より高い次元の配列も作成できます。この場合でも、pagemrdivide
は配列の基本単位を X(:,:,i,j,k,l)
などの処理される 2 次元行列として扱います。
関数 cat
は、行列の集合から多次元配列を作成するのに便利です。関数 zeros
は、多次元配列を事前に割り当てるのに便利です。
ヒント
pagemrdivide
を使用して取得した結果は、for
ループで同じ各行列を使用して線形システムの解を計算することと数値的に等価です。ただし、浮動小数点の丸め誤差のため、2 つの結果が若干異なることがあります。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
2 出力の構文
[X,rcondA] = pagemrdivide(___)
はサポートされていません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2022a で導入
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)