python - 如何从python中的随机数创建非奇异对称矩阵?
问题描述
我想使用随机实数创建一个非奇异对称矩阵。
例如,我想3*3
使用随机生成的实数创建一个非奇异对称矩阵
number_list= [a,b,c,d,e,f]
我尝试了以下方法,但有时我会得到奇异矩阵。
upper = tfp.math.fill_triangular(number_list, upper=True)
symm= 0.5 * (upper + tf.transpose(upper, perm=[0,2,1]))
final =tf.matmul(symm, tf.transpose(symm, perm=[0,2,1]))
解决方案
tfp.bijectors.FillScaleTriL()(number_list)
将从三角形大小的数字列表中为您创建一个 psd cholesky 因子。
tfb.CholeskyOuterProduct()
将制作一个协方差矩阵。组合可以写成bij = tfb.CholeskyOuterProduct()(tfb.FillScaleTriL()); bij(number_list)
。
推荐阅读
- neo4j - 仅对特定用户可用的边(关系)
- python - 与Matlab比较时,python中的矩阵乘以向量是不同的
- php - 如何使用 GD 截取页面?
- python-3.x - 如何在 help() 中搜索未知函数?
- sql - 根据前一个日期计算百分比的查询
- python - 在 Cython 中使用 move 方法时出现编译错误
- python - 在 super() 上使用 **kwargs 会给我属性错误
- angular - TypeError:无法读取未定义的属性“类型”
- kotlin - 如何将 Kotlin 范围内的所有整数值相乘?
- ios - 将数据从原生 iOS 应用程序传递到 Unity 应用程序