행렬이 양의 값인지 아닌지를 확인하고 싶습니다. 나는 그것을 matlab을 사용하여 확인하는 방법에 대한 인터넷 검색했다. 나는 확인을 위해 chol
방법을 사용하는 것에 관심이있다 (eigenvalues를 검사하지 않음). 아래 코드는 다음과 같습니다긍정적 인 명확한 행렬 결정
[~, r] = chol(A);
r == 0 && rank(A) == size(A,1)
나는 A
명확한 긍정적없는 경우, 다음 r
긍정적 인 것을 알고있다. 그러나 체크 포인트는 무엇입니까 rank(A)==size(A,1)
?
[~, r] = chol(A);
r == 0 % check if r>0
A
긍정적 인 반 명확한 행렬 궁금, r==0
: 그냥 다음과 같은 코드를 사용하는 경우가 여전히 작동 것으로 보인다. 그러나 위의 코드를 사용하여 A=[1,0;0,0]
을 예로 사용하면 r = 2 > 0
입니다. 이것은 내가 계급을 점검 할 때 불편 함을 느낀다.
이 코드는 here입니다.
, 나는 단순히 R가 0이 아니라고 생각 . – marcoresk
랭크가 부족한 행렬은 정의에 의해 정의가 명확하지 않습니다. 그래서 당신의 예제'A'는'r> 0'을줍니다 - 긍정 * semi * -deffinite는 단순히'chol'에 의해 특별한 것으로 간주되지 않습니다. 명백한 서열 검사가 불필요하다는 것은 맞습니다. –