본문으로 건너뛰기

장6직교성

마지막으로 한 번 더 이 책의 구성을 되짚어 봅시다.

  1. 행렬 방정식 Ax=b를 푸십시오.
  2. 행렬 방정식 Ax=\lambda x를 푸십시오. 여기서 \lambda는 수입니다.
  3. 행렬 방정식 Ax=b의 근사해를 구하십시오.

이제 세 번째 부분에 이르렀습니다.

핵심 목표

행렬 방정식 Ax=b.의 근사해를 구합니다.

방정식의 근사해를 구하려면 일반적으로 주어진 벡터에 가장 가까운 부분공간 위의 벡터를 계산해야 합니다. 이는 직교성 문제가 됩니다. 즉, 어떤 벡터가 부분공간에 수직인지 알아야 합니다.

\begin{tikzpicture}[myxyz, thin border nodes]
  \coordinate (u) at (0,1,0);
  \coordinate (v) at (1.1,0,-.2);
  \coordinate (uxv) at (.2,0,1.1);
  \coordinate (x) at ($-1.1*(u)+(v)+1.5*(uxv)$);
  \begin{scope}[x=(u),y=(v),transformxy]
    \fill[seq-violet!30] (-2,-2) rectangle (2,2);
    \draw[seq-violet, help lines] (-2,-2) grid (2,2);
  \end{scope}
  \point[seq-blue, "closest point" {below,text=seq-blue}] (y) at ($-1.1*(u)+1*(v)$);
  \coordinate (yu) at ($(y)+(u)$);
  \coordinate (yv) at ($(y)+(v)$);
  \pic[draw, right angle len=3mm] {right angle=(x)--(y)--(yu)};
  \pic[draw, right angle len=3mm] {right angle=(x)--(y)--(yv)};
  \point[seq-red, "$x$" {above,text=seq-red}] (xx) at (x);
  \draw[vector, thin] (y) -- (xx);
  \point at (0,0,0);
\end{tikzpicture}

먼저 절 6.1와 절 6.2에서 직교성을 정의하고 부분공간의 직교여공간을 구하는 방법을 배웁니다. 이 장의 핵심은 절 6.3이며, 여기서는 벡터의 부분공간 위로의 정사영을 다룹니다. 이는 주어진 벡터에 가장 가까운 부분공간 위의 벡터를 계산하는 방법입니다. 절 6.4에서 보겠지만, 직교 집합이 있으면 이러한 계산이 더 쉬워집니다. 절 6.5에서는 연립방정식의 근사해를 구하는 최소제곱법을 소개하고, 이를 데이터 모델링에 응용합니다.

예제

데이터 모델링에서는 흔히 “내 데이터는 어떤 직선 위에 놓여 있어야 하는가?”라는 질문을 던집니다. 이 문제는 최소제곱법을 간단히 적용하여 풀 수 있습니다.

\begin{tikzpicture}[scale=.2]
  \draw (0,25) rectangle (40,60);
  \draw[help lines, step=5] (0,25) grid (40,60);
  \clip (0,25) rectangle (40,60);
  \point at (9,26);
  \point at (13,32);
  \point at (21,42);
  \point at (30,53);
  \point at (31,56);
  \point at (31,55);
  \point at (34,59);
  \point at (25,50);
  \point at (28,56);
  \point at (20,44);
  \point at (5,30);
  \draw[thick, red] (0,19.39) -- (40,66.31);
\end{tikzpicture}
예제

가우스는 가장 잘 맞는 타원을 찾기 위해 최소제곱법을 고안했습니다. 그는 1801년 소행성 세레스가 태양 뒤로 지나갈 때 그 (타원) 궤도를 정확히 예측했습니다.

\begin{tikzpicture}[thin border nodes, whitebg nodes]
  \draw[grid lines] (-4,-3) grid (4,3);
  \draw[->] (-4,0) -- (4,0);
  \draw[->] (0,-3) -- (0,3);

  \point at (0,2);
  \point at (2,1);
  \point at (1,-1);
  \point at (-1,-2);
  \point at (-3,1);
  \point at (-1,1);

  \draw[thick, seq-red] (-0.760768, -0.0153293)
      ellipse[x radius=2.61837, y radius=1.84472, rotate=26.0068];
%  \node[text=seq-red, font=\normalsize] at (0, -3.3)
%    {$266 x^2 + 405 y^2 - 178 xy + 402 x - 123 y - 1374 = 0$};
\end{tikzpicture}