【问题标题】:Make a matrix full-ranked?制作一个全排序的矩阵?
【发布时间】:2012-05-16 23:19:06
【问题描述】:

如何将常规矩阵转换为 R 中的全排序矩阵?有没有可用的方法?

我有一个可能具有线性相关列的矩阵,我需要 将它传递给一个函数,该函数需要它的参数是一个矩阵 满级。由于线性相关列不感兴趣 无论如何,我正在寻找一个删除此类列的函数,直到 矩阵是满秩的。当然可能有几种解决方案,但是 他们中的任何一个都应该没问题。

现在我只是逐列构建矩阵 如果结果矩阵仍然是满秩,则添加一列,但它 感觉应该有更好的方法来做到这一点。

【问题讨论】:

  • 您确实应该提供更多详细信息。例如,如果您总是返回一个单位矩阵,那么您总是将“常规”矩阵转换为一个完整的排名矩阵。
  • 你的意思是你有一个独立的行(或列)不是正方形的矩阵,并且你想创建足够多的额外独立行(或列)来使它成为一个正方形,满秩, 矩阵?
  • 请定义“正则矩阵”。更好的是,让我们知道您要解决的问题是什么。更改矩阵元素以强制线性独立不太可能是您想要做的。
  • 更新有帮助。所以现在有两个问题。首先,如何确定矩阵的等级以及如果它不是全等级的,如何识别违规行。这需要一堆我不是专家的线性代数(duh)。其次,一旦定义了代数算法,如何在 R 中实现它们。第 2 部分相对容易。
  • 既然你不关心删除了哪些依赖列,那么问题来了:你想要一个具有相同列空间的矩阵,还是要求呈现的列实际上来自输入矩阵?

标签: r matrix


【解决方案1】:

另一种方法是最小化|y - Ax|2 + c |x|2, 通过将单位矩阵附加到 A 和零到 y。 参数 c (a.k.a. λ) 权衡拟合 y - Ax,并保持 |x|小的。 然后用 x 的 r 个最大分量进行第二次拟合, r = rank(A)(或任何你喜欢的数字)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2018-04-09
    • 2019-02-20
    • 2022-12-22
    • 1970-01-01
    相关资源
    最近更新 更多