下三角半定矩阵
8次浏览(过去30天)
显示旧的注释
对于一个给定的半定矩阵,如何建立这种形式的稀疏矩阵?我只需要半定矩阵的稀疏下三角
例如半定矩阵Q0:
2 0 -1
Q0 = 0
-1 0 2
写为:
我
=
[
1
2
3.
3.
];
j
=
[
1
2
3.
1
];
c
=
[
2
0.2
2 -
1);
在哪里
I表示行数
J表示列数
c是(i,j)中不为零的元素,属于半定矩阵的下三角
更多答案(1)
约翰D 'Errico
2020年5月4日
编辑:约翰D 'Errico
2020年5月4日
你只需要下面的三角形元素。半确定性与你最后的要求无关。
A =弹簧(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.92865 0
0 0 0.37763 0.42783 0
>>[皮,Cind,val] = find(tril(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 = sparse(Rind,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.46421 0 0 0 0
0.26627 0 0 0 0
0 0 0 0 0
0 0 0 0.92865 0
0 0 0.37763 0.42783 0