当我乘以 3 个矩阵时,Wolfram 和 Numpy 之间的结果不同?

问题描述 投票:0回答:1

首先,我确信 Wolfram 的答案是正确的,因为两个三明治矩阵是特征向量矩阵,所以答案必须采用 eigne 基的形式。

所以,问题是,我在Python代码中做错了什么?是5的平方根吗?有没有办法正确书写?

Wolfram(正确答案):

Python 代码(错误答案):

在python中,我尝试了另外三个矩阵,它们不包含任何带有平方根的元素,它给出了正确的答案,所以我认为我的问题是如何在矩阵中正确编写它们?

numpy linear-algebra wolfram-mathematica matrix-multiplication eigenvector
1个回答
0
投票

Wolfram 进行符号计算。 Numpy 数值。

如果你想比较可比的东西,你也需要在Python端使用符号计算

import sympy
A = sympy.matrices.Matrix([[2,2],[1+sympy.sqrt(5), 1-sympy.sqrt(5)]])
B = sympy.matrices.Matrix([[0,1],[1,1]])
C = A**-1

sympy.pretty_print(sympy.simplify(C @ B @ A))

⎡1   √5        ⎤
⎢─ + ──    0   ⎥
⎢2   2         ⎥
⎢              ⎥
⎢        1   √5⎥
⎢  0     ─ - ──⎥
⎣        2   2 ⎦
© www.soinside.com 2019 - 2024. All rights reserved.