svds
일부 특이값과 특이 벡터
구문
설명
는 하나 이상의 이름-값 쌍의 인수로 추가 옵션을 지정합니다. 예를 들어, s = svds(A,k,sigma,Name,Value)svds(A,k,sigma,'Tolerance',1e-3)은 알고리즘에 대한 수렴 허용오차를 조정합니다.
예제
입력 인수
이름-값 인수
출력 인수
팁
svdsketch는svds에 어떤 랭크를 지정해야 할지 미리 알지 못하지만 SVD의 근사가 충족해야 하는 허용오차는 알고 있는 경우에 유용합니다.svds는 실행 전체에 걸쳐 재현될 수 있도록 프라이빗 난수 스트림을 사용하여 디폴트 시작 벡터를 생성합니다.svds를 호출하기 전에rng를 사용하여 난수 생성기 상태를 설정해도 출력값에는 영향을 주지 않습니다.작고 조밀한 행렬의 특이값 몇 개를 구하고자 한다면
svds를 사용하는 것이 그렇게 효율적인 방법은 아닙니다. 이러한 문제에는svd(full(A))를 사용하는 편이 더 빠를 수도 있습니다. 예를 들어, 500×500 행렬에서 특이값 세 개를 구하는 것은 비교적 작은 문제이며svd를 사용하여 손쉽게 처리할 수 있습니다.svds가 주어진 행렬에 대해 수렴하지 못하면'SubspaceDimension'의 값을 증가시켜 크릴로프 부분공간 크기를 늘려 보십시오. 부차적인 옵션으로 최대 반복 횟수('MaxIterations')와 수렴 허용오차('Tolerance')를 조정해도 수렴 동작에 도움이 될 수 있습니다.특히 행렬에서 특이값이 반복되는 경우에
k를 늘리면 성능이 개선될 수도 있습니다.
참고 문헌
[1] Baglama, J. and L. Reichel, “Augmented Implicitly Restarted Lanczos Bidiagonalization Methods.” SIAM Journal on Scientific Computing. Vol. 27, 2005, pp. 19–42.
[2] Larsen, R. M. “Lanczos Bidiagonalization with partial reorthogonalization.” Dept. of Computer Science, Aarhus University. DAIMI PB-357, 1998.

