나는 아래와 같은 조건의 수를 계산하기위한 MATLAB의 최적화를하고있는 중이 야 :어떻게 조건 번호를 더 빨리 계산할 수 있습니까?
s = svd(H, 0);
cond = max(s) ./ min(s);
큰 H
행렬 특히 매우 시간이 소모됩니다. 나는 근사하지만 빠른 것을 찾고있다.
나는 아래와 같은 조건의 수를 계산하기위한 MATLAB의 최적화를하고있는 중이 야 :어떻게 조건 번호를 더 빨리 계산할 수 있습니까?
s = svd(H, 0);
cond = max(s) ./ min(s);
큰 H
행렬 특히 매우 시간이 소모됩니다. 나는 근사하지만 빠른 것을 찾고있다.
당신은 모든 특이 값을 계산하고 그것들 중 2 개를 제외한 모든 값을 버립니다. 대신 다음을 시도해보십시오.
largestS = svds(H,1); %largest singular value
smallestS = svds(H,1,0); %smallest singular value
cond = largestS/smallestS
참고로,'cond'는 MATLAB의 내장 함수입니다. 다른 변수 이름을 사용하는 것이 좋습니다. – Doresoom
cond 내장 함수가 추가 조건 검사와 동일한 루틴을 수행하므로 더 많은 시간이 걸립니다. – hmesgarnejad
그리고 svds (H, 1) 및 svds (H, 1,0)는 조건 번호를 계산하는 데 훨씬 많은 시간이 걸립니다. – hmesgarnejad
'H'의 크기는 무엇입니까? –
은'cond (H)'가 더 빠릅니까? 그것이 내장 된 함수입니다 ... http://www.mathworks.com/help/symbolic/cond.html을 참조하십시오. – Floris
H의 크기는 시스템에 따라 다르지만 현재 시스템에서 나는 (300,300) 드문 드문하지만 반 대각선이 아닙니다. – hmesgarnejad