介绍
今天我们要照顾第一年线性代数学生的祸根:矩阵定性!显然这还没有挑战,所以我们开始:
输入项
- 任何方便格式的 对称矩阵(当然,您也可以只取矩阵的上部或下部)
- 可选:矩阵的大小
该怎么办?
挑战很简单:给定一个实值矩阵矩阵,如果输出真值,则输出真值,否则输出假值,从而确定其是否为正定值。
您可能会假定内置程序能够真正正确地工作,因此不必考虑数值问题,如果“可证明”的策略/代码产生正确的结果,则可能导致错误的行为。
谁赢?
这是代码高尔夫球,因此以字节(每个语言)为单位的最短代码为准!
反正矩阵是什么?
当对称矩阵为正定时,显然有6个等价公式。我将重现这三个简单的文章,并为更复杂的文章引用Wikipedia。
- 如果则是正定的。
可以将其重新公式化为:
如果对于每个非零向量,和的(标准)点积为正,则为正定。 - 让是特征值的,如果现在(这是所有本征值是正的),然后是正定的。
如果您不知道特征值是什么,我建议您使用自己喜欢的搜索引擎进行查找,因为本文中的解释(以及所需的计算策略)太长了。 - 如果乔列斯基分解的存在,即存在一个下三角矩阵使得然后是正定的。请注意,如果在任何时候由于负参数导致算法期间根的计算失败,则这等效于提早返回“ false”。
例子
为真实输出
虚假输出
(至少一个特征值是0 /正半定)
(特征值具有不同的符号/不确定)
(所有特征值均小于0 /负定数)
(所有特征值小于0 /负定的)
(所有特征值小于0 /负定的)
(三个正,一个负特征值/不确定)