Skip to content

二次型模块 #61

@HelloMrGeorge

Description

@HelloMrGeorge

二次型模块 quad

class QuadSolver

Source: lam/quad/quadratic.py


二次型模块求解器,用于求二次型的标准型

QuadSolver(mat: MutableDenseMatrix)

用矩阵对象构造一个求解器。矩阵必须是对称矩阵,否则不能化标准型

Parameter

  • mat: MutableDenseMatrix

get_standardFrom()

返回矩阵的标准型,即矩阵对应二次型的标准型。

Return: MutableDenseMatrix


get_course()

返回化矩阵的标准型的过程。

Return: List[Tuple[MutableDenseMatrix, MutableDenseMatrix]]

以下面的过程的为例,如果公式不能正常显示,请下载documentation文件夹中对应名字的文档查看。

$
A_0 = \left[\begin{matrix}1 & 3 & 4 & 6\3 & 2 & 3 & 0\4 & 3 & 7 & 8\6 & 0 & 8 & 10\end{matrix}\right]
$


$
T_1 = \left[\begin{matrix}1 & -3 & -4 & -6\0 & 1 & 0 & 0\0 & 0 & 1 & 0\0 & 0 & 0 & 1\end{matrix}\right],
$
配平方项得
$
A_1 = T_1'A_0T_1 = \left[\begin{matrix}1 & 0 & 0 & 0\0 & -7 & -9 & -18\0 & -9 & -9 & -16\0 & -18 & -16 & -26\end{matrix}\right]
$


$
T_2 = \left[\begin{matrix}1 & 0 & 0 & 0\0 & 1 & - \frac{9}{7} & - \frac{18}{7}\0 & 0 & 1 & 0\0 & 0 & 0 & 1\end{matrix}\right],
$
配平方项得
$
A_2 = T_2'A_1T_2 = \left[\begin{matrix}1 & 0 & 0 & 0\0 & -7 & 0 & 0\0 & 0 & \frac{18}{7} & \frac{50}{7}\0 & 0 & \frac{50}{7} & \frac{142}{7}\end{matrix}\right]
$


$
T_3 = \left[\begin{matrix}1 & 0 & 0 & 0\0 & 1 & 0 & 0\0 & 0 & 1 & - \frac{25}{9}\0 & 0 & 0 & 1\end{matrix}\right],
$
配平方项得
$
A_3 = T_3'A_2T_3 = \left[\begin{matrix}1 & 0 & 0 & 0\0 & -7 & 0 & 0\0 & 0 & \frac{18}{7} & 0\0 & 0 & 0 & \frac{4}{9}\end{matrix}\right]
$

get_course()将返回一个列表,列表中的每个元素都是元组,元组中有两个元素分别是变数矩阵T和结果矩阵A。按上面的例子,返回值可以表示为[($T_1$, $A_1$), ($T_2$, $A_2$), ($T_3$, $A_3$)]

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions