- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试用 Python 估计 log(det(AAT)+1) 的平均值。我的简单代码工作正常,直到我得到 17×17 矩阵,此时它给了我一个数学错误。这是代码:
iter = 10000
for n in xrange(1,20):
h = n
dets = []
for _ in xrange(iter):
A = (np.random.randint(2, size=(h,n)))*2-1
detA_Atranspose = np.linalg.det(np.dot(A, A.transpose()))
try:
logdetA_Atranspose = math.log(detA_Atranspose+1,2)
except ValueError:
print "Ooops!", n,detA_Atranspose
dets.append(logdetA_Atranspose)
print np.mean(dets)
A 应该是一个元素为 -1 或 1 的矩阵。
我做错了什么,如何解决? 17 有什么特别之处?
最佳答案
det(AA^T) 对于一些随机 As 可以简单地为 0。该函数将失败,因为计算 log(0) 无效。
请注意,理论上 det(AA^T) 不能为负,因为 AA^T 是 positive semi-definite matrix (这意味着所有特征值都是非负的,并且意味着 det >= 0)。
您可能应该使用 numpy.linalg.slogdet()
并计算 slogdet(1+A.dot(A.T))
来自其documentation :
“计算数组行列式的符号和(自然)对数。
如果一个数组有一个非常小或非常大的行列式,那么对 det 的调用可能会溢出或下溢。这个例程对于此类问题更加稳健,因为它计算行列式的对数而不是而不是行列式本身。”
关于python - python 中的数学错误计算 log(det(AA^T)+1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35825596/
我正在从 Alvin Alexander 的 网站学习功能点分析。 http://alvinalexander.com/FunctionPoints/在他的示例中,他正在从 GUI 屏幕计算 DET,
我正在从 Alvin Alexander 的 网站学习功能点分析。 http://alvinalexander.com/FunctionPoints/在他的示例中,他正在从 GUI 屏幕计算 DET,
iex(1)> :dets.open_file(:storage, [{:type, :set}]) {:ok, :storage} 当我尝试使用其他参数时,关于 Erlang 文
所以我一直在使用 ETS - 效果很好。但是,我将它用作路由数据的缓存 - 在模块加载时加载,并在进行更改时保存(读取的次数远远多于写入的次数)。 我认为 DETS 会让事情变得更加干净 - 我不必担
numpy.linalg.det 的文档指出 The determinant is computed via LU factorization using the LAPACK routine z/d
我所需要的只是 Erlang 中的一个大型持久查找表,尽管我需要一个明确的答案,但 dets 似乎就是这样: 表中二进制文件的总大小有多大。 每个条目可以有多大 第一个问题的答案小于100G怎么办 最
谁知道Numpy为什么返回“-2.0000000000000004”而不是“-2” >>> M = [[1,2],[3,4]] >>> numpy.linalg.det(M) -2.000000000
DETS Erlang 文档中描述了一个选项 ram_file open_file(name, args) {ram_file, boolean()} - Whether the table is t
检查小方阵(<16*16 元素)是否奇异(不可逆,det = 0)的最快算法是什么(链接到 C 或 C++ 示例会很酷)? 最佳答案 最好的方法是计算 condition number通过 SVD 并
我正在寻找等效于 Erlangs DETS 的持久键/值存储, 除了没有 DETS 2G 表大小限制。 最佳答案 Berkeley DB Java Edition (使用 Clojure 包装器 he
我得到了一个非常大的矩阵(我无法更改矩阵的值),我需要计算(协方差)矩阵的逆矩阵。 有时我会收到错误提示 Matrix is close to singular or badly scaled.
我正在尝试求解类似 Ax=0 的齐次线性方程组。这是一个示例矩阵,为简单起见,它已经被简化: 1 2 | 0 3 6 | 0 我希望得到的解决方案至少是[ 2, -1 ]。但根本的解决方案是 [2C;
描述(这是一个 hwk 问题): 我不知道从哪里开始。我计划使用拉普拉斯展开式,但我不确定如何将其应用于 nxn 矩阵。任何帮助,将不胜感激。 注意:我已经有一个为 nxn 矩阵生成随机矩阵的函数。计
我想写 M.det() 而不是 numpy.linalg.det(M),所以我这样做了: numpy.matrix.det = numpy.linalg.det 它奏效了。 对这个程序有什么要说的吗?
我正在尝试用 Python 估计 log(det(AAT)+1) 的平均值。我的简单代码工作正常,直到我得到 17×17 矩阵,此时它给了我一个数学错误。这是代码: iter = 10000 fo
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我基本上想将名为“EKTE9”的文本文件第一行中的 unix 时间值转换为迄今为止的值。我认为使用日期时间库是可行的方法,但我不知道如何在我的代码中实现它。一些答案将不胜感激。 import matp
我是一名优秀的程序员,十分优秀!