Mathematica的符号矩阵NullSpace命令的假设

时间:2011-05-30 18:07:20

标签: math matrix wolfram-mathematica linear-algebra

在符号矩阵上执行Mathematica的NullSpace命令时,Mathematica对变量做了一些假设,我想知道它们是什么。

例如,

In[1]:= NullSpace[{{a, b}, {c, d}}]

Out[1]= {}

但未说明的假设是

a d != b c.

如何确定NullSpace命令使用的假设?

2 个答案:

答案 0 :(得分:12)

可以说,基本假设是由PossibleZeroQ的内部使用强制执行的。如果该函数不能将表达式视为零,那么它将被视为非零,因此有资格用作行减少中的枢轴(通常用于符号NullSpace)。

--- ---编辑

提出了关于在符号线性代数中零测试中可见的内容的问题。默认情况下,对PossibleZeroQ的调用将通过内部路由。 PossibleZeroQ后来建立在那些之上。

Mathematica内核代码开发中始终存在一个问题,即应该通过主评估器循环的内容以及(例如出于速度目的)应该短路的问题。只有前者很容易被追踪。

通过指定非默认的零测试,可以影响符号线性代数中的过程。可能是例如。

myTest[ee_]:= (Print[zerotesting[ee]]; PossibleZeroQ[ee])

然后在ZeroTest->myTest中使用NullSpace

---结束编辑---

答案 1 :(得分:4)

发现这个:

在这种情况下,如果您将矩阵扩展一列,则会出现以下假设:

NullSpace[{{a, b, 1}, {c, d, 1}}]

{{-((-b+d)/(-b c+a d)),-((a-c)/(-b c+a d)),1}}

在某些情况下可能有用