SylvesterEquation

Решает уравнение Сильвестра для вещественных или комплексных квадратных матриц:

   A*X + X*B = scale*C

где A — общая матрица размера m на m, а B — общая матрица размера n на n; правая часть C и решение X имеют размер m на n; scale — выходной коэффициент масштабирования, устанавливаемый ≤ 1 для предотвращения переполнения в X.

Используются LAPACK-функции GEES и TRSYL. См. раздел «Примечание» в описании метода SylvesterEquationSchur.

Вычисления для типа matrix<double>

bool  matrix::SylvesterEquation(
   matrix&              B,            // квадратная матрица B
   matrix&              C,            // матрица правой части C
   matrix&              X,            // матрица решений X
   double&              scale         // коэффициент масштабирования
   );

Вычисления для типа matrix<float>

bool  matrixf::SylvesterEquation(
   matrixf&             B,            // квадратная матрица B
   matrixf&             C,            // матрица правой части C
   matrixf&             X,            // матрица решений X
   float&               scale         // коэффициент масштабирования
   );

Вычисления для типа matrix<complex>

bool  matrix::SylvesterEquation(
   matrixc&             B,            // квадратная матрица B
   matrixc&             C,            // матрица правой части C
   matrixc&             X,            // матрица решений X
   double&              scale         // коэффициент масштабирования
   );

Вычисления для типа matrix<complexf>

bool  matrix::SylvesterEquation(
   matrixcf&            B,            // квадратная матрица B
   matrixcf&            C,            // матрица правой части C
   matrixcf&            X,            // матрица решений X
   float&               scale         // коэффициент масштабирования
   );

Параметры

B

[in]  Квадратная матрица B.

C

[in]  Матрица C, столбцы которой представляют собой правые части систем линейных уравнений.

X

[out]  Матрица X с решением уравнения Сильвестра.

scale

[out]  Коэффициент масштабирования, устанавливаемый ≤ 1 для предотвращения переполнения в X.

 

Возвращаемое значение

Возвращает true в случае успеха, иначе false в случае ошибки.

Примечание

Выходная матрица X имеет те же размеры, что и входная матрица C.