gpt4 book ai didi

matrix - 在 J 中计算投影矩阵

转载 作者:行者123 更新时间:2023-12-01 01:48:25 24 4
gpt4 key购买 nike

我正在尝试计算 J 中的投影矩阵。也就是说,给定矩阵 A ,我想计算 A(A'A)^(-1)A' ,其中 A'A 的转置.

我认为正确的方法是注意我正在对 A 进行三个操作。并将结果相乘。我正在寻找类似 (f x) * (g x) * (h x) 的东西如果 f , g , 和 h是动词。 (考虑到 +/ . * 是矩阵乘法。)是否有 J 构造或习语可以简洁地做到这一点?还是在 J 中有更好的方法来做到这一点?

到目前为止我的粗略工作:

mp =: +/ . *
ATA =: |: mp ]
right_proj =: (%.@ATA) mp |: NB. (A'A)^(-1)A factor in product.
proj_mat =: ] mp right_proj

最佳答案

我认为您的解决方案非常好。我的直接方法将非常相似:

mp=: +/ .*        NB. matrix multiplication
XtY=: mp~ |: NB. sum of cross products (monadic is XtX)
proj_mat=: mp %.@XtY mp |:

然而,使用二元 %. 的替代方案是可能的这可能会在数值上产生更好的结果。它依赖于 y %. X 的事实相当于 X'X^(-1)X'y .如果我们定义一个动词来创建单位矩阵,我们可以使用 %.获得大部分方法 - 只需要预先乘以 X。
I=: =@i.@#                 NB. identity matrix
proj_mat=: mp I %. ] NB. projection matrix

结果与第一种方法并不完全相同,但我认为它们将更类似于 LAPACK 解决方案。

关于matrix - 在 J 中计算投影矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com