Main Content

sylvester

Sylvester 方程式 AX + XB = C を解いて X を得る

説明

X = sylvester(A,B,C) は、Sylvester 方程式の解 X を返します。

入力 A は m 行 m 列の行列、入力 B は n 行 n 列の行列、CX は両方とも m 行 n 列の行列です。

すべて折りたたむ

係数行列 AB を作成します。

A = [1 -1 1; 1 1 -1; 1 1 1];
B = magic(3);

3 行 3 列の単位行列として C を定義します。

C = eye(3);

関数 sylvester を使用して、AB および C の値について、Sylvester 方程式を解きます。

X = sylvester(A,B,C)
X = 3×3

    0.1223   -0.0725    0.0131
   -0.0806   -0.0161    0.1587
   -0.0164    0.1784   -0.1072

結果は、3 行 3 列の行列になります。

4 行 4 列の係数行列 A と 2 行 2 列の係数行列 B を作成します。

A = [1 0 2 3; 4 1 0 2; 0 5 5 6; 1 7 9 0];
B = [0 -1; 1 0];

AB の対応するサイズに一致するように C を 4 行 2 列の行列として定義します。

C = [1 0; 2 0; 0 3; 1 1]
C = 4×2

     1     0
     2     0
     0     3
     1     1

関数 sylvester を使用して、AB および C の値について、Sylvester 方程式を解きます。

X = sylvester(A,B,C)
X = 4×2

    0.4732   -0.3664
   -0.4006    0.3531
    0.3305   -0.1142
    0.0774    0.3560

結果は、4 行 2 列の行列になります。

入力引数

すべて折りたたむ

入力行列。行列として指定します。入力 A は m 行 m 列の正方行列、入力 B は n 行 n 列の正方行列、C は m 行 n 列の方形行列です。入力行列のいずれかがスパースの場合、関数はエラーを返します。

データ型: single | double
複素数のサポート: あり

出力引数

すべて折りたたむ

C と同じサイズの行列として返される解。A-B の固有値が異なる値ではない場合、関数はエラーを返します (この場合、解 X は特異であるか、一意ではありません)。

詳細

すべて折りたたむ

Sylvester 方程式

Sylvester 方程式は次のとおりです。

AX+XB=C.

A-B の固有値が異なる場合、方程式では一意の解が得られます。クロネッカー テンソル積 を使用すると、方程式は次のようになります。

[IA+BTI]X(:)=C(:),

I は単位行列、X(:)C(:) は行列 XC を 1 列のベクトルとして表します。

拡張機能

バージョン履歴

R2014a で導入