下三角半定矩阵
4个视图(过去30天)
显示旧的评论
如何为一个给定的半定矩阵建立这种形式的稀疏矩阵?我只需要半定矩阵的稀疏下三角
例如半定矩阵Q0:
2 0 1
Q0 = 0 0.2 0
1 0 2
写为:
我
=
[
1
2
3.
3.
];
j
=
[
1
2
3.
1
];
c
=
[
2
0.2
2 -
1);
在哪里
I表示行数
J表示列数
c是属于(i,j)不为零的元素属于半定矩阵的下三角
2的评论
接受的答案
答案(1)
约翰D 'Errico
2020年5月4日
编辑:约翰D 'Errico
2020年5月4日
你只需要下面的三角形元素。半确定性与你最后的要求无关。
一个= sprand(5 5。3);
> >全部(A)
ans =
0.46421 0.83266 0 0.022104 0.18026
0.26627 0 0 0 0
0 0 0 0 0 0
0 0 0 0.92865 0
0 0 0.37763 0.42783 0
>> [Rind,Cind,val] = find(trl (A))
皮=
1
2
5
4
5
Cind =
1
1
3.
4
4
val =
0.46421
0.26627
0.37763
0.92865
0.42783
这就是如何将下三角形提取到一组行和列索引中,以及这些位置上的非零元素。从表面上看,这似乎是你的问题。然而,我的猜测是你真的想从这些值构建稀疏矩阵吗?或者,也许你只是不理解稀疏矩阵已经存在于MATLAB中,并可以这样使用?根本不清楚真正的问题是什么。
不管怎样,如果你想构建一个稀疏的矩阵,那就用那些向量调用稀疏。
Atril =稀疏(皮、Cind val 5 5)
Atril =
0.46421 (1,1)
0.26627 (2, 1)
0.37763 (5,3)
0.92865 (4, 4)
0.42783 (5,4)
> >全部(Atril)
ans =
0.0.464 21 0 0 0 0
0.26627 0 0 0 0
0 0 0 0 0 0
0 0 0 0.92865 0
0 0 0.37763 0.42783 0