제1부 수학적 기초
1.2 선형대수 II: 최소제곱·의사역행렬·영공간·조건수
1.2.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
이 장은 연립방정식의 방정식 수와 미지수 수가 맞지 않을 때 로봇공학이 사용하는 해법 — 선형 최소제곱, 의사역행렬, 감쇠 최소제곱 — 과, 그 해가 입력 오차와 계산 오차에 얼마나 민감한지를 나타내는 조건수를 다룬다. 역기구학의 속도 해, 캘리브레이션의 파라미터 식별, 센서 융합의 추정이 모두 이 구조를 갖는다. 앞 장(1.1)의 QR·SVD가 해법의 도구이다. 다룰 질문은 네 가지다. 최소제곱의 해는 어떤 기하로 정해지는가, 의사역행렬은 무엇을 보장하는가, 세 가지 풀이법은 정확도가 어떻게 다른가, 특이점 근방에서 해가 폭주하는 것을 어떻게 억제하는가.
배우는 것:
- 최소제곱의 기하 — 정규방정식, 열공간으로의 직교 사영, 잔차의 직교성.
- 의사역행렬 — Moore–Penrose 네 조건, SVD 표현, 최소 노름 해, 영공간 투영.
- 조건수와 풀이법 — $\kappa_2(A^\top A)=\kappa_2(A)^2$, 정규방정식·QR·SVD의 정확도 차이.
- 감쇠 최소제곱 — 티호노프 정칙화, SVD 필터 계수, 로봇 팔의 특이점 처리.
- 풀이 예제 — Läuchli 행렬에서 세 풀이법의 오차, 평면 3R 팔의 관절 속도.
선수 지식: 1.1(LU·QR·SVD와 네 기본 부분공간). 표기는 BK-05와 A.2을 따른다.
특히 중요한 독자: 엔지니어·연구자(역기구학·캘리브레이션·추정의 수치 해법), 제어·소프트웨어 개발자(특이점 근방의 해 폭주).
출처 방침. 정리는 교과서와 원 논문에 근거하며 서지는 Crossref 응답으로 확인했다(목록은 이 장 끝). 교과서 본문은 직접 읽지 않았고 정리 번호는
(확인 필요)로 둔다. 수치는 모두 이 장의 순수 파이썬 구현으로 계산해 확인했다. QR·SVD 구현은 1.1.5의 것을 불러와 사용했고, 이 장의 코드는 새로 필요한 부분이다. 로봇 팔의 제원(링크 길이 0.3 m 세 개, $q_1=30^\circ$)은 1.1.5와 같은 가정이다.
1.2.2 개념 — 맞지 않는 방정식을 푼다는 것
선형 시스템 $Ax=b$ ($A\in\mathbb R^{m\times n}$)는 세 경우로 나뉜다.
| 경우 | 조건 | 해의 상태 | 로봇공학의 예 |
|---|---|---|---|
| 과결정 | $m>n$, 계수 $n$ | 일반적으로 정확한 해 없음 → 잔차 최소화 | 캘리브레이션, 측정 $m$개로 파라미터 $n$개 추정 |
| 부족결정 | $m<n$ | 해가 무수히 많음 → 하나를 선택 | 여유자유도 팔의 속도 역기구학($m=6$, $n=7$) |
| 계수 결손 | $\operatorname{rank}A<\min(m,n)$ | 해가 없거나 무수히 많음 | 특이 자세의 자코비안 |
세 경우를 하나의 해법으로 묶는 것이 의사역행렬이다. 과결정에서는 잔차 $\lVert Ax-b\rVert_2$가 최소인 해, 부족결정에서는 해 가운데 $\lVert x\rVert_2$가 최소인 해를 준다. 해의 정확도는 행렬의 조건수가 정한다.
1.2.3 원리
1.2.3.1 선형 최소제곱과 정규방정식
문제는 $\min_x\lVert Ax-b\rVert_2^2$이다. 목적함수의 기울기 $2A^\top(Ax-b)$를 0으로 두면 정규방정식
$$A^\top A\,x=A^\top b$$
을 얻는다. 해는 항상 존재하고, $\operatorname{rank}A=n$(열 계수 최대)일 때에만 유일하며 $x=(A^\top A)^{-1}A^\top b$이다. 기하학적으로 $Ax$는 $b$를 열공간 $\mathcal C(A)$에 직교 사영한 점이고 잔차 $r=b-Ax$는 열공간에 수직, 즉 $r\in\mathcal N(A^\top)$이다(1.1.3.1). 사영 행렬은 $P=A(A^\top A)^{-1}A^\top$이다.
측정 잡음의 공분산이 $\Sigma$인 가우시안 모델에서 최대우도 추정은 가중 최소제곱 $\min\lVert\Sigma^{-1/2}(Ax-b)\rVert_2^2$이며, 가중 행렬로 변환하면 같은 문제가 된다(1.20). 비선형 문제의 반복 단계도 선형 최소제곱이다(가우스-뉴턴, 1.12).
1.2.3.2 의사역행렬과 최소 노름 해
$A=U\Sigma V^\top$의 의사역행렬은 $A^+=V\Sigma^+U^\top$이다. $\Sigma^+$는 0이 아닌 특이값 $\sigma_i$를 $1/\sigma_i$로 바꾸고 전치한 행렬이다. Penrose(1955)는 $A^+$가 다음 네 조건을 만족하는 유일한 행렬임을 보였다.
$$AA^+A=A,\qquad A^+AA^+=A^+,\qquad (AA^+)^\top=AA^+,\qquad (A^+A)^\top=A^+A$$
해와의 관계는 다음과 같다.
- $x^+=A^+b$는 최소제곱 해 가운데 $\lVert x\rVert_2$가 최소인 해이다.
- 열 계수 최대이면 $A^+=(A^\top A)^{-1}A^\top$, 행 계수 최대이면 $A^+=A^\top(AA^\top)^{-1}$이다.
- 모든 최소제곱 해는 $x=A^+b+(I-A^+A)z$ ($z$ 임의)이다. $I-A^+A$는 영공간 $\mathcal N(A)$로의 직교 사영이며, $z$는 목적 $\lVert Ax-b\rVert$를 바꾸지 않는 자유도이다. 여유자유도 팔에서 이 자유도가 영공간 운동이다(2.11).
1.2.3.3 세 가지 풀이법과 조건수
열 계수 최대인 $A$의 2-노름 조건수는 $\kappa_2(A)=\sigma_1/\sigma_n$이다. 정규방정식의 행렬은 $\sigma_i(A^\top A)=\sigma_i(A)^2$이므로 $\kappa_2(A^\top A)=\kappa_2(A)^2$이다. 정규방정식은 조건수를 제곱하여 정밀도를 잃는다. 연산 수는 Golub & Van Loan에 따라 정리하면 다음과 같다.
| 풀이법 | 계산 | 비용(부동소수점 연산) | 오차를 정하는 조건수 | 계수 결손 |
|---|---|---|---|---|
| 정규방정식 | $A^\top A$ 형성 후 숄레스키 | 약 $mn^2+\tfrac13n^3$ | $\kappa_2(A)^2$ | 판정 실패 또는 부정확 |
| QR | $A=QR$, $Rx=Q^\top b$ | 약 $2mn^2-\tfrac23n^3$ | $\kappa_2(A)$ 수준(잔차가 작을 때) | 열 피벗이 필요 |
| SVD | $x=V\Sigma^+U^\top b$ | 위 둘보다 큼 (확인 필요: 계수) | $\kappa_2(A)$ | 특이값 문턱으로 처리 |
1.2.3.4 조건수와 섭동
정방 비특이 시스템 $Ax=b$에서 우변의 상대 섭동은 해에 최대 $\kappa_2(A)$배로 전달된다.
$$\frac{\lVert\delta x\rVert}{\lVert x\rVert}\le\kappa_2(A)\,\frac{\lVert\delta b\rVert}{\lVert b\rVert}$$
최소제곱에서는 두 항이 생긴다. 상대 섭동 크기가 $\varepsilon$이고 $\sin\theta=\lVert r\rVert/\lVert b\rVert$일 때 해의 상대 오차의 상한은 일차 근사로 $\varepsilon\left\{\dfrac{2\kappa_2(A)}{\cos\theta}+\tan\theta\,\kappa_2(A)^2\right\}$이다(Golub & Van Loan의 최소제곱 섭동 정리 (확인 필요: 정리 번호·가정)). 잔차가 작은 문제($\theta\approx0$)에서는 $\kappa_2$, 잔차가 큰 문제에서는 $\kappa_2^2$가 오차를 지배한다. 조건수는 입력이 오차를 가진 채 주어질 때 해의 정확도의 한계이며 풀이법을 바꿔도 줄지 않는다. 풀이법이 더하는 오차는 별개이다.
1.2.3.5 정칙화와 감쇠 최소제곱
특이값이 작은 방향은 잡음을 $1/\sigma_i$배로 증폭한다. 티호노프 정칙화는 목적에 해의 크기를 더한다.
$$\min_x\ \lVert Ax-b\rVert_2^2+\lambda^2\lVert x\rVert_2^2\ \Longrightarrow\ x_\lambda=(A^\top A+\lambda^2I)^{-1}A^\top b=\sum_i\frac{\sigma_i}{\sigma_i^2+\lambda^2}\,(u_i^\top b)\,v_i$$
의사역행렬의 필터 계수 $1/\sigma_i$가 $\sigma_i/(\sigma_i^2+\lambda^2)$로 바뀐다. $\sigma_i\gg\lambda$이면 두 계수가 같고, $\sigma_i\ll\lambda$이면 계수가 $\sigma_i/\lambda^2$로 줄어 해가 억제된다. 필터 계수는 $\sigma_i=\lambda$에서 최대값 $1/(2\lambda)$를 갖고 그 이상으로 커지지 않는다.
로봇 팔의 미분 기구학 $\dot x=J\dot q$에서 $\dot q=J^+\dot x$이며, 특이점 근방에서 $\lVert\dot q\rVert\sim\lVert\dot x\rVert/\sigma_{\min}$으로 폭주한다. 감쇠 최소제곱(DLS)은 $\dot q=J^\top(JJ^\top+\lambda^2I)^{-1}\dot x$로 이를 억제한다(Nakamura & Hanafusa, 1986; Wampler, 1986). 이 식은 $(J^\top J+\lambda^2I)^{-1}J^\top\dot x$와 같다. 대가는 추종 오차이다. $\dot x$가 가장 약한 방향 $u_{\min}$이면 해의 크기가 $\sigma_{\min}/(\sigma_{\min}^2+\lambda^2)$이고 $J\dot q=\dfrac{\sigma_{\min}^2}{\sigma_{\min}^2+\lambda^2}u_{\min}$이므로 추종 오차의 비율이 $\lambda^2/(\sigma_{\min}^2+\lambda^2)$이다(1.2.5에서 확인). 특이값에 따라 $\lambda$를 조정하는 가변 방식도 보고되었다 (확인 필요: 식). 같은 감쇠 구조가 비선형 최소제곱의 레벤버그-마콰트법이다(Levenberg, 1944; Marquardt, 1963; 1.12). 역기구학의 수치 해법은 2.6, 특이점은 2.9가 다룬다.
1.2.4 알고리즘
정규방정식(숄레스키)
입력: A (m×n, 열 계수 최대), b
M ← AᵀA, c ← Aᵀb
L ← 숄레스키(M) (대각 원소의 제곱이 0 이하이면 실패)
Ly = c 를 전진 대입, Lᵀx = y 를 후진 대입
출력: x
QR 최소제곱
입력: A (m×n), b
A = QR (하우스홀더)
c ← Qᵀb 의 위쪽 n개 성분
R의 위쪽 n×n 블록 R₁에 대해 R₁x = c 를 후진 대입
출력: x (잔차 노름은 Qᵀb의 아래쪽 m−n개 성분의 노름)
SVD 필터 해(의사역행렬·감쇠 최소제곱)
입력: A, b, 필터 f(σ) (의사역행렬: f = 1/σ, σ ≤ 문턱이면 0; 감쇠: f = σ/(σ²+λ²))
A = UΣVᵀ
x ← Σᵢ f(σᵢ) (uᵢᵀ b) vᵢ
출력: x
세 알고리즘의 구현은 1.2.5의 코드에 있다. $m<n$인 $J$는 전치해 SVD를 구한 뒤 좌·우 특이벡터를 바꿔 사용한다.
1.2.5 풀이 예제 — Läuchli 행렬의 세 풀이법과 3R 팔의 감쇠 최소제곱
세 풀이법의 정확도를 같은 문제에서 비교하고, 평면 3R 팔의 위치 자코비안에서 의사역행렬과 감쇠 최소제곱의 관절 속도를 계산한다. 결론부터 적으면 다음과 같다. ① 정규방정식의 오차는 $\kappa_2(A)^2$에 비례하여 늘고 $\varepsilon=10^{-8}$에서 실패한다. QR과 SVD의 오차는 $\varepsilon$에 관계없이 $10^{-16}$ 수준이다. ② 구현한 의사역행렬은 Penrose 네 조건을 $10^{-16}$ 수준으로 만족한다. ③ 팔을 펴 특이 자세로 갈 때 의사역행렬의 관절 속도는 $1/\sigma_2$로 늘어 $\theta=0.1^\circ$에서 1,600 rad/s를 넘고, 감쇠 최소제곱($\lambda=0.05$)은 같은 자세에서 0.24 rad/s이다. 대가로 가장 약한 방향의 추종 오차가 $\lambda^2/(\sigma_2^2+\lambda^2)$로 늘어 $\theta=0.1^\circ$에서 거의 1이다.
| 항목 | 값 |
|---|---|
| 입력 1 | Läuchli 행렬 $A(\varepsilon)\in\mathbb R^{4\times3}$(첫 행 $(1,1,1)$, 둘째~넷째 행은 $\varepsilon$를 대각에 둔 행), 참값 8개(표준정규 난수, 시드 2)에서 만든 무잡음 우변, 오차는 8개 중 최댓값 |
| 입력 2 | 평면 3R 팔, 링크 0.3 m 세 개(가정), $q_1=30^\circ$, $q_2=q_3=\theta$, 위치 자코비안 $J\in\mathbb R^{2\times3}$ |
| 입력 3 | 속도 지령 $\dot x=u_2$(가장 약한 특이 방향의 단위 벡터), 감쇠 $\lambda=0.05$(가정) |
| 기준 | 상대 오차 $\lVert\hat x-x\rVert/\lVert x\rVert$, 추종 오차 $\lVert\dot x-J\dot q\rVert$ |
def chol(A):
"""숄레스키 A = L L^T (양정부호가 아니면 None)"""
n = len(A)
L = [[0.0] * n for _ in range(n)]
for i in range(n):
for j in range(i + 1):
s = A[i][j] - sum(L[i][k] * L[j][k]
for k in range(j))
if i != j:
L[i][j] = s / L[j][j]
elif s > 0:
L[i][i] = math.sqrt(s)
else:
return None
return L
def tri_solve(T, b, lower):
"""삼각 시스템의 해(lower=True이면 하삼각)"""
n = len(b)
x = [0.0] * n
for i in (range(n) if lower else reversed(range(n))):
js = range(i) if lower else range(i + 1, n)
s = sum(T[i][j] * x[j] for j in js)
x[i] = (b[i] - s) / T[i][i]
return x
def solve_ne(A, b):
"""정규방정식 A^T A x = A^T b (숄레스키)"""
At = transpose(A)
L = chol(matmul(At, A))
if L is None:
return None
atb = [sum(a * c for a, c in zip(r, b)) for r in At]
y = tri_solve(L, atb, True)
return tri_solve(transpose(L), y, False)
def solve_qr(A, b):
"""QR 최소제곱: R x = Q^T b의 위쪽 n행"""
n = len(A[0])
Q, R = qr(A)
c = [sum(Q[i][j] * b[i] for i in range(len(b)))
for j in range(n)]
return tri_solve([r[:n] for r in R[:n]], c, False)
def svd_any(A):
"""임의 형상의 SVD(m < n이면 전치해 계산한다)"""
if len(A) >= len(A[0]):
return svd(A)
U1, s, V1 = svd(transpose(A))
return V1, s, U1
def filt_solve(A, b, f):
"""SVD 필터 해 x = Σ f(s)(u^T b) v, f=1/s: 의사역행렬"""
U, s, V = svd_any(A)
x = [0.0] * len(A[0])
for k, sk in enumerate(s):
c = f(sk) * sum(U[i][k] * b[i] for i in range(len(b)))
for j in range(len(x)):
x[j] += c * V[j][k]
return x
def pinv_f(smax, rcond=1e-12):
return lambda s: 1 / s if s > rcond * smax else 0.0
def dls_f(lam):
"""감쇠 최소제곱의 필터 s / (s^2 + lam^2)"""
return lambda s: s / (s * s + lam * lam)
① 세 풀이법의 오차. $\kappa_2(A)\approx1.7/\varepsilon$이다.
| $\varepsilon$ | $\kappa_2(A)$ | $\kappa_2(A)^2$ | 정규방정식(숄레스키) | QR | SVD |
|---|---|---|---|---|---|
| 0.1 | 1.7e+01 | 3.0e+02 | 4.1e-14 | 4.1e-16 | 2.1e-16 |
| 0.01 | 1.7e+02 | 3.0e+04 | 2.3e-12 | 4.2e-16 | 3.5e-16 |
| 0.001 | 1.7e+03 | 3.0e+06 | 1.7e-10 | 5.4e-16 | 3.7e-16 |
| 0.0001 | 1.7e+04 | 3.0e+08 | 1.3e-08 | 2.8e-16 | 3.1e-16 |
| 1e-05 | 1.7e+05 | 3.0e+10 | 1.8e-06 | 4.0e-16 | 3.5e-16 |
| 1e-06 | 1.7e+06 | 3.0e+12 | 2.6e-04 | 3.7e-16 | 2.9e-16 |
| 1e-07 | 1.7e+07 | 3.0e+14 | 2.7e-02 | 3.9e-16 | 2.8e-16 |
| 1e-08 | 1.7e+08 | 3.0e+16 | 실패 | 3.5e-16 | 2.4e-16 |
정규방정식의 오차는 $\kappa_2(A)^2\times10^{-16}$의 0.4~1.4배로 따라 늘어나(표의 첫 행 $4\times10^{-14}$에서 $\varepsilon=10^{-7}$의 $2.7\times10^{-2}$까지) $\kappa_2^2$ 의존을 보이고, $\varepsilon=10^{-8}$에서 $A^\top A$가 부동소수점에서 양정부호로 판정되지 않아 숄레스키가 실패한다. 이 문제는 무잡음 우변(잔차 0)이어서 QR의 오차가 $\kappa_2$에도 의존하지 않고 $10^{-16}$ 수준으로 유지된다. 잔차가 큰 문제에서는 QR도 $\kappa_2^2$ 항이 나타날 수 있다(1.2.3.4).
② 의사역행렬의 네 조건. $\theta=30^\circ$ 자세의 $J$에 대해 SVD 필터($1/\sigma$)로 만든 $J^+$의 잔차는 다음과 같다.
| 무어-펜로즈 조건 | 최대 절대 오차 |
|---|---|
| $JJ^+J=J$ | 1.1e-16 |
| $J^+JJ^+=J^+$ | 4.4e-16 |
| $(JJ^+)^\top=JJ^+$ | 2.7e-16 |
| $(J^+J)^\top=J^+J$ | 3.3e-16 |
③ 의사역행렬과 감쇠 최소제곱의 관절 속도. $\dot x=u_2$일 때 의사역행렬의 해는 $\lVert\dot q\rVert=1/\sigma_2$이고 추종 오차는 0이다. 감쇠 해는 다음과 같다.
| $\theta$ (°) | $\sigma_2$ (m) | 의사역행렬 $\lVert\dot q\rVert$ | 감쇠($\lambda=0.05$) $\lVert\dot q\rVert$ | 감쇠 추종 오차 | $\lambda^2/(\sigma_2^2+\lambda^2)$ |
|---|---|---|---|---|---|
| 60 | 0.2937 | 3.40 | 3.31 | 0.0282 | 0.0282 |
| 30 | 0.1738 | 5.75 | 5.31 | 0.0764 | 0.0764 |
| 10 | 0.0607 | 16.49 | 9.82 | 0.4046 | 0.4046 |
| 3 | 0.0183 | 54.67 | 6.45 | 0.8820 | 0.8820 |
| 1 | 0.0061 | 163.95 | 2.40 | 0.9853 | 0.9853 |
| 0.1 | 0.0006 | 1639.41 | 0.24 | 0.9999 | 0.9999 |
표의 추종 오차는 이론값 $\lambda^2/(\sigma_2^2+\lambda^2)$와 소수점 넷째 자리까지 일치한다. 감쇠 해의 관절 속도는 $\sigma_2=\lambda$ 근방에서 최대가 되며($\lambda=0.05$에서 약 10 rad/s) 그 아래에서는 감소한다. 의사역행렬은 $\sigma_2$에 반비례해 늘어난다. 감쇠의 크기 $\lambda$는 속도 상한과 추종 오차의 절충을 정하는 설계 파라미터이다.
한계. 구현은 소규모 밀집 행렬용 교육 코드이다. Läuchli 행렬은 조건수를 임의로 키울 수 있는 시험 행렬이며 실제 로봇 행렬의 조건수 분포를 대표하지 않는다. 팔의 제원과 $\lambda$는 가정이고, 감쇠 최소제곱의 $\lambda$ 선택 규칙은 비교하지 않았다. 위치와 자세를 함께 다루는 자코비안은 단위 문제가 있다(2.9).
견해: 이 책은 로봇 소프트웨어에서 최소제곱을 QR로, 계수 결손이 가능한 문제를 SVD 필터로, 특이점 근방의 속도 해를 감쇠 최소제곱으로 풀고 정규방정식은 조건수가 작음이 확인된 경우에만 사용하는 것을 기본으로 둔다고 본다. 근거는 위 예제에서 정규방정식의 오차가 $\kappa_2^2$에 비례하고 $\kappa_2=1.7\times10^7$에서 $10^{-2}$까지 커지며, 의사역행렬의 관절 속도가 $1/\sigma_2$로 폭주하는 반면 감쇠 최소제곱은 상한을 가진다는 점이다. 감쇠는 추종 오차를 대가로 하므로 안전 기능이 아니다.
1.2.6 설계 트레이드오프 — 해법의 선택
자료에서 확인되는 선택지는 네 가지다.
- ① 정규방정식(숄레스키). 가장 싸고 구현이 짧다. 조건수가 제곱되어 $\kappa_2\gtrsim10^{8}$ 근방(이중 정밀도)에서 해가 무너진다.
- ② QR. 비용이 약 두 배이나 조건수를 제곱하지 않는다. 일반 최소제곱의 기본 선택이다.
- ③ SVD 필터. 계수 결손과 특이값 문턱을 직접 다룬다. 가장 비싸나 문턱·감쇠의 선택이 가능하다.
- ④ 정칙화(감쇠·티호노프). 해의 크기를 제한하나 편향(추종 오차)을 만든다. $\lambda$를 정해야 한다.
| 방식 | 장점 | 한계 | 알맞은 경우 |
|---|---|---|---|
| ① 정규방정식 | 비용·구현 | $\kappa^2$, 계수 결손에서 실패 | 조건수가 작음이 확인된 소형 문제 |
| ② QR | 안정, 일반적 | 계수 결손은 열 피벗이 필요 | 일반 과결정 문제 |
| ③ SVD 필터 | 계수·문턱 처리 | 비용 | 특이점·계수 결손이 가능한 문제 |
| ④ 정칙화 | 해 폭주 억제 | 편향, $\lambda$ 선택 | 특이점 근방의 속도 해, 잡음이 큰 문제 |
견해: 해법은 문제의 조건수와 계수 결손 가능성으로 고른다고 본다. 근거는 예제에서 조건수가 $10^{3}$을 넘기 시작하면 정규방정식이 QR보다 여러 자릿수 부정확해졌다는 점이다. 조건수를 모르면 QR을 기본으로 두고, 팔의 속도 역기구학처럼 계수가 변하는 경우 SVD 필터와 감쇠를 둔다.
1.2.7 응용 축 비교
| 응용 축 | 전형적인 최소제곱 문제 | 주된 요구 | 관련 장 |
|---|---|---|---|
| 산업·제조 | 기구학 캘리브레이션, 도구 중심점 식별 | 정확도, 재현성 | 2.17 |
| 물류·이동 | 지도·궤적 최적화의 정규방정식(희소) | 규모, 속도 | 1.12 |
| 도로 주행 | 센서 보정, 상태 추정 | 일관성, 안정 | 9.3 |
| 서비스 | 소형 센서 보정 | 저전력, 단정밀도 | 8.15 |
| 의료·헬스케어 | 정합(좌표 정렬), 힘 추정 | 정확도, 검증 | 26.20 |
| 휴머노이드·범용 | 전신 속도 해, QP의 최소제곱 항 | 실시간, 특이점 | 1.13, 2.11 |
| 필드 | 이상치 포함 보정 | 강건성 | 1.12 |
| 국방·안보 | 항법·위치추정 | 결정성 | 9.3 |
이 표는 이 책의 정리이며 각 축의 규모·요구는 장별로 다르다.
1.2.8 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 장 |
|---|---|---|---|
| 『LAPACK Users' Guide』 3판 | SIAM, 1999 | 최소제곱 드라이버 루틴(dgels·dgelsy·dgelss·dgelsd) (확인 필요: 루틴별 알고리즘) | 1.18 |
| IEEE Std 754-2019 | IEEE | 부동소수점 형식·반올림(단위 반올림 오차 $u=2^{-53}$) | 1.18 |
| 수학 표기·기호표 | 이 책 | 의사역행렬·노름의 표기 | A.2 |
최소제곱의 해법에는 규격이 없고 구현이 라이브러리에 있다. 이 장은 라이브러리의 사양과 루틴을 읽지 않았다.
1.2.9 관련 규제·인증 요구와의 연결
직접 적용되는 규제는 없다. 특이점 근방의 관절 속도는 로봇 시스템의 안전 기능(속도 감시·정지)이 별도로 제한하며 감쇠 최소제곱은 안전 기능을 대신하지 않는다. 산업 로봇의 안전 표준은 27.10, 안전 관련 소프트웨어의 개발 요구는 26.20이 다룬다.
1.2.10 한계·유의점·미해결
- 구현의 범위. 소규모 밀집 실수 행렬의 교육 구현이다. 희소·대규모·제약 최소제곱은 다루지 않았다(1.13).
- 조건수는 입력의 한계이다. 풀이법을 바꿔도 입력 오차가 해에 전달되는 정도는 줄지 않는다.
- 정규화의 $\lambda$. 선택 규칙(고정·가변·L-곡선 등)은 문제에 의존하며 이 장은 비교하지 않았다
(확인 필요). - 정리의 출처. 섭동 정리의 정확한 가정과 번호는 확인하지 않았다
(확인 필요). - 비선형. 비선형 최소제곱과 강건 손실은 1.12이 다룬다.
1.2.11 체크포인트·연구 질문
체크포인트:
- 정규방정식의 유도와 해가 유일할 조건, 잔차의 직교성을 설명할 수 있는가.
- 의사역행렬의 SVD 표현과 Penrose 네 조건, 최소 노름 해의 의미를 말할 수 있는가.
- 일반 최소제곱 해 $A^+b+(I-A^+A)z$에서 영공간 항이 목적을 바꾸지 않는 이유를 설명할 수 있는가.
- $\kappa_2(A^\top A)=\kappa_2(A)^2$의 이유와 정규방정식의 정확도 한계를 설명할 수 있는가.
- 감쇠 최소제곱의 필터 계수와 추종 오차 $\lambda^2/(\sigma^2+\lambda^2)$를 유도할 수 있는가.
- 예제의 표에서 세 풀이법의 오차가 갈리는 조건수를 읽을 수 있는가.
연구 질문(47.12에 수록한다):
- 로봇 자코비안(6×n)의 실제 조건수 분포와 정규방정식이 무너지는 비율은 얼마인가.
- 감쇠 계수 $\lambda$의 가변 규칙(특이값 기반)은 추종 오차와 속도 상한의 절충에서 고정 $\lambda$보다 나은가.
- 잔차가 큰 문제에서 QR의 오차가 $\kappa_2^2$ 항을 보이는 조건은 실험으로 어떻게 나타나는가.
1차 출처
- R. Penrose, 「A generalized inverse for matrices」, Mathematical Proceedings of the Cambridge Philosophical Society 51(3), 1955, 406–413.
- Y. Nakamura, H. Hanafusa, 「Inverse kinematic solutions with singularity robustness for robot manipulator control」, Journal of Dynamic Systems, Measurement, and Control 108(3), 1986, 163–171.
- C. W. Wampler, 「Manipulator inverse kinematic solutions based on vector formulations and damped least-squares methods」, IEEE Transactions on Systems, Man, and Cybernetics 16(1), 1986, 93–101.
- K. Levenberg, 「A method for the solution of certain non-linear problems in least squares」, Quarterly of Applied Mathematics 2(2), 1944, 164–168.
- D. W. Marquardt, 「An algorithm for least-squares estimation of nonlinear parameters」, Journal of the SIAM 11(2), 1963, 431–441.
- G. H. Golub, C. F. Van Loan, 『Matrix Computations』, 4판, Johns Hopkins University Press, 2013
(확인 필요: 정리 번호). - Å. Björck, 『Numerical Methods for Least Squares Problems』, SIAM, 1996
(확인 필요: 절 번호). - E. Anderson 외, 『LAPACK Users' Guide』, 3판, SIAM, 1999; IEEE Std 754-2019.
- 서지 확인 경로: Crossref REST API(
api.crossref.org/works, 조회 2026-11-03).
다음 장. 1.3은 강체 운동과 좌표계·프레임 규약을 다룬다. 이 장까지의 선형대수를 바탕으로 프레임의 위치·자세를 정의하고, 이 책 전역의 규약(능동 회전, 오른손 좌표계, 프레임 표기)을 정리한다.