Engee 文档

LDL Solver

利用 LDL 分解法求解具有正定系数矩阵的方形 Hermite 线性方程组。

类型: SubSystem

图书馆中的路径:

/Signal Operations/Math Functions/Matrices and Linear Algebra/Linear System Solvers/LDL Solver

说明

*LDL 求解器*程序块使用输入矩阵 的 LDL 分解求解线性方程组

  • - 将端口 S 的输入信号分解为正方形 Hermite 正定矩阵

  • - 端口 B 的输入信号为矩阵

  • - 方程组的解作为矩阵 ,网址为

端口

输入

S - 输入矩阵 S
矩阵 M by M

方程 中的输入矩阵 大小为 by 。矩阵必须是赫米特正定矩阵。程序块只使用矩阵 对角线上和主对角线以上的元素,而忽略其余元素。对角线元素中的虚部将被忽略。

如果输入矩阵不是正定矩阵,程序块的行为取决于*非正定*参数的值。

数据类型: Float32, Float64

支持复数:是

B - 输入矩阵 B
矩阵 M 乘 N | 向量 M 乘 1

方程 中的矩阵 大小为 by 或一个大小为 by 1 的向量。

如果给出长度为 的向量,程序块将其视为矩阵 by 1。输入 SB 的行数必须相同。

数据类型: Float32, Float64

支持复数:是

输出

X 是方程组的解
N 上的矩阵 M | 1 上的向量 M

程序块以大小为 by 的矩阵 或大小为 by 1 的矢量形式找到方程的解。矩阵 的大小与矩阵 的大小相同。

数据类型: Float32, Float64

*支持复数:是

参数

非正定输入 - 输入矩阵 S 非正定时的阻塞行为
忽略(默认) | `警告 | `错误

如果输入矩阵 不是正定矩阵,则指定块行为:

  • 忽略` - 程序块继续计算,不产生警告。得到的结果不是正确的解。

  • 警告` - 程序块继续计算,但在 Engee 命令窗口中显示警告信息。得到的结果不是正确的解决方案。

  • 错误" - 显示错误对话框并停止计算。

非正定输入*参数是诊断参数。与所有诊断参数一样,它在代码生成器为该程序块生成的代码中被设置为 "忽略"。

算法

LDL 分解算法将 Hermite 正定义输入矩阵 唯一表示为

,

其中 * - 是具有置换行的矩阵 ,置换顺序由置换向量 决定。

  • - 是具有单位对角元素的下三角矩阵(单位矩阵)。

  • - 对角矩阵。

  • - Hermite(复共轭)转置矩阵

结果方程的形式如下

.

通过代入 ,我们得到一个对角矩阵方程组和两个三角形矩阵方程组:

,

,

.