当我行缩减符号矩阵时,为什么SymPy给我错误的答案?

杰西卡(Jessica)

如果我要求SymPy行归约奇异矩阵

nu = Symbol('nu')
lamb = Symbol('lambda')
A3 = Matrix([[-3*nu, 1, 0, 0],
             [3*nu, -2*nu-1, 2, 0],
             [0, 2*nu, (-1 * nu) - lamb - 2, 3],
             [0, 0, nu + lamb, -3]])
print A3.rref()

然后返回身份矩阵

(Matrix([
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]]), [0, 1, 2, 3])

因为矩阵是奇异的,所以不应该这样做。为什么SymPy给我错误的答案?如何得到正确的答案?

我知道SymPy知道矩阵是奇异的,因为当我要求A3.inv()时,它会给出

raise ValueError("Matrix det == 0; not invertible.")

此外,当我从矩阵中删除羔羊时(等效于设置羔羊= 0),SymPy给出了正确的答案:

(Matrix([
[1, 0, 0, -1/nu**3],
[0, 1, 0, -3/nu**2],
[0, 0, 1,    -3/nu],
[0, 0, 0,        0]]), [0, 1, 2])

这使我相信,只有多个变量会发生此问题。

编辑:有趣的是,当我通过rref()参数“ simplify = True”时,我得到了正确的答案。我仍然不知道为什么会这样。

水槽

从根本上说,rref算法需要具备判断矩阵元素是否完全为零的能力。在SymPy中,该simplify=True选项指示SymPy首先在算法的相关阶段简化条目。对于符号条目,这是必需的,因为您可以轻松地使符号表达式等于零,但不会自动将其简化为此类x*(x - 1) - x**2 + x该选项默认情况下处于关闭状态,因为通常这样的简化可能会很昂贵,可以通过传入一个比simplify(对于有理函数,请使用cancel不那么通用的简化函数来控制这里的默认设置可能更聪明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我不使用库时,为什么编译器会给我错误“未定义的外部符号”?

来自分类Dev

为什么此Python代码给我错误的答案?

来自分类Dev

为什么BigDecimal.divide()给我错误的答案?

来自分类Dev

为什么当我打印数组内容时,使用awk会给我错误的输出

来自分类Dev

为什么当我调用CreateItemAsync时,Cosmos DB给我一个“输入名称'{'无效”的错误

来自分类Dev

当我想通过C#运行GAMS代码时,Visual Studio为什么会给我错误?

来自分类Dev

当我从“学生班级”内部调用它时,为什么会给我一个错误?

来自分类Dev

当我只想打印一个值时,为什么ghc给我一个解析错误?

来自分类Dev

为什么当我尝试释放矩阵时会显示错误?

来自分类Dev

给我的if语句错误的答案

来自分类Dev

为什么当我请求20时malloc给我8个字节?

来自分类Dev

为什么当我单击按钮时getElementById给我null?

来自分类Dev

当我使用if语句时,为什么程序会给我不同的结果

来自分类Dev

当我使用交换矩阵reboot()时,为什么我的远程主机返回错误代码-1?

来自分类Dev

为什么会出现此错误“ ImportError:dlopen(...):未找到符号”?当我在python上导入我的库时

来自分类Dev

当我在此页面中声明方法时,为什么此代码使我出现“找不到符号”错误?

来自分类Dev

为什么BeautifulSoup给我错误的文字?

来自分类Dev

为什么给我细分错误?

来自分类Dev

为什么给我细分错误?

来自分类Dev

为什么给我细分错误?

来自分类Dev

在 SymPy 中,为什么我的解决方案 (nonlinsolve) 返回错误答案?

来自分类Dev

当我尝试使用OpenProjectAsync打开项目时,为什么msbuild会给我一个“不支持语言” C#”的错误

来自分类Dev

当我将 true 或 false 分配给 bool 类型的向量时,为什么下面的程序会给我错误?

来自分类Dev

为什么我得到错误的除法答案?

来自分类Dev

为什么当我运行ggttest时出现错误?

来自分类Dev

当我扩展ActionBarActivity时,给出了错误。为什么?

来自分类Dev

为什么访问矩阵会给我一个段错误?

来自分类Dev

当我使用 === 而不是 !== 时,为什么更改“if”条件会给出不同的答案?

来自分类Dev

为什么当输入的零钱为 2.2 时,输出显示所需的最小硬币数的正确答案,但当我输入 4.2 时显示错误的输出?

Related 相关文章

  1. 1

    当我不使用库时,为什么编译器会给我错误“未定义的外部符号”?

  2. 2

    为什么此Python代码给我错误的答案?

  3. 3

    为什么BigDecimal.divide()给我错误的答案?

  4. 4

    为什么当我打印数组内容时,使用awk会给我错误的输出

  5. 5

    为什么当我调用CreateItemAsync时,Cosmos DB给我一个“输入名称'{'无效”的错误

  6. 6

    当我想通过C#运行GAMS代码时,Visual Studio为什么会给我错误?

  7. 7

    当我从“学生班级”内部调用它时,为什么会给我一个错误?

  8. 8

    当我只想打印一个值时,为什么ghc给我一个解析错误?

  9. 9

    为什么当我尝试释放矩阵时会显示错误?

  10. 10

    给我的if语句错误的答案

  11. 11

    为什么当我请求20时malloc给我8个字节?

  12. 12

    为什么当我单击按钮时getElementById给我null?

  13. 13

    当我使用if语句时,为什么程序会给我不同的结果

  14. 14

    当我使用交换矩阵reboot()时,为什么我的远程主机返回错误代码-1?

  15. 15

    为什么会出现此错误“ ImportError:dlopen(...):未找到符号”?当我在python上导入我的库时

  16. 16

    当我在此页面中声明方法时,为什么此代码使我出现“找不到符号”错误?

  17. 17

    为什么BeautifulSoup给我错误的文字?

  18. 18

    为什么给我细分错误?

  19. 19

    为什么给我细分错误?

  20. 20

    为什么给我细分错误?

  21. 21

    在 SymPy 中,为什么我的解决方案 (nonlinsolve) 返回错误答案?

  22. 22

    当我尝试使用OpenProjectAsync打开项目时,为什么msbuild会给我一个“不支持语言” C#”的错误

  23. 23

    当我将 true 或 false 分配给 bool 类型的向量时,为什么下面的程序会给我错误?

  24. 24

    为什么我得到错误的除法答案?

  25. 25

    为什么当我运行ggttest时出现错误?

  26. 26

    当我扩展ActionBarActivity时,给出了错误。为什么?

  27. 27

    为什么访问矩阵会给我一个段错误?

  28. 28

    当我使用 === 而不是 !== 时,为什么更改“if”条件会给出不同的答案?

  29. 29

    为什么当输入的零钱为 2.2 时,输出显示所需的最小硬币数的正确答案,但当我输入 4.2 时显示错误的输出?

热门标签

归档