주요 콘텐츠

orth

R2026b

기호 행렬의 치역에 대한 정규 직교 기저

설명

orth(A)는 A의 치역에 대한 정규 직교 기저를 계산합니다.

예제

orth(A,"real")은 직교화 과정에서 실수형 스칼라 곱을 사용하여 정규 직교 기저를 계산합니다.

예제

orth(A,"skipnormalization")은 정규화되지 않은 직교 기저를 계산합니다. 이 경우 B의 열을 구성하는 벡터의 길이가 반드시 1일 필요는 없습니다.

예제

orth(A,"real","skipnormalization")은 직교화 과정에서 실수형 스칼라 곱을 사용하여 정규화되지 않은 직교 기저를 계산합니다.

예제

예제

정규 직교 기저 계산하기

다음 행렬의 치역에 대한 정규 직교 기저를 계산합니다. 이러한 숫자는 기호 객체가 아니므로 부동소수점 결과를 얻게 됩니다.

A = [2 -3 -1; 1 1 -1; 0 1 -1];
B = orth(A)
B =
   -0.9859   -0.1195    0.1168
    0.0290   -0.8108   -0.5846
    0.1646   -0.5729    0.8029

이번에는 이 행렬을 기호 객체로 변환하고 정규 직교 기저를 계산합니다.

A = sym([2 -3 -1; 1 1 -1; 0 1 -1]);
B = orth(A)
B =
[ (2*5^(1/2))/5, -6^(1/2)/6, -(2^(1/2)*15^(1/2))/30]
[     5^(1/2)/5,  6^(1/2)/3,  (2^(1/2)*15^(1/2))/15]
[             0,  6^(1/2)/6,  -(2^(1/2)*15^(1/2))/6]

double을 사용하여 이 결과를 배정밀도 수치 형식으로 변환할 수 있습니다. 결과로 반환되는 행렬은 MATLAB® orth 함수가 반환하는 행렬과 다릅니다. 이 함수들이 여러 다른 버전의 그람-슈미트(Gram-Schmidt) 직교화 알고리즘을 사용하기 때문입니다.

double(B)
ans =
    0.8944   -0.4082   -0.1826
    0.4472    0.8165    0.3651
         0    0.4082   -0.9129

B'*B = I를 확인합니다. 여기서 I는 단위 행렬입니다.

B'*B
ans =
[ 1, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]

이제 B의 각 열의 2-노름이 1인지 확인합니다.

norm(B(:,1))
norm(B(:,2))
norm(B(:,3))
ans =
1
 
ans =
1
 
ans =
1

실수 정규 직교 기저 계산하기

켤레 복소수를 방지하려면 "real"을 사용하여 이 행렬의 정규 직교 기저를 계산합니다.

syms a
A = [a 1; 1 a];
B = orth(A,"real")
B =
[ a/(a^2 + 1)^(1/2),    -(a^2 - 1)/((a^2 + 1)*((a^2 -...
 1)^2/(a^2 + 1)^2 + (a^2*(a^2 - 1)^2)/(a^2 + 1)^2)^(1/2))]
[ 1/(a^2 + 1)^(1/2), (a*(a^2 - 1))/((a^2 + 1)*((a^2 -...
 1)^2/(a^2 + 1)^2 + (a^2*(a^2 - 1)^2)/(a^2 + 1)^2)^(1/2))]

정규화를 건너뛰어 직교 기저 계산하기

"skipnormalization"을 사용하여 이 행렬의 직교 기저를 계산합니다. 결과 벡터(행렬 B의 열)의 길이는 1일 필요가 없습니다.

syms a
A = [a 1; 1 a];
B = orth(A,"skipnormalization")
B =
[ a,               -(a^2 - 1)/(a*conj(a) + 1)]
[ 1, -(conj(a) - a^2*conj(a))/(a*conj(a) + 1)]

실수 직교 기저 계산하기

"skipnormalization" 및 "real"을 사용하여 이 행렬의 직교 기저를 계산합니다.

syms a
A = [a 1; 1 a];
B = orth(A,"skipnormalization","real")
B =
[ a,    -(a^2 - 1)/(a^2 + 1)]
[ 1, (a*(a^2 - 1))/(a^2 + 1)]

입력 인수

모두 축소

입력값으로, 기호 행렬로 지정됩니다.

세부 정보

모두 축소

팁

  • 기호 객체가 아닌 숫자형 인수를 사용하여 orth를 호출하면 MATLAB orth 함수가 호출됩니다. MATLAB orth 함수에서 반환된 결과는 Symbolic Math Toolbox™ orth 함수에서 반환된 결과와 다를 수 있습니다. 그 이유는 직교화가 일반적으로 고유하지 않고, 이 두 함수가 서로 다른 알고리즘을 사용하여 정규 직교 기저를 계산하기 때문입니다.

  • 정규 직교 기저 대신 "skipnormalization"을 사용하여 직교 기저를 계산하면 계산 속도를 높일 수 있습니다.

버전 내역

R2013a에 개발됨

참고 항목

| | | |