由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个简单的matrix变换的问题,包子答谢
相关主题
[合集] 问个及其初级问题。c++How does matlab optimization deal with singular matrix?
转行做data warehouse的问个学习大数据的问题matlab能解决如下问题吗?
帮忙!!! 需要比较两文件, 有包子相送 (转载)opinions on boost.multiarray?
[bssd]ANN有用Old problem, but interesting.
一个矩阵分解的问题(对称实矩阵)c++ covariant type(受不了C++啦!!!)
关于Singular Value Decomposition师傅们都出来看看吧,我也问个C++返回值问题。
请问:稀疏矩阵运算有什么好的C++库?C++ negative int division and modulo
[求教]请各位推荐解大型矩阵的子程序gnu c++ 自带的库能解矩阵方程吗?
相关话题的讨论汇总
话题: sigma话题: svd话题: singular话题: cholcov
进入Programming版参与讨论
1 (共1页)
N******n
发帖数: 3003
1
有一个symmetric matrix, 我是平方得来的,应当是positive definite: 看了
eigvalue 都是正的,但是在matlab上用cholcov: Cholesky-like covariance
decomposition
出不来:
[T,err] = cholcov(sigma)
T是空的。不知道为什么,谢谢
A=
sigma =
0.4382 -0.3990 -1.2396 -1.0880 0.9084 1.5463 -0.6721 0.
4587
-0.3990 0.5448 1.3429 1.1029 -1.0068 -1.7077 0.6971 -0.
4047
-1.2396 1.3429 15.4717 10.6047 -10.6348 -18.3169 6.8657 -6.
0160
-1.0880 1.1029 10.6047 7.5741 -7.2716 -12.7805 4.8757 -4.
0894
0.9084 -1.0068 -10.6348 -7.2716 7.4749 12.4427 -4.6320 4.
0857
1.5463 -1.7077 -18.3169 -12.7805 12.4427 22.0718 -8.3375 7.
0495
-0.6721 0.6971 6.8657 4.8757 -4.6320 -8.3375 3.2289 -2.
6939
0.4587 -0.4047 -6.0160 -4.0894 4.0857 7.0495 -2.6939 2.
5615
k**********g
发帖数: 989
2
Sorry I don't have Stat toolbox.
But just FYI, the singular values are
57.6725 0.8147 0.4483 0.2634 0.1114 0.0259 0.0232 0.
0065
Output from SVD (singular value decomposition)
input =
0.4382 -0.3990 -1.2396 -1.0880 0.9084 1.5463 -0.6721 0.4587
-0.3990 0.5448 1.3429 1.1029 -1.0068 -1.7077 0.6971 -0.4047
-1.2396 1.3429 15.4717 10.6047 -10.6348 -18.3169 6.8657 -6.0160
-1.0880 1.1029 10.6047 7.5741 -7.2716 -12.7805 4.8757 -4.0894
0.9084 -1.0068 -10.6348 -7.2716 7.4749 12.4427 -4.6320 4.0857
1.5463 -1.7077 -18.3169 -12.7805 12.4427 22.0718 -8.3375 7.0495
-0.6721 0.6971 6.8657 4.8757 -4.6320 -8.3375 3.2289 -2.6939
0.4587 -0.4047 -6.0160 -4.0894 4.0857 7.0495 -2.6939 2.5615
>> [u,s,v] = svd(input)
u =
-0.0450 0.5590 -0.1582 0.3952 0.2121 -0.5579 -0.1915 -0.3338
0.0483 -0.6386 0.2458 0.1529 0.6148 -0.2839 0.0907 -0.1983
0.5164 0.2526 0.2460 0.0587 0.1175 0.4800 0.2324 -0.5544
0.3591 -0.3058 -0.1123 -0.1755 -0.6071 -0.4695 0.0931 -0.3694
-0.3539 -0.1029 -0.7188 -0.1302 0.1516 0.1806 0.3798 -0.3615
-0.6168 0.0347 0.4684 -0.3296 -0.1332 0.0250 -0.2064 -0.4789
0.2329 -0.1622 -0.3239 -0.2108 0.1572 0.2005 -0.8241 -0.1616
-0.2003 -0.2903 -0.0212 0.7850 -0.3596 0.2896 -0.1628 -0.1389
s =
57.6725 0 0 0 0 0 0 0
0 0.8147 0 0 0 0 0 0
0 0 0.4483 0 0 0 0 0
0 0 0 0.2634 0 0 0 0
0 0 0 0 0.1114 0 0 0
0 0 0 0 0 0.0259 0 0
0 0 0 0 0 0 0.0232 0
0 0 0 0 0 0 0 0.0065
v =
-0.0450 0.5590 -0.1582 0.3952 0.2121 -0.5579 -0.1915 -0.3338
0.0483 -0.6386 0.2458 0.1529 0.6148 -0.2839 0.0907 -0.1983
0.5164 0.2526 0.2460 0.0587 0.1175 0.4800 0.2324 -0.5544
0.3591 -0.3058 -0.1123 -0.1755 -0.6071 -0.4695 0.0931 -0.3694
-0.3539 -0.1029 -0.7188 -0.1302 0.1516 0.1806 0.3798 -0.3615
-0.6168 0.0347 0.4684 -0.3296 -0.1332 0.0250 -0.2064 -0.4789
0.2329 -0.1622 -0.3239 -0.2108 0.1572 0.2005 -0.8241 -0.1616
-0.2003 -0.2903 -0.0212 0.7850 -0.3596 0.2896 -0.1628 -0.1389
r*g
发帖数: 3159
3
可能是sigma格式有问题。试一下简单命令isnumeric(sigma),size(sigma)看对不对。
[T,err] = cholcov(sigma)
T =
0.6620 -0.6027 -1.8726 -1.6436 1.3723 2.3359 -1.0153 0.
6929
0 0.4260 0.5028 0.2634 -0.4217 -0.7036 0.1998 0.
0304
0 0 3.4223 2.1607 -2.2947 -3.9707 1.4212 -1.
3832
0 0 0 0.3673 0.1441 -0.4809 0.2273 0.
0819
0 0 0 0 0.3574 -0.2842 0.2073 -0.
1066
0 0 0 0 0 0.2050 -0.0669 -0.
1504
0 0 0 0 0 0 0.1977 -0.
1880
0 0 0 0 0 0 0 0.
3019
err =
0

