Main Content

mrdivide, /

x に対する線形方程式 xA = B の求解

説明

x = B/A は、x*A = B の線形方程式系を x について解きます。行列 A と 行列 B の列数は同じでなければなりません。 MATLAB® は、A が不適当なスケールまたは特異値に近い場合に警告メッセージを表示しますが、計算は関係なく実行します。

  • A がスカラーの場合、B/AB./A と等価です。

  • Ann 列の正方行列、Bn 列の行列である場合、x = B/A は存在する場合は方程式 x*A = B の解となります。

  • Am ~= n である mn 列の方形行列で、Bn 列の行列の場合、x = B/A は方程式系 x*A = B の最小二乗解を返します。

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

すべて折りたたむ

一意な解をもつ方程式 x*A = B を解きます。

A = [1 1 3; 2 0 4; -1 6 -1];
B = [2 19 8];
x = B/A
x = 1×3

    1.0000    2.0000    3.0000

劣決定系 x*C = D を解きます。

C = [1 0; 2 0; 1 0];
D = [1 2];
x = D/C
Warning: Rank deficient, rank = 1, tol =  1.332268e-15.
x = 1×3

         0    0.5000         0

MATLAB® は警告を表示しますが、計算を続行します。

x は厳密解でないことを確認してください。

x*C-D
ans = 1×2

     0    -2

入力引数

すべて折りたたむ

オペランド。ベクトル、非スパース行列またはスパース行列として指定します。AB の列数は同じでなければなりません。

  • A または B の一方が整数データ型をもつ場合、もう一方の入力はスカラーでなければなりません。整数データ型のオペランドは、複素数にできません。

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

出力引数

すべて折りたたむ

ベクトル、非スパース行列またはスパース行列として返される解。Amn 列の行列で、Bpn 列の行列の場合には、xpm 列の行列になります。

x がスパース行列となるのは、AB が両方ともスパース行列の場合のみです。

ヒント

  • 演算子 / と演算子 \ は、方程式 B/A = (A'\B')' によって相互に関連しています。

  • A が正方行列の場合には、B/AB*inv(A) におおよそ等しくなりますが、MATLAB は別の方法でより確実に B/A を処理します。

  • 線形システムを異なる右辺について効率的に複数回解くには、decomposition オブジェクトを使用します。decomposition オブジェクトは繰り返して解を求める必要のある問題に適しています。これは、係数行列の分解を複数回実行する必要がないためです。

拡張機能

バージョン履歴

R2006a より前に導入