如何解决Mathematica的NullSpace符号矩阵命令中的假设
| 在符号矩阵上执行Mathematica的NullSpace命令时,Mathematica对变量进行了一些假设,我想知道它们是什么。 例如,In[1]:= NullSpace[{{a,b},{c,d}}]
Out[1]= {}
但未阐明的假设是
a d != b c.
如何确定NullSpace命令使用哪些假设?
解决方法
可以说,基本假设是通过内部使用
PossibleZeroQ
来强制执行的。如果该函数不能认为表达式为零,则它将被视为非零,因此有资格用作行缩减的枢轴(通常用于符号NullSpace)。
- -编辑 - -
提出了关于在符号线性代数的零测试中可能看到的内容的问题。默认情况下,对“ 2”的呼叫会通过内部路由。 PossibleZeroQ
后来在此之上构建。
在Mathematica内核代码开发中始终存在一个问题,即应通过主评估程序循环的内容以及应短路的内容(例如,出于速度目的)。只有前者很容易被追查。
通过指定非默认的零检验,可以影响符号线性代数中的处理。可能是
myTest[ee_]:= (Print[zerotesting[ee]]; PossibleZeroQ[ee])
然后在NullSpace
中使用ZeroTest->myTest
。
---结束编辑---
, 发现了这一点:
在这种情况下,如果将矩阵扩展一列,则会显示假设:
NullSpace[{{a,b,1},{c,d,1}}]
{{-((-b+d)/(-b c+a d)),-((a-c)/(-b c+a d)),1}}
在某些情况下可能有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。