이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
orth
행렬의 치역에 대한 정규 직교 기저
설명
예제
완전 랭크 행렬의 기저
완전 랭크 행렬의 치역에 대한 정규 직교 기저 벡터를 계산하고 확인합니다.
행렬을 정의하고 랭크를 구합니다.
A = [1 0 1;-1 -2 0; 0 1 -1]; r = rank(A)
r = 3
A
는 완전 랭크의 정사각 행렬이므로, orth(A)
에서 계산된 정규 직교 기저는 특이값 분해 [U,S] = svd(A,"econ")
에서 계산된 행렬 U
와 일치합니다. 그 이유는 A
의 특이값이 모두 0이 아니기 때문입니다.
orth
를 사용하여 A
의 치역에 대한 정규 직교 기저를 계산합니다.
Q = orth(A)
Q = 3×3
-0.1200 -0.8097 0.5744
0.9018 0.1531 0.4042
-0.4153 0.5665 0.7118
Q
의 열 개수는 rank(A)
와 같습니다. A
가 완전 랭크이므로, Q
와 A
는 크기가 같습니다.
기저 Q
가 합리적인 오차 범위 내에서 정규 직교한다는 사실을 확인합니다.
E = norm(eye(r)-Q'*Q,"fro")
E = 9.2306e-16
오차가 대략 eps
정도입니다.
랭크 부족 행렬의 기저
랭크 부족 행렬의 치역에 대한 정규 직교 기저 벡터를 계산하고 확인합니다.
특이 행렬을 정의하고 랭크를 구합니다.
A = [1 0 1; 0 1 0; 1 0 1]; r = rank(A)
r = 2
A
가 랭크 부족이므로, orth(A)
로 계산한 정규 직교 기저는 특이값 분해 [U,S] = svd(A,"econ")
에서 계산된 행렬 U
의 처음 r = 2
열들과만 일치합니다. 그 이유는 A
의 특이값이 모두 0이 아닌 것은 아니기 때문입니다.
orth
를 사용하여 A
의 치역에 대한 정규 직교 기저를 계산합니다.
Q = orth(A)
Q = 3×2
-0.7071 -0.0000
0 1.0000
-0.7071 0.0000
A
가 랭크 부족이므로, Q
에는 A
보다 하나 적은 수의 열이 포함됩니다.
기저 벡터에 대한 허용오차 지정하기
행렬의 특이값이 작은 경우, 0으로 처리되는 특이값을 변경하도록 허용오차를 지정합니다.
7×7 힐베르트 행렬을 생성합니다. 이 행렬은 완전 랭크이지만 일부 작은 특이값을 가집니다.
H = hilb(7)
H = 7×7
1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429
0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250
0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111
0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000
0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 0.0909
0.1667 0.1429 0.1250 0.1111 0.1000 0.0909 0.0833
0.1429 0.1250 0.1111 0.1000 0.0909 0.0833 0.0769
H
의 치역에 대한 정규 직교 기저를 계산합니다. H
가 완전 랭크이므로, Q
와 H
는 크기가 같습니다.
Q = orth(H)
Q = 7×7
-0.7332 0.6232 0.2608 -0.0752 0.0160 -0.0025 0.0002
-0.4364 -0.1631 -0.6706 0.5268 -0.2279 0.0618 -0.0098
-0.3198 -0.3215 -0.2953 -0.4257 0.6288 -0.3487 0.0952
-0.2549 -0.3574 0.0230 -0.4617 -0.2004 0.6447 -0.3713
-0.2128 -0.3571 0.2337 -0.1712 -0.4970 -0.1744 0.6825
-0.1831 -0.3446 0.3679 0.1827 -0.1849 -0.5436 -0.5910
-0.1609 -0.3281 0.4523 0.5098 0.4808 0.3647 0.1944
이제 정규 직교 기저 벡터를 다시 계산하되 허용오차를 1e-4
로 지정합니다. 이 허용오차로 인해 orth
가 3개의 특이값을 0으로 처리하므로 정규 직교 기저는 열을 4개만 갖습니다.
Qtol = orth(H,1e-4)
Qtol = 7×4
-0.7332 0.6232 0.2608 -0.0752
-0.4364 -0.1631 -0.6706 0.5268
-0.3198 -0.3215 -0.2953 -0.4257
-0.2549 -0.3574 0.0230 -0.4617
-0.2128 -0.3571 0.2337 -0.1712
-0.1831 -0.3446 0.3679 0.1827
-0.1609 -0.3281 0.4523 0.5098
입력 인수
A
— 입력 행렬
행렬
입력 행렬입니다.
데이터형: single
| double
복소수 지원 여부: 예
tol
— 특이값 허용오차
스칼라
특이값 허용오차로, 실수 숫자형 스칼라로 지정됩니다. 허용오차보다 작은 A
의 특이값은 0으로 처리되어 orth
가 반환하는 열 공간 벡터의 개수에 영향을 줍니다. 디폴트 허용오차는 max(size(A)) * eps(norm(A))
입니다.
세부 정보
치역
행렬 A
의 열 공간, 즉 치역은 A
에 있는 열들의 모든 선형 결합의 모음입니다. 선형 방정식 A*x = b
의 해인 임의의 벡터 b
는 A
에 있는 열들의 선형 결합으로도 나타낼 수 있기 때문에 벡터 b는 A
의 치역에 포함됩니다.
랭크
행렬의 rank
는 치역의 차원과 동일하고 0이 아닌 특이값의 개수와 같습니다.
알고리즘
A
의 치역에 대한 정규 직교 기저는 특이값 분해 [U,S] = svd(A,"econ")
의 U
에서 얻습니다. r = rank(A,tol)
의 경우, U
의 처음 r
개 열은 A
의 치역에 대한 정규 직교 기저를 형성합니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
생성된 코드는 MATLAB®이 반환하는 것과 다른 기저를 반환할 수 있습니다.
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨R2022a: 허용오차 지정
tol
인수를 사용하여 A
의 치역에 대한 정규 직교 기저를 형성하는 데 사용되는 특이값에 대한 허용오차 임계값을 지정합니다. 허용오차보다 작은 입력 행렬의 특이값은 0으로 처리됩니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)