【问题标题】:How to create non-singular symmetric matrix from random numbers in python?如何从python中的随机数创建非奇异对称矩阵?
【发布时间】:2021-04-25 03:03:12
【问题描述】:

我想使用随机实数创建一个非奇异对称矩阵。

例如,我想使用随机生成的实数创建一个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]))

【问题讨论】:

    标签: python tensorflow tensorflow-probability


    【解决方案1】:

    tfp.bijectors.FillScaleTriL()(number_list) 将从三角形大小的数字列表中为您创建一个 psd cholesky 因子。 tfb.CholeskyOuterProduct() 将创建一个协方差矩阵。 组合可以写成bij = tfb.CholeskyOuterProduct()(tfb.FillScaleTriL()); bij(number_list)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多