Tys*_*ams 8 math wolfram-mathematica matrix linear-algebra
当在符号矩阵上执行Mathematica的NullSpace命令时,Mathematica对变量做了一些假设,我想知道它们是什么.
例如,
In[1]:= NullSpace[{{a, b}, {c, d}}]
Out[1]= {}
Run Code Online (Sandbox Code Playgroud)
但没有说明的假设是
a d != b c.
Run Code Online (Sandbox Code Playgroud)
如何确定NullSpace命令使用的假设?
Dan*_*lau 12
可以说,基本假设是由内部使用强制执行的PossibleZeroQ.如果该函数不能将表达式视为零,那么它将被视为非零,因此有资格用作行减少中的枢轴(通常用于符号NullSpace).
- -编辑 - -
提出了关于在符号线性代数中零测试中可见的内容的问题.默认情况下,呼叫PossibleZeroQ通过内部路由.PossibleZeroQ后来建立在那些之上.
Mathematica内核代码开发中始终存在一个问题,即应该通过主评估器循环,以及什么(例如出于速度目的)应该短路.只有前者很容易被追踪.
可以通过指定非默认零测试来影响符号线性代数中的过程.可能是例如
myTest[ee_]:= (Print[zerotesting[ee]]; PossibleZeroQ[ee])
Run Code Online (Sandbox Code Playgroud)
然后用ZeroTest->myTest在NullSpace.
---结束编辑---
发现这个:
在这种情况下,如果将矩阵扩展一列,则假设出现:
NullSpace[{{a, b, 1}, {c, d, 1}}]
{{-((-b+d)/(-b c+a d)),-((a-c)/(-b c+a d)),1}}
Run Code Online (Sandbox Code Playgroud)
在某些情况下可能有用