【发布时间】:2017-02-14 20:01:27
【问题描述】:
我有一个 nxn 矩阵 C 并使用来自 numpy.linalg 的 inv 取反得到 Cinverse。我的Cmatrix 有顺序元素10**4 但我的Cinverse 矩阵有顺序元素10**12 和更高(不确定这是否正确)。当我做numpyp.dot(C,Cinverse) 时,我没有得到单位矩阵。这是为什么呢?
我有一个向量 x,我将它自身相乘得到一个矩阵。
x=array([ 121.41191662, 74.22830468, 73.23156336, 75.48354975,
79.89580817])
c=np.outer(xvector,xvector)
这是一个 5x5 矩阵。
然后我得到它的倒数
from numpy.linalg import inv
cinverse=inv(c)
那我想看看能不能找回单位矩阵。
identity=np.dot(C00,C00inv)
但是,我没有得到单位矩阵。 cinverse 有非常大的矩阵元素 大约 10**13 或更高,而 c 的矩阵元素大约为 10,000。
【问题讨论】:
-
请更具体。你能告诉我们你的输入和输出吗?另外,您使用的代码到底是什么?
-
你能提供一些带有随机矩阵的示例代码来展示你想要做什么吗?这听起来不对 - 当您说具有 10**4 阶的元素时,这是否意味着该元素的数量就是数字的大小,即 10000ish?啊,胡安帕,打败我;)
-
“我没有得到单位矩阵” - 它与单位矩阵的距离如何?由于舍入误差,您不应该期望一个正好是 1 和 0 的矩阵。
-
更具体地说,我的矩阵元素的阶数为 10**4。例如,8000,10000,7000....等。我用一些代码编辑了原始帖子。
-
@RexFuzzle 为了清楚起见,我已经编辑了原始帖子。是的,例如,它是一个 5x5 矩阵,元素的大小约为 10000ish。
标签: python numpy matrix linear-algebra matrix-inverse