0.

【在 N******n 的大作中提到】
: 有一个symmetric matrix, 我是平方得来的,应当是positive definite: 看了
: eigvalue 都是正的,但是在matlab上用cholcov: Cholesky-like covariance
: decomposition
: 出不来:
: [T,err] = cholcov(sigma)
: T是空的。不知道为什么,谢谢
: A=
: sigma =
: 0.4382 -0.3990 -1.2396 -1.0880 0.9084 1.5463 -0.6721 0.
: 4587

N******n
发帖数: 3003
4
tol = 10*eps(max(abs(diag(Sigma))));
if (n == m) && all(all(abs(Sigma - Sigma') < tol))
好像是matlab里面的设置有问题,上面是检查symmetric matrix的条件:里面的tol太
低,我把他乘以1000,后就能通过了。
N******n
发帖数: 3003
5
谢谢

0.
0.
1.
0.

【在 r*g 的大作中提到】
: 可能是sigma格式有问题。试一下简单命令isnumeric(sigma),size(sigma)看对不对。
: [T,err] = cholcov(sigma)
: T =
: 0.6620 -0.6027 -1.8726 -1.6436 1.3723 2.3359 -1.0153 0.
: 6929
: 0 0.4260 0.5028 0.2634 -0.4217 -0.7036 0.1998 0.
: 0304
: 0 0 3.4223 2.1607 -2.2947 -3.9707 1.4212 -1.
: 3832
: 0 0 0 0.3673 0.1441 -0.4809 0.2273 0.

N******n
发帖数: 3003
6
thank you

0.

【在 k**********g 的大作中提到】
: Sorry I don't have Stat toolbox.
: But just FYI, the singular values are
: 57.6725 0.8147 0.4483 0.2634 0.1114 0.0259 0.0232 0.
: 0065
: Output from SVD (singular value decomposition)
: input =
: 0.4382 -0.3990 -1.2396 -1.0880 0.9084 1.5463 -0.6721 0.4587
: -0.3990 0.5448 1.3429 1.1029 -1.0068 -1.7077 0.6971 -0.4047
: -1.2396 1.3429 15.4717 10.6047 -10.6348 -18.3169 6.8657 -6.0160
: -1.0880 1.1029 10.6047 7.5741 -7.2716 -12.7805 4.8757 -4.0894

g****t
发帖数: 31659
7
分解之前,做一下(A A')/2.就可以无视这些条件了吧

【在 N******n 的大作中提到】
: tol = 10*eps(max(abs(diag(Sigma))));
: if (n == m) && all(all(abs(Sigma - Sigma') < tol))
: 好像是matlab里面的设置有问题,上面是检查symmetric matrix的条件:里面的tol太
: 低,我把他乘以1000,后就能通过了。

N******n
发帖数: 3003
8
这里的A代表啥? 谢谢

【在 g****t 的大作中提到】
: 分解之前,做一下(A A')/2.就可以无视这些条件了吧
k**********g
发帖数: 989
9

sigma
( sigma + sigma ' ) / 2
貌似加号给 mitbbs editor 吃掉了。

【在 N******n 的大作中提到】
: 这里的A代表啥? 谢谢
k**********g
发帖数: 989
10

是 single 吗?可以转 double precision 试试。

【在 N******n 的大作中提到】
: tol = 10*eps(max(abs(diag(Sigma))));
: if (n == m) && all(all(abs(Sigma - Sigma') < tol))
: 好像是matlab里面的设置有问题,上面是检查symmetric matrix的条件:里面的tol太
: 低,我把他乘以1000,后就能通过了。

1 (共1页)
进入Programming版参与讨论
相关主题
gnu c++ 自带的库能解矩阵方程吗?一个矩阵分解的问题(对称实矩阵)
Matlab 问题有偿解答关于Singular Value Decomposition
包子求助matlab编程问题请问:稀疏矩阵运算有什么好的C++库?
a MatLab question[求教]请各位推荐解大型矩阵的子程序
[合集] 问个及其初级问题。c++How does matlab optimization deal with singular matrix?
转行做data warehouse的问个学习大数据的问题matlab能解决如下问题吗?
帮忙!!! 需要比较两文件, 有包子相送 (转载)opinions on boost.multiarray?
[bssd]ANN有用Old problem, but interesting.
相关话题的讨论汇总
话题: sigma话题: svd话题: singular话题: cholcov