Difference between revisions of "Definition:벡터의 직교와 사영"
(98 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | 두 벡터 a, b가 피타고라스의 정리 ‖a‖2+‖b‖2=‖a−b‖2를 만족할 때 '''orthogonal'''(직교)이라 하고 a⊥b라 쓴다. ‖a‖2=∑ia2i=aTa이므로 두 벡터가 직교할 조건은 2∑iaibi=0이다. 여기에서 좌변의 aTb를 두 벡터의 '''dot product'''(점곱) 또는 '''scalar product'''라 하며 이는 inner product를 이룬다. 그렇다면 두 벡터 a, b에 대해서 비율 aTb/aTa는 aTb−aTbaTaaTa=0이므로 a⊥(b−aTbaTaa)를 만족시킨다. 즉 aTbaTaa는 ca들 가운데 b에 가장 가까운 벡터이다. 이를 b의 a로의 '''projection'''(사영)이라 하고 projab라 쓴다. | + | 두 벡터 a, b가 피타고라스의 정리 ‖a‖2+‖b‖2=‖a−b‖2를 만족할 때 '''orthogonal'''(직교)이라 하고 a⊥b라 쓴다. ‖a‖2=∑ia2i=aTa이므로 두 벡터가 직교할 조건은 2∑iaibi=0이다. 여기에서 좌변의 aTb를 두 벡터의 '''dot product'''(점곱) 또는 '''scalar product'''라 하며 이는 inner product를 이룬다. 그렇다면 두 벡터 a, b에 대해서 비율 $a^Tb/(a^Ta)는\displaystyle a^Tb-\frac{a^Tb}{a^Ta}a^Ta=0이므로\displaystyle a \perp \left(b-\frac{a^Tb}{a^Ta}a\right)를만족시킨다.즉\displaystyle \frac{a^Tb}{a^Ta}a는ca들가운데b에가장가까운벡터이다.이를b의a로의‴projection‴(사영)이라하고\operatorname{proj}_a b$라 쓴다. Rn의 두 벡터 a, b의 사잇각 θ는 projab=(‖b‖cosθ)a를 만족하므로 aTb=‖a‖‖b‖cosθ이다.<ref>https://en.wikipedia.org/wiki/Direction_cosine</ref> |
[(aTb)a]i=a1b1ai+⋯+anbnai와 [(aaT)b]i=(aia1aia2⋯aian)b=aia1b1+⋯+aianbn가 같으므로 a로의 projection은 outer product<ref>https://en.wikipedia.org/wiki/Outer_product</ref>를 하여 벡터 b에 작용하는 연산자로 볼 수 있다: | [(aTb)a]i=a1b1ai+⋯+anbnai와 [(aaT)b]i=(aia1aia2⋯aian)b=aia1b1+⋯+aianbn가 같으므로 a로의 projection은 outer product<ref>https://en.wikipedia.org/wiki/Outer_product</ref>를 하여 벡터 b에 작용하는 연산자로 볼 수 있다: | ||
: aaTaTa=1‖a‖2[a1a1a1a2⋯a1ana2a1a2a2⋯a2an⋮⋮⋱⋮ana1ana2⋯anan] | : aaTaTa=1‖a‖2[a1a1a1a2⋯a1ana2a1a2a2⋯a2an⋮⋮⋱⋮ana1ana2⋯anan] | ||
− | + | 이 행렬은 열 공간이 ca들이므로 rank가 1이다. 또한 다음이 성립한다. | |
+ | * PT=P이다. 따라서 행 공간과 열 공간이 같아 null space가 a에 직교한다.<ref>https://math.stackexchange.com/questions/456354/why-is-a-projection-matrix-symmetric</ref> | ||
+ | * P2=P이다. $P^2_{ij}=a_i(a^Ta)a_j/(a^Ta)=P_{ij}$로 보일 수 있다. | ||
+ | |||
+ | PT=P이고 P2=P인 모든 행렬은 rank가 무엇이든 (b−Pb)TPx=bT(I−P)TPx=bT(P−P2)x=0이므로 Pb가 b의 P의 column space로의 '''orthogonal projection'''(정 사영)이다. PT=P가 아니어도 P를 '''projection matrix'''(사영 행렬)라 한다.<ref>http://optics.szfki.kfki.hu/~psinko/alj/menu/04/nummod/Projection_Matrices.pdf</ref> | ||
== Cauchy–Schwarz inequality == | == Cauchy–Schwarz inequality == | ||
− | 부등식 ‖b−projab‖2≥0은 ‖b−aTbaTaa‖2=(bT−aTbaTaaT)(b−aTbaTaa)=bTb−2(aTbaTa)(aTb)+(aTbaTa)2(aTa)=(bTb)(aTa)−(aTb)2≥0 | + | 부등식 ‖b−projab‖2≥0은 다음과 같이 전개할 수 있다: |
+ | : $\displaystyle \left\|b-\frac{a^Tb}{a^Ta}a\right\|^2=\left(b^T-\frac{a^Tb}{a^Ta}a^T\right)\left(b-\frac{a^Tb}{a^Ta}a\right)=b^Tb-2\left(\frac{a^Tb}{a^Ta}\right)(a^Tb)+\left(\frac{a^Tb}{a^Ta}\right)^2(a^Ta)=\frac{(b^Tb)(a^Ta)-(a^Tb)^2}{a^Ta}\geq 0$ | ||
+ | 이 결과 ‖a‖‖b‖≥|aTb|를 '''Cauchy–Schwarz inequality'''(코시-슈바르츠 부등식)라 한다. 확률 변수 X, Y로 나타낼 때 Var(X)Var(Y)≥Cov(X, Y)2이며 X, Y의 내적을 E[XY]라 정의할 때 E[X2]E[Y2]≥E[XY]2이다.<ref>https://en.wikipedia.org/wiki/H%C3%B6lder%27s_inequality</ref> | ||
+ | |||
+ | * Rn의 두 벡터의 사잇각 θ에 대해서 Cauchy–Schwarz inequality는 |cosθ|≤1이라는 뜻이다. 부등식의 등호는 두 벡터가 평행할 때 성립한다. | ||
+ | * 벡터 a=(x, y), b=(y, x)에 대해서 x2+y2≥|2xy|이다. forward–backward induction을 쓰면 산술-기하 평균 부등식을 얻는다.<ref>https://math.stackexchange.com/questions/2520981/is-there-a-proof-of-the-am-gm-inequality-via-cauchys-inequality-or-vice-versa?noredirect=1&lq=1</ref> | ||
+ | * 실수 a1, a2, a3에 대해서 (a21+a22+a23)(a22+a23+a21)≥(a1a2+a2a3+a3a1)2이므로 양의 실수 a1, a2, a3에 대해서 (a1+a2+a3)2≥3(a1a2+a2a3+a3a1)이다. | ||
+ | * 양의 실수 a1, ⋯, an, b1, ⋯, bn에 대해서 ∑ia2iai+bi∑i(ai+bi)≥(∑iai)2이므로 ∑iai=∑ibi일 때 ∑ia2iai+bi≥12∑iai이다. | ||
+ | * 실수 a1, ⋯, an과 양의 실수 b1, ⋯, bn에 대해서 (b1+b2)(a21b1+a22b2)≥(a1+a2)2이므로 ∑ia2ibi≥(∑iai)2∑ibi이다. 따라서 1b+c+1c+a+1a+b≥92(a+b+c)이다.<ref>https://en.wikipedia.org/wiki/Nesbitt%27s_inequality</ref> | ||
+ | * XT=X이고 PT=P이면 Y=iP일 때 YT=−P이므로 ‖Xψ‖‖Yψ‖+‖Yψ‖‖Xψ‖≥|ψTXYψ−ψTYXψ|=|ψTXPψ−ψTPXψ|이다. momentum operator P는 단위를 맞추도록 ℏ가 있고 PT=P가 되도록 i도 있는 differential operator이다.<ref>https://physics.stackexchange.com/questions/16678/if-all-the-eigenvalues-of-an-operator-are-real-is-the-operator-hermitian</ref> XP−PX=iℏI이므로 ‖ψ‖2=ψT1iℏ(XP−PX)ψ=1iℏ(ψTXPψ−ψTPXψ)이다. 따라서 ‖Xψ‖‖ψ‖‖Pψ‖‖ψ‖≥ℏ2이며 이를 '''uncertainty principle'''(불확정성 원리)이라고 한다. | ||
+ | |||
+ | == 전치 행렬 == | ||
+ | * ⟨Ax, y⟩=⟨x, ATy⟩이다. 내적이 주어지면 이를 A의 transpose AT의 정의로 삼을 수 있다. | ||
+ | * (AB)T=BTAT이다. ⟨A(Bx), y⟩=⟨Bx, ATy⟩=⟨x, BT(ATy)⟩로 보일 수 있다. | ||
+ | * AT=A, BT=B이면 (AB)T=AB일 때 AB=(AB)T=BTAT=BA이고 AB=BA일 때 (AB)T=BTAT=BA=AB이다.<ref>https://en.wikipedia.org/wiki/Commuting_matrices</ref> | ||
+ | * (AT)−1=(A−1)T이다. AT(A−1)T=(A−1A)T=I=(AA−1)T=(A−1)TAT로 보일 수 있다. | ||
+ | * ATAx=0이면 Ax=0이다. ATAx=0이면 xTATAx=0에서 (Ax)TAx=‖Ax‖2=0으로 보일 수 있다. 이는 AT의 null space와 A의 column space가 직교 여공간이기 때문이다. 따라서 A의 각 열이 독립이면 Ax=0일 때 x=0이므로 (ATA)−1이 존재한다. 마찬가지로 AATx=0이면 ATx=0이고, A의 각 행이 독립이면 ATx=0일 때 x=0이므로 (AAT)−1이 존재한다. 이는 Ax=b의 해 x가 row space의 원소일 때 x를 A의 row들의 linear combination으로 나타내어 AATx′=b를 만족시키는 ATx′=x로 쓰면 해 x′가 존재하는데, 그러한 x′가 유일하다는 뜻이다. | ||
+ | * (ATA)T=ATA이고 (AAT)T=AAT이다. | ||
+ | * AAT=ATA이면<ref>https://en.wikipedia.org/wiki/Normal_matrix</ref> 모든 x에 대해서 ‖Ax‖=‖ATx‖이다. ‖Ax‖2=(Ax)T(Ax)=xTATAx, ‖ATx‖2=(ATx)T(ATx)=xTAATx로 보일 수 있다. | ||
− | + | == 직교 행렬 == | |
+ | 0이 아닌 n개의 벡터 vi가 각각 나머지 n−1개의 벡터와 모두 직교할 때, 벡터들의 일차 결합과 $v_i$를 내적하면 $v_i^Tv_i항만남으므로일차결합이0인경우는v_i=0$인 경우밖에 없다. 따라서 $n$개의 벡터가 서로 직교하면 linear independent이다. 직교하는 $n$개의 벡터들이 일차 결합하여 공간의 모든 벡터를 유도할 수 있을 때 '''orthogonal basis'''(직교 기저)라 하고, 각 $\|v_i\|=1$이면 '''orthonormal basis'''(정규 직교 기저)라 한다. $v_1, \cdots,\ v_n이정규직교기저이면모든벡터x$를 다음과 같이 나타낼 수 있다: | ||
+ | : $x=v_1^Txv_1+v_2^Txv_2+\cdots+v_n^Txv_n$ | ||
− | + | 정규 직교 기저의 각 벡터가 각 열을 이루는 '''정사각 행렬'''을 '''orthogonal matrix'''(직교 행렬) 또는 '''orthonormal matrix'''라 한다. 어떤 벡터들이 정규 직교라는 것은 각 원소 vi가 | |
− | + | : $v_i^Tv_j=\begin{cases} 0 \quad (i\neq j)\\ 1 \quad (i=j)\end{cases}$ | |
+ | 를 만족한다는 뜻이므로 orthogonal matrix $Q$에 대해서 $Q^TQ=I$이다. 따라서 정사각 행렬 $Q$의 각 열이 정규 직교이면 $Q^{-1}=Q^T$이므로 각 행도 정규 직교이다. $Q_1,\ Q_2가직교행렬이면(Q_1Q_2)^{-1}=(Q_1Q_2)^T$이므로 $Q_1Q_2$도 직교 행렬이다. 또한 $|\det Q|=1$이고 $(Qa)^T(Qb)=a^Tb이므로함수Q$는 벡터의 길이, 내적, 각도를 보존시킨다. n×n 직교 행렬들은 '''orthogonal group'''(직교군) $\mathsf{O}(n)$을 이룬다. R2에서 회전 행렬들 | ||
: v1=(cosθ, sinθ), v2=(−sinθ, cosθ) | : v1=(cosθ, sinθ), v2=(−sinθ, cosθ) | ||
− | + | 과 permutation matrix들은 orthogonal matrix이다. | |
+ | |||
+ | === QR 분해 === | ||
+ | 일차 독립인 n개의 벡터 vi를 정규 직교인 n개의 벡터 qi로 만들고자 하면 $q_1=v_1/\|v_1\|$에 대해서 q2=(v2−qT1v2q1)/‖v2−qT1v2q1‖라 하고 또 q3=(v3−qT1v3q1−qT2v3q2)/‖v3−qT1v3q1−qT2v3q2‖, ⋯와 같이 n단계를 반복할 수 있다. 여기에서 qTivqi=‖qi‖projqiv=projqiv이며 이렇게 각 열이 qi인 행렬 $Q를얻는방법을‴Gram–Schmidtprocess‴(그람−슈미트과정)라고한다.t_i=v_i-q_1^Tv_iq_1-\cdots-q_{i-1}^Tv_iq_{i-1}라할때\|t_i\|q_i=t_i에서\|t_i\|=q_i^Tt_i이므로전개하면\|t_i\|=q_i^Tv_i이다.이제n개의벡터v_i를q_1,\ \cdots,\ q_i$들의 일차 결합으로 쓸 수 있다: | ||
+ | : vi=qT1viq1+qT2viq2+⋯+qTiviqi | ||
+ | 따라서 m개의 열들 vi가 일차 독립인 n×m 행렬은 n×m 행렬과 m×m 행렬의 곱이다. | ||
+ | : $\displaystyle \begin{bmatrix} v_1 & v_2 & \cdots & v_m\end{bmatrix}= | ||
+ | [q1q2⋯qm] [qT1v1qT1v2⋯qT1vm0qT2v2⋯qT2vm⋮⋮⋱⋮00⋯qTmvm] $ | ||
+ | 이를 A=QR처럼 쓰며 '''QR decomposition'''(QR 분해)라고 한다. R은 upper triangular matrix이고 $n=m일때Q는orthogonalmatrix이다.\mathsf{GF}(2)$에서는 Gram–Schmidt process를 쓸 수 없다.<ref>https://math.stackexchange.com/questions/1346664/how-to-find-orthogonal-vectors-in-gf2, https://math.stackexchange.com/questions/2888728/factorization-of-matrices-over-gf2</ref> semisimple Lie group에서는 Iwasawa decomposition을 할 수 있다.<ref>https://en.wikipedia.org/wiki/Iwasawa_decomposition</ref> | ||
+ | |||
+ | === 함수 근사 === | ||
+ | 함수 공간에서 두 벡터의 내적을 두 함수의 적당한 곱의 동일한 구간에서의 적분으로 정의할 수 있다. enxi들은 L2([−π, π])에서 orthonormal basis를 이루므로 Fourier series는 어떤 함수를 각 기저에 사영하여 그 합으로 근사할 수 있다. 그러나 다항식 $x^n,\ x^{n-1},\ \cdots,\ 1들은함수공간에서서로직교하지않으므로예를들어어떤함수를x^2,\ x,\ 1에사영하여그합으로다항식근사할수없다.[0,\ 1]에서의적분을내적으로정의하여최소제곱법을사용하려면Hilbertmatrix<ref>https://en.wikipedia.org/wiki/Hilbertmatrix</ref>의역행렬을곱해야하지만효율적이지못하다.[-1,\ 1]$에서의 적분을 내적으로 정의할 때 1과 x는 직교하므로 Gram–Schmidt process를 쓰면 x2−⟨1, x2⟩⟨1, 1⟩1−⟨x, x2⟩⟨x, x⟩x=x2−13을 기저의 세 번째 벡터로 삼을 수 있다. 서로 직교하도록 차수를 따라서 이어지는 이러한 다항식들을 '''Legendre polynomials'''(르장드르 다항식)라고 한다.<ref>https://en.wikipedia.org/wiki/Classical_orthogonal_polynomials</ref> | ||
== 직교 여공간 == | == 직교 여공간 == | ||
− | 두 공간의 모든 벡터가 서로 직교할 때 두 공간이 직교한다고 | + | 두 공간의 모든 벡터가 서로 직교할 때 두 공간이 직교한다고 하자. 행렬 A의 null space의 원소는 Ax=0의 모든 행과 직교하므로 A의 행 공간과 null space는 직교하는 두 공간이고, 마찬가지로 A의 열 공간과 left null space는 직교하는 두 공간이다. 식으로 나타내면 Ax=b, ATx′=b′가 |
: $\displaystyle \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23}\end{bmatrix} | : $\displaystyle \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23}\end{bmatrix} | ||
[x1x2x3] =[b1b2] ,\ [a11a21a12a22a13a23] | [x1x2x3] =[b1b2] ,\ [a11a21a12a22a13a23] | ||
[x′1x′2] =[b′1b′2b′3] $ | [x′1x′2] =[b′1b′2b′3] $ | ||
− | 일 때 $ | + | 일 때 $x'_1([A]_1)^T+x'_2([A]_2)^T=A^Tx'=[b']^1$이므로 A의 row space에 속하는 모든 열벡터 ATx′에 대해서 A의 null space의 원소 x와의 내적 (ATx′)Tx=x′TAx는 항상 0이다. |
− | + | A의 null space는 Ax=0의 해들을 모두 모은 것이므로 A의 row space의 각 원소에 직교하는 모든 벡터를 모은 것이기도 하다. 이러한 관계를 '''orthogonal complement'''(직교 여공간)라 하고, 내적 공간 V의 부분 공간 W의 직교 여공간을 W⊥와 같이 쓴다. 행렬 $A가예를들어A:\R^m\to \R^n$로 주어지면 $\R^m의모든벡터는r차원의행공간과그에직교하는m-r차원의nullspace로분해할수있고,\R^n의모든벡터는r차원의열공간과그에직교하는n-r차원의leftnullspace로분해할수있다.따라서Ax=b가해를가지지않으면b$가 $A$의 column space에 없다는 뜻이므로 $A^Tx'=0은b$와 직교하지 않는 해를 가진다.<ref>https://en.wikipedia.org/wiki/Fredholm_alternative</ref> | |
== 최소 제곱법 == | == 최소 제곱법 == | ||
+ | 독립인 식이 미지수보다 더 많아서 해가 없는 경우에는 오차가 가장 적은 해를 구하는 방법을 생각해 볼 수 있다. 독립인 식이 여러 개이고 미지수가 한 개일 때, 해가 존재하려면 0=b−ax이어야 하는데 이 조건과의 오차 ∑i(bi−aix)2를 최소화하는 x는 xa를 b에 가장 가깝게 만들어야 한다. 즉 그러한 해는 ˆx=aTb/(aTa)이다. a가 영벡터이면 ˆx를 정할 수 없지만 pseudoinverse는 0T=0이다.<ref>https://www.omnicalculator.com/math/pseudoinverse</ref> | ||
+ | |||
+ | 이러한 '''least squares''' 방법을 미지수가 여러 개일 때로 일반화하려면 A의 열 공간에 속하는 점 Ax들 가운데 b에 가장 가까운, 즉 오차 ‖b−Ax‖를 최소화하는 벡터 ˆx를 찾아야 한다. n차원에서의 직교와 사영을 정의했기 때문에 직관을 따라서, 그러한 ˆx가 b−Aˆx를 A의 열 공간에 수직으로 만든다고 생각할 수 있다. 따라서 b−Aˆx는 A의 left null space에 속하고 AT(b−Aˆx)=0이다. 이를 '''normal equations'''(정규 방정식) 또는 '''ordinary least squares'''라고 한다.<ref>https://en.wikipedia.org/wiki/Non-linear_least_squares</ref> 여기에서 ˆx=(ATA)−1ATb을 얻는다. A=QR로 분해할 수 있으면 ATA=RTR이므로 ‖b−Ax‖를 최소화하는 벡터는 ˆx=R−1QTb이다. | ||
+ | |||
+ | * ‖bT−xTAT‖를 최소화하는 벡터 xT는 bT−xTAT가 (bT−xTAT)A=0을 만족시킨다. 따라서 xT=bTA(ATA)−1이다. | ||
+ | * ‖b−ATx‖를 최소화하는 벡터 x는 b−ATx가 A(b−ATx)=0을 만족시킨다. 따라서 x=(AAT)−1Ab이다. | ||
+ | * ‖bT−xTA‖를 최소화하는 벡터 xT는 bT−xTA가 (bT−xTA)AT=0을 만족시킨다. 따라서 xT=bTAT(AAT)−1이다. | ||
+ | |||
+ | b의, A의 column space Ax로의 projection은 A(ATA)−1ATb이다. A의 열들이 정규 직교이면 이는 AATb이며, A가 정사각 행렬이 아닐 때 b가 아니다. | ||
+ | |||
+ | === overdetermined system === | ||
+ | n개의 직선 y=aix+bi이 만나는 점 (x, y)를 구하는 연립일차방정식은 | ||
+ | : $\displaystyle \begin{bmatrix} 1 & -a_1 \\ \vdots & \vdots \\ 1 & -a_n\end{bmatrix} | ||
+ | [yx] =[b1⋮bn] $ | ||
+ | 이다. 여기에 least squares를 쓰면 bi−(y−aix)의 제곱의 합을 최소화하는 점 (ˆx, ˆy)를 구할 수 있다. a축과 b축으로 이루어진 좌표 평면을 생각하였을 때 이 해는 b=ˆxa+ˆy 위의 점 (ai, ˆxai+ˆy)에서, 점 (ai, bi)까지의 거리들에 대해서 제곱의 합을 최소화한다. 따라서 직선 y=ˆxx+ˆy는 평면 위의 n개의 점 (ai, bi)들의 분포를 설명하는 직선으로 쓸 수도 있다. | ||
+ | |||
+ | === weighted least squares === | ||
+ | 더 좋은 데이터를 더 중요하게 다루고 싶을 때에는 각 bi에 가중치 w2i를 부여하여 오차 ∑iw2i(bi−x)2를 최소화하는 weighted average를 쓸 수 있다. 가중치를 부여하는 행렬 W를 곱하여 WAx=Wb에 least squares를 쓰면 ˆx=(ATWTWA)−1ATWTWb이다. 여기에서 두 벡터 x, y의 내적을 yTWTWx라 정의할 때 ˆx가 b−Aˆx를 A의 열 공간에 수직으로 만든다. 즉 W가 직교 행렬이면 내적은 변하지 않는다. WTW로 적당한 것은 covariance matrix의 역행렬이다.<ref>https://en.wikipedia.org/wiki/Inverse-variance_weighting</ref> | ||
+ | |||
+ | === 유사 역행렬 === | ||
+ | AA−1A=A이면 generalized inverse라 하고<ref>https://en.wikipedia.org/wiki/Generalized_inverse</ref> 여기에 A−1AA−1=A−1이면 reflexive generalized inverse, 여기에 A−1A, AA−1가 대칭 행렬이면 pseudoinverse 또는 '''Moore–Penrose inverse'''이다. generalized inverse와 다르게<ref>https://math.stackexchange.com/questions/4539974/generalized-inverse-in-terms-of-projection-matrices</ref> pseudoinverse가 유일하게 존재한다.<ref>https://math.stackexchange.com/questions/3057644/why-svd-is-not-unique-but-the-moore-penrose-pseudo-inverse-is-unique</ref> 최소 제곱법은 n×m 행렬 A의 left inverse가 (ATA)−1AT이고 right inverse가 AT(AAT)−1라는 것을 알려 준다.<ref>https://en.wikipedia.org/wiki/Matrix_norm</ref> A−1A는 m×m 행렬, AA−1는 n×n 행렬이다. 각 특이값 σi의 역수들이 대각 성분을 이루는 m×n 행렬 Σ+에 대해서 A−1=VΣ+UT이다.<ref>https://math.stackexchange.com/questions/544809/how-can-we-derive-the-pseudo-inverse-of-a-matrix-from-its-singular-value-decompo, https://math.stackexchange.com/questions/1537880/what-forms-does-the-moore-penrose-inverse-take-under-systems-with-full-rank-ful</ref> | ||
== 이산 푸리에 변환 == | == 이산 푸리에 변환 == | ||
+ | 주기가 2π인 함수 f의 푸리에 급수 f(x)=∑n∈Zcnenxi는 시간 x에 대해서 진폭 f(x)를 주파수 n에 대응하는 함수 enxi로의 사영들의 합으로 근사한 것이다. 각 사영의 계수는 cn=12π∫π−πf(x)e−nxidx이다. 주기를 없애면 f(x)=∫∞−∞cξe2πξxidξ는 시간 x에 대해서 진폭 f(x)를 연속적인 주파수 ξ에 대응하는 함수 e2πξxi로의 사영들의 적분으로 근사한 것이다. 각 사영의 계수는 cξ=∫∞−∞f(x)e−2πξxidx이다. time domain을 쓰는 f(x)에서 frequency domain을 쓰는 새로운 함수 ˆf(ξ)=cξ를 얻는 변환을 '''Fourier transform'''이라고 한다. | ||
+ | |||
+ | 유한 개의 f(0), f(1), ⋯, f(n−1)로부터 이산적인 해 ˆf(0), ˆf(1), ⋯, ˆf(n−1)를 구하기 위해서 '''discrete Fourier transform'''과 inverse transform을 f(a)=1n∑bˆf(b)e2πbai/n와 ˆf(b)=∑af(a)e−2πbai/n로 정의할 수 있다. 행렬로 쓰면 다음과 같다: | ||
+ | : $\displaystyle \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & e^{2\pi i/n} & e^{2\pi 2i/n} & \cdots & e^{2\pi (n-1)i/n} \\ 1 & e^{2\pi 2i/n} & e^{2\pi 4i/n} & \cdots & e^{2\pi (n-1)2i/n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & e^{2\pi (n-1)i/n} & e^{2\pi 2(n-1)i/n} & \cdots & e^{2\pi (n-1)(n-1)i/n} \end{bmatrix} | ||
+ | [ˆf(0)ˆf(1)ˆf(2)⋮ˆf(n−1)] =[nf(0)nf(1)nf(2)⋮nf(n−1)] $ | ||
+ | xn=1의 해는 e2πi/n=cos2πn+isin2πn의 거듭제곱들이다. Vieta's formulas에 따라서 이들의 합은 0이다. 그러므로 Fourier transform 행렬과 inverse transform 행렬을 곱하면 대각 성분이 아닌 것들은 1+e2πki/n+e2π2ki/n+⋯+e2π(n−1)ki/n=0이다. | ||
+ | |||
+ | 복소 내적에 대해서 Fourier transform 행렬의 column들은 서로 직교한다. 이 column들은 다음과 같은 cyclic permutation matrix의 고유벡터이다: | ||
+ | : P=[010⋯0001⋯0⋮⋮⋮⋱⋮100⋯0], k0I+k1P+k2P2+⋯kn−1Pn−1=[k0k1k2⋯kn−1kn−1k0k1⋯kn−2⋮⋮⋮⋱⋮k1k2k3⋯k0] | ||
+ | 오른쪽 행렬을 '''circulant matrix'''(순환 행렬)라 하며 이는 k0, k1, ⋯, kn−1과의 discrete circular convolution이다. | ||
+ | |||
+ | === 빠른 푸리에 변환 === | ||
+ | n×n Fourier transform 행렬 A에 대해서 Ax=b를 n/2×n/2 Fourier transform 행렬 An/2에 대해서 An/2xeven=beven와 An/2xodd=bodd로부터 계산할 수 있으면 연산 비용을 n2에서 n2log2n으로 줄일 수 있다. 여기에서 xeven는 각 성분이 ˆf(0), ˆf(2), ⋯, ˆf(n−2)인 벡터이다. | ||
+ | : $\displaystyle \begin{split} nf(a)=\sum_{b} \hat{f}(b) e^{2\pi bai/n}&=\sum_{b<n/2} \hat{f}(2b)e^{2\pi 2bai/n}+\sum_{b<n/2} \hat{f}(2b+1)e^{2\pi (2b+1)ai/n} | ||
+ | \\ &= \sum_{b<n/2} (x_{\mathrm{even}})_be^{2\pi bai/(n/2)}+e^{2\pi ai/n}\sum_{b<n/2} (x_{\mathrm{odd}})_be^{2\pi bai/(n/2)} | ||
+ | \\ &= b_{\mathrm{even}}+e^{2\pi ai/n}b_{\mathrm{odd}}\end{split}$ | ||
+ | nf(a)는 beven+e2πai/nbodd이고 nf(a+n/2)는 beven−e2πai/nbodd이다. 이 radix-2 '''fast Fourier transform, FFT'''를 이용하여 '''Cooley–Tukey algorithm'''을 구현할 수 있다. n=4일 때 | ||
+ | : [11111i−1−i1−11−11−i−1i][ˆf(0)ˆf(1)ˆf(2)ˆf(3)]=[111×11×11−1i×1i×−111−1×1−1×11−1−i×1−i×−1][ˆf(0)ˆf(2)ˆf(1)ˆf(3)]=[1010010i10−10010−i][11001−1000011001−1][ˆf(0)ˆf(2)ˆf(1)ˆf(3)] | ||
+ | 이고 [111−1]은 2×2 Fourier transform 행렬이다. 순서를 바꾼 각 ˆf(b)에 두 번째 행렬 An/2가 작용하고 첫 번째 행렬이 beven+e2πai/nbodd를 대응시킨다. n/2×n/2 행렬로 이어지는 각 단계에서 e2πai/nbodd의 연산 비용은 n/2이 된다. | ||
== 참고 자료 == | == 참고 자료 == | ||
<references /> | <references /> | ||
* Gilbert Strang. Linear Algebra and Its Applications. | * Gilbert Strang. Linear Algebra and Its Applications. | ||
+ | |||
+ | [[Category:Mathematics]] |
Latest revision as of 16:09, 18 July 2023
두 벡터 a, b가 피타고라스의 정리 ‖a‖2+‖b‖2=‖a−b‖2를 만족할 때 orthogonal(직교)이라 하고 a⊥b라 쓴다. ‖a‖2=∑ia2i=aTa이므로 두 벡터가 직교할 조건은 2∑iaibi=0이다. 여기에서 좌변의 aTb를 두 벡터의 dot product(점곱) 또는 scalar product라 하며 이는 inner product를 이룬다. 그렇다면 두 벡터 a, b에 대해서 비율 aTb/(aTa)는 aTb−aTbaTaaTa=0이므로 a⊥(b−aTbaTaa)를 만족시킨다. 즉 aTbaTaa는 ca들 가운데 b에 가장 가까운 벡터이다. 이를 b의 a로의 projection(사영)이라 하고 projab라 쓴다. Rn의 두 벡터 a, b의 사잇각 θ는 projab=(‖b‖cosθ)a를 만족하므로 aTb=‖a‖‖b‖cosθ이다.[1]
[(aTb)a]i=a1b1ai+⋯+anbnai와 [(aaT)b]i=(aia1aia2⋯aian)b=aia1b1+⋯+aianbn가 같으므로 a로의 projection은 outer product[2]를 하여 벡터 b에 작용하는 연산자로 볼 수 있다:
- aaTaTa=1‖a‖2[a1a1a1a2⋯a1ana2a1a2a2⋯a2an⋮⋮⋱⋮ana1ana2⋯anan]
이 행렬은 열 공간이 ca들이므로 rank가 1이다. 또한 다음이 성립한다.
- PT=P이다. 따라서 행 공간과 열 공간이 같아 null space가 a에 직교한다.[3]
- P2=P이다. P2ij=ai(aTa)aj/(aTa)=Pij로 보일 수 있다.
PT=P이고 P2=P인 모든 행렬은 rank가 무엇이든 (b−Pb)TPx=bT(I−P)TPx=bT(P−P2)x=0이므로 Pb가 b의 P의 column space로의 orthogonal projection(정 사영)이다. PT=P가 아니어도 P를 projection matrix(사영 행렬)라 한다.[4]
Cauchy–Schwarz inequality
부등식 ‖b−projab‖2≥0은 다음과 같이 전개할 수 있다:
- ‖b−aTbaTaa‖2=(bT−aTbaTaaT)(b−aTbaTaa)=bTb−2(aTbaTa)(aTb)+(aTbaTa)2(aTa)=(bTb)(aTa)−(aTb)2aTa≥0
이 결과 ‖a‖‖b‖≥|aTb|를 Cauchy–Schwarz inequality(코시-슈바르츠 부등식)라 한다. 확률 변수 X, Y로 나타낼 때 Var(X)Var(Y)≥Cov(X, Y)2이며 X, Y의 내적을 E[XY]라 정의할 때 E[X2]E[Y2]≥E[XY]2이다.[5]
- Rn의 두 벡터의 사잇각 θ에 대해서 Cauchy–Schwarz inequality는 |cosθ|≤1이라는 뜻이다. 부등식의 등호는 두 벡터가 평행할 때 성립한다.
- 벡터 a=(x, y), b=(y, x)에 대해서 x2+y2≥|2xy|이다. forward–backward induction을 쓰면 산술-기하 평균 부등식을 얻는다.[6]
- 실수 a1, a2, a3에 대해서 (a21+a22+a23)(a22+a23+a21)≥(a1a2+a2a3+a3a1)2이므로 양의 실수 a1, a2, a3에 대해서 (a1+a2+a3)2≥3(a1a2+a2a3+a3a1)이다.
- 양의 실수 a1, ⋯, an, b1, ⋯, bn에 대해서 ∑ia2iai+bi∑i(ai+bi)≥(∑iai)2이므로 ∑iai=∑ibi일 때 ∑ia2iai+bi≥12∑iai이다.
- 실수 a1, ⋯, an과 양의 실수 b1, ⋯, bn에 대해서 (b1+b2)(a21b1+a22b2)≥(a1+a2)2이므로 ∑ia2ibi≥(∑iai)2∑ibi이다. 따라서 1b+c+1c+a+1a+b≥92(a+b+c)이다.[7]
- XT=X이고 PT=P이면 Y=iP일 때 YT=−P이므로 ‖Xψ‖‖Yψ‖+‖Yψ‖‖Xψ‖≥|ψTXYψ−ψTYXψ|=|ψTXPψ−ψTPXψ|이다. momentum operator P는 단위를 맞추도록 ℏ가 있고 PT=P가 되도록 i도 있는 differential operator이다.[8] XP−PX=iℏI이므로 ‖ψ‖2=ψT1iℏ(XP−PX)ψ=1iℏ(ψTXPψ−ψTPXψ)이다. 따라서 ‖Xψ‖‖ψ‖‖Pψ‖‖ψ‖≥ℏ2이며 이를 uncertainty principle(불확정성 원리)이라고 한다.
전치 행렬
- ⟨Ax, y⟩=⟨x, ATy⟩이다. 내적이 주어지면 이를 A의 transpose AT의 정의로 삼을 수 있다.
- (AB)T=BTAT이다. ⟨A(Bx), y⟩=⟨Bx, ATy⟩=⟨x, BT(ATy)⟩로 보일 수 있다.
- AT=A, BT=B이면 (AB)T=AB일 때 AB=(AB)T=BTAT=BA이고 AB=BA일 때 (AB)T=BTAT=BA=AB이다.[9]
- (AT)−1=(A−1)T이다. AT(A−1)T=(A−1A)T=I=(AA−1)T=(A−1)TAT로 보일 수 있다.
- ATAx=0이면 Ax=0이다. ATAx=0이면 xTATAx=0에서 (Ax)TAx=‖Ax‖2=0으로 보일 수 있다. 이는 AT의 null space와 A의 column space가 직교 여공간이기 때문이다. 따라서 A의 각 열이 독립이면 Ax=0일 때 x=0이므로 (ATA)−1이 존재한다. 마찬가지로 AATx=0이면 ATx=0이고, A의 각 행이 독립이면 ATx=0일 때 x=0이므로 (AAT)−1이 존재한다. 이는 Ax=b의 해 x가 row space의 원소일 때 x를 A의 row들의 linear combination으로 나타내어 AATx′=b를 만족시키는 ATx′=x로 쓰면 해 x′가 존재하는데, 그러한 x′가 유일하다는 뜻이다.
- (ATA)T=ATA이고 (AAT)T=AAT이다.
- AAT=ATA이면[10] 모든 x에 대해서 ‖Ax‖=‖ATx‖이다. ‖Ax‖2=(Ax)T(Ax)=xTATAx, ‖ATx‖2=(ATx)T(ATx)=xTAATx로 보일 수 있다.
직교 행렬
0이 아닌 n개의 벡터 vi가 각각 나머지 n−1개의 벡터와 모두 직교할 때, 벡터들의 일차 결합과 vi를 내적하면 vTivi 항만 남으므로 일차 결합이 0인 경우는 vi=0인 경우밖에 없다. 따라서 n개의 벡터가 서로 직교하면 linear independent이다. 직교하는 n개의 벡터들이 일차 결합하여 공간의 모든 벡터를 유도할 수 있을 때 orthogonal basis(직교 기저)라 하고, 각 ‖vi‖=1이면 orthonormal basis(정규 직교 기저)라 한다. v1,⋯, vn이 정규 직교 기저이면 모든 벡터 x를 다음과 같이 나타낼 수 있다:
- x=vT1xv1+vT2xv2+⋯+vTnxvn
정규 직교 기저의 각 벡터가 각 열을 이루는 정사각 행렬을 orthogonal matrix(직교 행렬) 또는 orthonormal matrix라 한다. 어떤 벡터들이 정규 직교라는 것은 각 원소 vi가
- vTivj={0(i≠j)1(i=j)
를 만족한다는 뜻이므로 orthogonal matrix Q에 대해서 QTQ=I이다. 따라서 정사각 행렬 Q의 각 열이 정규 직교이면 Q−1=QT이므로 각 행도 정규 직교이다. Q1, Q2가 직교 행렬이면 (Q1Q2)−1=(Q1Q2)T이므로 Q1Q2도 직교 행렬이다. 또한 |detQ|=1이고 (Qa)T(Qb)=aTb이므로 함수 Q는 벡터의 길이, 내적, 각도를 보존시킨다. n×n 직교 행렬들은 orthogonal group(직교군) O(n)을 이룬다. R2에서 회전 행렬들
- v1=(cosθ, sinθ), v2=(−sinθ, cosθ)
과 permutation matrix들은 orthogonal matrix이다.
QR 분해
일차 독립인 n개의 벡터 vi를 정규 직교인 n개의 벡터 qi로 만들고자 하면 q1=v1/‖v1‖에 대해서 q2=(v2−qT1v2q1)/‖v2−qT1v2q1‖라 하고 또 q3=(v3−qT1v3q1−qT2v3q2)/‖v3−qT1v3q1−qT2v3q2‖, ⋯와 같이 n단계를 반복할 수 있다. 여기에서 qTivqi=‖qi‖projqiv=projqiv이며 이렇게 각 열이 qi인 행렬 Q를 얻는 방법을 Gram–Schmidt process(그람-슈미트 과정)라고 한다. ti=vi−qT1viq1−⋯−qTi−1viqi−1라 할 때 ‖ti‖qi=ti에서 ‖ti‖=qTiti이므로 전개하면 ‖ti‖=qTivi이다. 이제 n개의 벡터 vi를 q1, ⋯, qi들의 일차 결합으로 쓸 수 있다:
- vi=qT1viq1+qT2viq2+⋯+qTiviqi
따라서 m개의 열들 vi가 일차 독립인 n×m 행렬은 n×m 행렬과 m×m 행렬의 곱이다.
- [v1v2⋯vm]=[q1q2⋯qm][qT1v1qT1v2⋯qT1vm0qT2v2⋯qT2vm⋮⋮⋱⋮00⋯qTmvm]
이를 A=QR처럼 쓰며 QR decomposition(QR 분해)라고 한다. R은 upper triangular matrix이고 n=m일 때 Q는 orthogonal matrix이다. GF(2)에서는 Gram–Schmidt process를 쓸 수 없다.[11] semisimple Lie group에서는 Iwasawa decomposition을 할 수 있다.[12]
함수 근사
함수 공간에서 두 벡터의 내적을 두 함수의 적당한 곱의 동일한 구간에서의 적분으로 정의할 수 있다. enxi들은 L2([−π, π])에서 orthonormal basis를 이루므로 Fourier series는 어떤 함수를 각 기저에 사영하여 그 합으로 근사할 수 있다. 그러나 다항식 xn, xn−1, ⋯, 1들은 함수 공간에서 서로 직교하지 않으므로 예를 들어 어떤 함수를 x2, x, 1에 사영하여 그 합으로 다항식 근사할 수 없다. [0, 1]에서의 적분을 내적으로 정의하여 최소 제곱법을 사용하려면 Hilbert matrix[13]의 역행렬을 곱해야 하지만 효율적이지 못하다. [−1, 1]에서의 적분을 내적으로 정의할 때 1과 x는 직교하므로 Gram–Schmidt process를 쓰면 x2−⟨1, x2⟩⟨1, 1⟩1−⟨x, x2⟩⟨x, x⟩x=x2−13을 기저의 세 번째 벡터로 삼을 수 있다. 서로 직교하도록 차수를 따라서 이어지는 이러한 다항식들을 Legendre polynomials(르장드르 다항식)라고 한다.[14]
직교 여공간
두 공간의 모든 벡터가 서로 직교할 때 두 공간이 직교한다고 하자. 행렬 A의 null space의 원소는 Ax=0의 모든 행과 직교하므로 A의 행 공간과 null space는 직교하는 두 공간이고, 마찬가지로 A의 열 공간과 left null space는 직교하는 두 공간이다. 식으로 나타내면 Ax=b, ATx′=b′가
- [a11a12a13a21a22a23][x1x2x3]=[b1b2], [a11a21a12a22a13a23][x′1x′2]=[b′1b′2b′3]
일 때 x′1([A]1)T+x′2([A]2)T=ATx′=[b′]1이므로 A의 row space에 속하는 모든 열벡터 ATx′에 대해서 A의 null space의 원소 x와의 내적 (ATx′)Tx=x′TAx는 항상 0이다.
A의 null space는 Ax=0의 해들을 모두 모은 것이므로 A의 row space의 각 원소에 직교하는 모든 벡터를 모은 것이기도 하다. 이러한 관계를 orthogonal complement(직교 여공간)라 하고, 내적 공간 V의 부분 공간 W의 직교 여공간을 W⊥와 같이 쓴다. 행렬 A가 예를 들어 A:Rm→Rn로 주어지면 Rm의 모든 벡터는 r차원의 행 공간과 그에 직교하는 m−r차원의 null space로 분해할 수 있고, Rn의 모든 벡터는 r차원의 열 공간과 그에 직교하는 n−r차원의 left null space로 분해할 수 있다. 따라서 Ax=b가 해를 가지지 않으면 b가 A의 column space에 없다는 뜻이므로 ATx′=0은 b와 직교하지 않는 해를 가진다.[15]
최소 제곱법
독립인 식이 미지수보다 더 많아서 해가 없는 경우에는 오차가 가장 적은 해를 구하는 방법을 생각해 볼 수 있다. 독립인 식이 여러 개이고 미지수가 한 개일 때, 해가 존재하려면 0=b−ax이어야 하는데 이 조건과의 오차 ∑i(bi−aix)2를 최소화하는 x는 xa를 b에 가장 가깝게 만들어야 한다. 즉 그러한 해는 ˆx=aTb/(aTa)이다. a가 영벡터이면 ˆx를 정할 수 없지만 pseudoinverse는 0T=0이다.[16]
이러한 least squares 방법을 미지수가 여러 개일 때로 일반화하려면 A의 열 공간에 속하는 점 Ax들 가운데 b에 가장 가까운, 즉 오차 ‖b−Ax‖를 최소화하는 벡터 ˆx를 찾아야 한다. n차원에서의 직교와 사영을 정의했기 때문에 직관을 따라서, 그러한 ˆx가 b−Aˆx를 A의 열 공간에 수직으로 만든다고 생각할 수 있다. 따라서 b−Aˆx는 A의 left null space에 속하고 AT(b−Aˆx)=0이다. 이를 normal equations(정규 방정식) 또는 ordinary least squares라고 한다.[17] 여기에서 ˆx=(ATA)−1ATb을 얻는다. A=QR로 분해할 수 있으면 ATA=RTR이므로 ‖b−Ax‖를 최소화하는 벡터는 ˆx=R−1QTb이다.
- ‖bT−xTAT‖를 최소화하는 벡터 xT는 bT−xTAT가 (bT−xTAT)A=0을 만족시킨다. 따라서 xT=bTA(ATA)−1이다.
- ‖b−ATx‖를 최소화하는 벡터 x는 b−ATx가 A(b−ATx)=0을 만족시킨다. 따라서 x=(AAT)−1Ab이다.
- ‖bT−xTA‖를 최소화하는 벡터 xT는 bT−xTA가 (bT−xTA)AT=0을 만족시킨다. 따라서 xT=bTAT(AAT)−1이다.
b의, A의 column space Ax로의 projection은 A(ATA)−1ATb이다. A의 열들이 정규 직교이면 이는 AATb이며, A가 정사각 행렬이 아닐 때 b가 아니다.
overdetermined system
n개의 직선 y=aix+bi이 만나는 점 (x, y)를 구하는 연립일차방정식은
- [1−a1⋮⋮1−an][yx]=[b1⋮bn]
이다. 여기에 least squares를 쓰면 bi−(y−aix)의 제곱의 합을 최소화하는 점 (ˆx, ˆy)를 구할 수 있다. a축과 b축으로 이루어진 좌표 평면을 생각하였을 때 이 해는 b=ˆxa+ˆy 위의 점 (ai, ˆxai+ˆy)에서, 점 (ai, bi)까지의 거리들에 대해서 제곱의 합을 최소화한다. 따라서 직선 y=ˆxx+ˆy는 평면 위의 n개의 점 (ai, bi)들의 분포를 설명하는 직선으로 쓸 수도 있다.
weighted least squares
더 좋은 데이터를 더 중요하게 다루고 싶을 때에는 각 bi에 가중치 w2i를 부여하여 오차 ∑iw2i(bi−x)2를 최소화하는 weighted average를 쓸 수 있다. 가중치를 부여하는 행렬 W를 곱하여 WAx=Wb에 least squares를 쓰면 ˆx=(ATWTWA)−1ATWTWb이다. 여기에서 두 벡터 x, y의 내적을 yTWTWx라 정의할 때 ˆx가 b−Aˆx를 A의 열 공간에 수직으로 만든다. 즉 W가 직교 행렬이면 내적은 변하지 않는다. WTW로 적당한 것은 covariance matrix의 역행렬이다.[18]
유사 역행렬
AA−1A=A이면 generalized inverse라 하고[19] 여기에 A−1AA−1=A−1이면 reflexive generalized inverse, 여기에 A−1A, AA−1가 대칭 행렬이면 pseudoinverse 또는 Moore–Penrose inverse이다. generalized inverse와 다르게[20] pseudoinverse가 유일하게 존재한다.[21] 최소 제곱법은 n×m 행렬 A의 left inverse가 (ATA)−1AT이고 right inverse가 AT(AAT)−1라는 것을 알려 준다.[22] A−1A는 m×m 행렬, AA−1는 n×n 행렬이다. 각 특이값 σi의 역수들이 대각 성분을 이루는 m×n 행렬 Σ+에 대해서 A−1=VΣ+UT이다.[23]
이산 푸리에 변환
주기가 2π인 함수 f의 푸리에 급수 f(x)=∑n∈Zcnenxi는 시간 x에 대해서 진폭 f(x)를 주파수 n에 대응하는 함수 enxi로의 사영들의 합으로 근사한 것이다. 각 사영의 계수는 cn=12π∫π−πf(x)e−nxidx이다. 주기를 없애면 f(x)=∫∞−∞cξe2πξxidξ는 시간 x에 대해서 진폭 f(x)를 연속적인 주파수 ξ에 대응하는 함수 e2πξxi로의 사영들의 적분으로 근사한 것이다. 각 사영의 계수는 cξ=∫∞−∞f(x)e−2πξxidx이다. time domain을 쓰는 f(x)에서 frequency domain을 쓰는 새로운 함수 ˆf(ξ)=cξ를 얻는 변환을 Fourier transform이라고 한다.
유한 개의 f(0), f(1), ⋯, f(n−1)로부터 이산적인 해 ˆf(0), ˆf(1), ⋯, ˆf(n−1)를 구하기 위해서 discrete Fourier transform과 inverse transform을 f(a)=1n∑bˆf(b)e2πbai/n와 ˆf(b)=∑af(a)e−2πbai/n로 정의할 수 있다. 행렬로 쓰면 다음과 같다:
- [111⋯11e2πi/ne2π2i/n⋯e2π(n−1)i/n1e2π2i/ne2π4i/n⋯e2π(n−1)2i/n⋮⋮⋮⋱⋮1e2π(n−1)i/ne2π2(n−1)i/n⋯e2π(n−1)(n−1)i/n][ˆf(0)ˆf(1)ˆf(2)⋮ˆf(n−1)]=[nf(0)nf(1)nf(2)⋮nf(n−1)]
xn=1의 해는 e2πi/n=cos2πn+isin2πn의 거듭제곱들이다. Vieta's formulas에 따라서 이들의 합은 0이다. 그러므로 Fourier transform 행렬과 inverse transform 행렬을 곱하면 대각 성분이 아닌 것들은 1+e2πki/n+e2π2ki/n+⋯+e2π(n−1)ki/n=0이다.
복소 내적에 대해서 Fourier transform 행렬의 column들은 서로 직교한다. 이 column들은 다음과 같은 cyclic permutation matrix의 고유벡터이다:
- P=[010⋯0001⋯0⋮⋮⋮⋱⋮100⋯0], k0I+k1P+k2P2+⋯kn−1Pn−1=[k0k1k2⋯kn−1kn−1k0k1⋯kn−2⋮⋮⋮⋱⋮k1k2k3⋯k0]
오른쪽 행렬을 circulant matrix(순환 행렬)라 하며 이는 k0, k1, ⋯, kn−1과의 discrete circular convolution이다.
빠른 푸리에 변환
n×n Fourier transform 행렬 A에 대해서 Ax=b를 n/2×n/2 Fourier transform 행렬 An/2에 대해서 An/2xeven=beven와 An/2xodd=bodd로부터 계산할 수 있으면 연산 비용을 n2에서 n2log2n으로 줄일 수 있다. 여기에서 xeven는 각 성분이 ˆf(0), ˆf(2), ⋯, ˆf(n−2)인 벡터이다.
- nf(a)=∑bˆf(b)e2πbai/n=∑b<n/2ˆf(2b)e2π2bai/n+∑b<n/2ˆf(2b+1)e2π(2b+1)ai/n=∑b<n/2(xeven)be2πbai/(n/2)+e2πai/n∑b<n/2(xodd)be2πbai/(n/2)=beven+e2πai/nbodd
nf(a)는 beven+e2πai/nbodd이고 nf(a+n/2)는 beven−e2πai/nbodd이다. 이 radix-2 fast Fourier transform, FFT를 이용하여 Cooley–Tukey algorithm을 구현할 수 있다. n=4일 때
- [11111i−1−i1−11−11−i−1i][ˆf(0)ˆf(1)ˆf(2)ˆf(3)]=[111×11×11−1i×1i×−111−1×1−1×11−1−i×1−i×−1][ˆf(0)ˆf(2)ˆf(1)ˆf(3)]=[1010010i10−10010−i][11001−1000011001−1][ˆf(0)ˆf(2)ˆf(1)ˆf(3)]
이고 [111−1]은 2×2 Fourier transform 행렬이다. 순서를 바꾼 각 ˆf(b)에 두 번째 행렬 An/2가 작용하고 첫 번째 행렬이 beven+e2πai/nbodd를 대응시킨다. n/2×n/2 행렬로 이어지는 각 단계에서 e2πai/nbodd의 연산 비용은 n/2이 된다.
참고 자료
- ↑ https://en.wikipedia.org/wiki/Direction_cosine
- ↑ https://en.wikipedia.org/wiki/Outer_product
- ↑ https://math.stackexchange.com/questions/456354/why-is-a-projection-matrix-symmetric
- ↑ http://optics.szfki.kfki.hu/~psinko/alj/menu/04/nummod/Projection_Matrices.pdf
- ↑ https://en.wikipedia.org/wiki/H%C3%B6lder%27s_inequality
- ↑ https://math.stackexchange.com/questions/2520981/is-there-a-proof-of-the-am-gm-inequality-via-cauchys-inequality-or-vice-versa?noredirect=1&lq=1
- ↑ https://en.wikipedia.org/wiki/Nesbitt%27s_inequality
- ↑ https://physics.stackexchange.com/questions/16678/if-all-the-eigenvalues-of-an-operator-are-real-is-the-operator-hermitian
- ↑ https://en.wikipedia.org/wiki/Commuting_matrices
- ↑ https://en.wikipedia.org/wiki/Normal_matrix
- ↑ https://math.stackexchange.com/questions/1346664/how-to-find-orthogonal-vectors-in-gf2, https://math.stackexchange.com/questions/2888728/factorization-of-matrices-over-gf2
- ↑ https://en.wikipedia.org/wiki/Iwasawa_decomposition
- ↑ https://en.wikipedia.org/wiki/Hilbert_matrix
- ↑ https://en.wikipedia.org/wiki/Classical_orthogonal_polynomials
- ↑ https://en.wikipedia.org/wiki/Fredholm_alternative
- ↑ https://www.omnicalculator.com/math/pseudoinverse
- ↑ https://en.wikipedia.org/wiki/Non-linear_least_squares
- ↑ https://en.wikipedia.org/wiki/Inverse-variance_weighting
- ↑ https://en.wikipedia.org/wiki/Generalized_inverse
- ↑ https://math.stackexchange.com/questions/4539974/generalized-inverse-in-terms-of-projection-matrices
- ↑ https://math.stackexchange.com/questions/3057644/why-svd-is-not-unique-but-the-moore-penrose-pseudo-inverse-is-unique
- ↑ https://en.wikipedia.org/wiki/Matrix_norm
- ↑ https://math.stackexchange.com/questions/544809/how-can-we-derive-the-pseudo-inverse-of-a-matrix-from-its-singular-value-decompo, https://math.stackexchange.com/questions/1537880/what-forms-does-the-moore-penrose-inverse-take-under-systems-with-full-rank-ful
- Gilbert Strang. Linear Algebra and Its Applications.