Ch.8 §8.1 Matrices in Engineering — 차분-물성-균형의 삼위일체와 강성행렬 \(K = A^\top C A\)

스프링-질량계로 배우는 공학 행렬의 기본 골격: 차분 행렬 \(A\), 물성 행렬 \(C\), 평형 \(A^\top y = f\), 그리고 연속체 극한

Strang Ch.8 §8.1을 단독으로 상세히 다룬다. 스프링과 질량으로 이루어진 1차원 모델에서 강성행렬 \(K = A^\top C A\) 가 어떻게 자연스럽게 등장하는지, 왜 이 형태가 항상 대칭이며 대부분의 경우 양정치인지, 그리고 경계조건(fixed-fixed, fixed-free, free-free, circular)이 어떻게 행렬의 정칙성과 영공간을 바꾸는지 직관과 손계산으로 함께 설명한다. 마지막으로 이산 모델이 연속체 극한에서 미분방정식 \(-\frac{d}{dx}(c(x)\frac{du}{dx}) = f(x)\) 로 바뀌는 과정을 통해 유한요소법(FEM)의 출발점을 살펴본다.

Math
Linear Algebra
저자

Kwangmin Kim

공개

2026년 04월 12일

1 개요

한 줄 요약

공학에서 만나는 평형 방정식은 거의 항상 \(K u = f\) 형태이고, 그 강성행렬 \(K\)차분 행렬 \(A\) — 물성 행렬 \(C\) — 그 전치 \(A^\top\) 의 곱 \(K = A^\top C A\) 로 분해된다. 이 분해는 단순한 표기 트릭이 아니라 (1) 변위에서 변형을 만드는 기하학적 단계, (2) 변형에서 내부힘을 만드는 재료적 단계, (3) 내부힘이 외부힘과 균형을 이루는 물리적 단계 를 그대로 옮긴 자연어다.

선형대수가 응용 수학과 공학에서 가장 일관되게 등장하는 곳을 하나만 꼽으라면 그것은 평형 방정식(equilibrium equation) 이다. 다리의 처짐, 빌딩의 변형, 회로의 전류, 물체의 열분포, 모두 같은 골격을 가진다.

\[ K u = f, \qquad K = A^\top C A \]

여기서 \(u\) 는 우리가 알고 싶은 미지수(변위, 전위, 온도 …)이고, \(f\) 는 외부에서 주어지는 입력(중력, 전류원, 열원 …)이며, \(K\) 는 시스템의 강성행렬(stiffness matrix) 이다. 이 절의 목표는 두 가지다.

  1. 왜 이 골격인가 — 임의의 공학 모델에서 \(A^\top C A\) 가 우연이 아니라 차분-물성-균형 이라는 세 단계 물리에서 필연적으로 나옴을 보인다.
  2. 왜 항상 대칭이고 대부분 양정치인가\(C\) 가 양의 대각이고 \(A\) 가 독립 열을 가지면 \(K\) 는 자동으로 대칭 양정치가 된다. 이 사실을 손으로 증명한다.

스프링과 질량으로 이루어진 1차원 모델은 이 모든 이야기를 가장 작은 행렬 크기로 정직하게 보여 주는 출발점이다. 본문에서 다룰 네 가지 경계조건(fixed-fixed, fixed-free, free-free, circular)은 그 자체가 이미 유한요소법(FEM), 그래프 라플라시안, 마르코프 체인 으로 가는 입구다.

2 세 단계 골격: \(u \to e \to y \to f\)

가장 핵심이 되는 그림은 다음 네 벡터의 사슬이다.

\[ \underbrace{u}_{\text{변위}} \;\xrightarrow{\;A\;}\; \underbrace{e}_{\text{변형}} \;\xrightarrow{\;C\;}\; \underbrace{y}_{\text{내부힘}} \;\xrightarrow{\;A^\top\;}\; \underbrace{f}_{\text{외부힘}} \]

세 화살표 각각이 한 줄 방정식이다.

단계 이름 어디서 오는가
1 \(e = A u\) 운동학(Kinematic) 기하 — 변위가 어떻게 변형을 만드는가
2 \(y = C e\) 구성식(Constitutive) 재료 — 변형이 어떻게 내부힘을 만드는가 (Hooke의 법칙)
3 \(f = A^\top y\) 평형(Static) 물리 — 내부힘이 어떻게 외부힘과 균형을 이루는가

세 식을 합치면

\[ f = A^\top y = A^\top (C e) = A^\top (C A u) = (A^\top C A)\, u. \]

\[ \boxed{\;K u = f, \qquad K = A^\top C A.\;} \]

여기서 결정적으로 중요한 것은 세 번째 단계의 행렬이 첫 번째 단계 행렬의 전치 \(A^\top\) 와 정확히 같다 는 사실이다. 우리가 일부러 그렇게 만든 것이 아니라, 자연(가상일의 원리, 미분 적분의 부분적분 공식)이 그렇게 강요한다.

직관: 왜 \(A^\top\) 가 다시 등장하는가

변위 \(u\) 에 가상 변위 \(\delta u\) 를 주면 변형은 \(\delta e = A\,\delta u\) 만큼 변한다. 외부힘이 한 일은 \(\delta u^\top f\) 이고, 내부힘이 한 일은 \(\delta e^\top y = (A\,\delta u)^\top y = \delta u^\top (A^\top y)\) 이다. 임의의 \(\delta u\) 에 대해 두 일이 같아야 평형이므로 \(f = A^\top y\) 가 강제된다. 즉 평형은 운동학의 전치(transpose) 다. 이것이 모든 공학 행렬에 \(A\)\(A^\top\) 가 함께 나타나는 이유다.

3 스프링-질량 모델: fixed-fixed

가장 작은 비자명한 예시로 시작한다. 세 개의 질량 \(m_1, m_2, m_3\) 가 네 개의 스프링으로 위·아래가 고정된 벽 사이에 매달려 있다고 하자. 스프링 상수는 \(c_1, c_2, c_3, c_4\) 다.

   |  벽 (u_0 = 0)
   $ 스프링 c_1, 장력 y_1
   m_1, 변위 u_1
   $ 스프링 c_2, 장력 y_2
   m_2, 변위 u_2
   $ 스프링 c_3, 장력 y_3
   m_3, 변위 u_3
   $ 스프링 c_4, 장력 y_4
   |  벽 (u_4 = 0)

3.1 1단계: \(e = A u\) (운동학)

각 스프링의 신장 \(e_i\) 는 양 끝점 변위의 차이다.

\[ e_1 = u_1 - u_0 = u_1, \quad e_2 = u_2 - u_1, \quad e_3 = u_3 - u_2, \quad e_4 = u_4 - u_3 = -u_3. \]

이 네 식을 행렬로 묶으면 4행 3열의 차분 행렬(difference matrix) \(A\) 가 나온다.

\[ e = A u \quad\Longleftrightarrow\quad \begin{bmatrix} e_1 \\ e_2 \\ e_3 \\ e_4 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ -1 & 1 & 0 \\ 0 & -1 & 1 \\ 0 & 0 & -1 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \\ u_3 \end{bmatrix}. \]

왜 직사각인가 — 미지수(변위)는 3개인데 변형은 4개다. 스프링이 질량보다 한 개 많기 때문이다. 미지수 차원과 방정식 차원이 다른 것은 운동학의 본질이고, 이 차이가 다음 단계에서 \(A^\top\) 가 자연스럽게 작용하게 만든다.

3.2 2단계: \(y = C e\) (Hooke의 법칙)

각 스프링은 자기 자신의 Hooke 법칙 \(y_i = c_i e_i\) 를 따른다. 모든 스프링이 독립적이므로 \(C\)양의 대각행렬 이다.

\[ y = C e, \qquad C = \operatorname{diag}(c_1, c_2, c_3, c_4). \]

물리적으로 \(c_i > 0\) 는 “스프링은 늘어나면 잡아당기고 줄어들면 밀어낸다” 는 비자명하지 않은 가정이고, 이 한 줄 가정 덕분에 뒤에서 \(K\) 의 양정치성이 따라온다.

3.3 3단계: \(f = A^\top y\) (평형)

질량 \(m_j\) 에는 위 스프링의 장력 \(y_j\) 가 위로 끌어당기고, 아래 스프링의 장력 \(y_{j+1}\) 이 아래로 끌어당기며, 외부힘 \(f_j\) (중력)는 그 차이로 정의된다.

\[ f_j = y_j - y_{j+1}. \]

세 질량에 대해 묶으면

\[ \begin{bmatrix} f_1 \\ f_2 \\ f_3 \end{bmatrix} = \begin{bmatrix} 1 & -1 & 0 & 0 \\ 0 & 1 & -1 & 0 \\ 0 & 0 & 1 & -1 \end{bmatrix} \begin{bmatrix} y_1 \\ y_2 \\ y_3 \\ y_4 \end{bmatrix} = A^\top y. \]

놀라운 점 — 1단계에서 등장한 \(A\) 의 전치가 정확하게 다시 나왔다. 우리가 차분과 평형을 따로 따로 적었을 뿐인데, 자연이 알아서 \(A\)\(A^\top\) 를 짝지어 준다. 이것이 앞에서 강조한 “평형은 운동학의 전치” 의 구체적 모습이다.

3.4 합치기: \(K_0 = A^\top C A\)

세 식을 합치면

\[ K_0 u = f, \qquad K_0 = A^\top C A = \begin{bmatrix} c_1+c_2 & -c_2 & 0 \\ -c_2 & c_2+c_3 & -c_3 \\ 0 & -c_3 & c_3+c_4 \end{bmatrix}. \]

특히 모든 스프링 상수가 \(c_i = 1\) 이면 \(C = I\) 이고

\[ K_0 = A^\top A = \begin{bmatrix} 2 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 2 \end{bmatrix}. \]

이것이 선형대수 교과서를 통틀어 가장 자주 등장하는 \(-1, 2, -1\) 삼중대각 행렬 이다. 라플라시안의 1차원 이산 버전이고, 푸아송 방정식, 열방정식, 진동 모드, 그래프 라플라시안, 1D 유한요소까지 같은 골격으로 이어진다.

직관: 왜 대각이 \(c_1 + c_2\) 인가

질량 \(m_1\) 의 입장에서 보면, 위쪽 스프링 \(c_1\) 과 아래쪽 스프링 \(c_2\)둘 다 자기를 잡아당기고 있다. 그래서 \(m_1\) 의 “유효 강성” 은 두 스프링의 합 \(c_1 + c_2\) 다. 비대각의 \(-c_2\) 는 “\(m_2\)\(c_2\) 만큼 \(m_1\) 을 끌어당긴다” 는 결합을 의미하고, 부호가 음인 이유는 \(m_2\) 가 같은 방향으로 움직이면 스프링이 덜 늘어나기(=내부힘이 줄어들기) 때문이다.

4 \(K\) 의 네 가지 성질

위에서 만든 \(K = A^\top C A\) 는 우연이 아니라 반드시 다음 네 가지 성질을 가진다. 모두 한 줄로 증명된다.

1. 대칭 (Symmetric).

\[ K^\top = (A^\top C A)^\top = A^\top C^\top (A^\top)^\top = A^\top C A = K. \]

증명에는 \(C\) 가 대각(따라서 대칭)이고, 전치가 곱의 순서를 뒤집는다는 사실만 쓰였다. 즉 강성행렬은 공학적 해석 없이도, 만드는 방식 그 자체에서 자동으로 대칭 이다.

2. 양반정치 (Positive Semidefinite).

임의의 벡터 \(u\) 에 대해

\[ u^\top K u = u^\top (A^\top C A) u = (A u)^\top C (A u) = e^\top C e = \sum_i c_i e_i^2 \ge 0. \]

여기서 \(c_i > 0\)\(e_i^2 \ge 0\) 만 사용했다. 즉 강성행렬은 항상 양반정치다.

3. 양정치 (Positive Definite) — \(A\) 가 독립 열을 가질 때만.

\(u^\top K u = 0\) 이려면 모든 \(i\) 에 대해 \(e_i = 0\), 즉 \(A u = 0\) 이어야 한다. 이것이 \(u = 0\) 만을 강제하려면 \(A\) 의 영공간이 자명해야 하고, 이는 정확히 \(A\) 가 독립 열을 가질 조건 이다. 따라서

\[ A \text{ 의 열이 독립} \;\Longleftrightarrow\; K = A^\top C A \text{ 가 양정치}. \]

이 동치는 뒤에 나오는 free-free 와 circular 의 특이성 을 단숨에 설명해 준다.

4. 에너지 해석.

\[ \tfrac{1}{2}\, u^\top K u = \tfrac{1}{2} \sum_i c_i e_i^2 = \text{전체 스프링에 저장된 탄성 에너지}. \]

에너지는 음수일 수 없으므로 \(K\) 는 양반정치여야 한다. 거꾸로 말하면, 자연계의 어떤 법칙도 강성행렬이 음의 에너지를 가질 수 없게 만든다. 양정치성은 단지 수학적 성질이 아니라 에너지 보존의 행렬판 이다.

한 줄 정리

\(K\) 가 대칭 양정치” \(\;\Longleftrightarrow\;\)\(K\) 가 어떤 차분 행렬 \(A\) 와 양의 대각 \(C\)\(A^\top C A\) 형태” \(\;\Longleftrightarrow\;\) “이차형식 \(\frac{1}{2}u^\top K u\) 가 물리적 에너지” — 세 진술은 같은 사실의 다른 얼굴이다.

5 작은 예제: 모두 같은 스프링과 질량

모든 \(c_i = c\), 모든 \(m_j = m\) 이라 하자. 중력은 각 질량을 \(f_j = mg\) 로 끌어당긴다. 그러면

\[ K_0 = c \begin{bmatrix} 2 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 2 \end{bmatrix}, \qquad K_0^{-1} = \frac{1}{4c}\begin{bmatrix} 3 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 3 \end{bmatrix}. \]

따라서 변위는

\[ u = K_0^{-1} f = \frac{mg}{c}\begin{bmatrix} 3/2 \\ 2 \\ 3/2 \end{bmatrix}. \]

해석 — 가운데 질량이 가장 많이 내려간다 (\(u_2 = 2 \cdot mg/c\)). 양 끝의 질량은 위·아래 벽이 가까이 있어 덜 내려간다 (\(u_1 = u_3 = 1.5 \cdot mg/c\)). 단위도 옳다. 힘 \(mg\) 를 강성 \(c\) (단위 길이당 힘)로 나누면 길이가 된다.

이어서 신장은

\[ e = A u = \frac{mg}{c}\begin{bmatrix} 3/2 \\ 1/2 \\ -1/2 \\ -3/2 \end{bmatrix}, \]

장력은 \(y = C e = c \cdot e\) 이므로 \(y = (1.5,\, 0.5,\, -0.5,\, -1.5)\, mg\) 다. 위 두 스프링은 늘어나고(\(y > 0\), 인장), 아래 두 스프링은 줄어든다(\(y < 0\), 압축). 중력에 의해 무게중심이 아래로 처지면 위쪽은 잡아당기고 아래쪽은 밀어내는 직관과 일치한다.

또한 \(e_1 + e_2 + e_3 + e_4 = 0\) 인 것도 자동이다 — 양 끝이 고정되어 있으니 모든 신장의 합은 0이어야 한다.

6 fixed-free: 한쪽만 고정하면 어떻게 되는가

이번엔 맨 아래 벽을 떼어 버리자. 4번째 스프링이 사라지고, 마지막 질량 \(m_3\) 는 자유롭게 매달린다. 그러면 차분 행렬은 마지막 행이 사라져 3×3 정사각형이 된다.

\[ A_1 = \begin{bmatrix} 1 & 0 & 0 \\ -1 & 1 & 0 \\ 0 & -1 & 1 \end{bmatrix}, \quad K_1 = A_1^\top C_1 A_1 = \begin{bmatrix} c_1+c_2 & -c_2 & 0 \\ -c_2 & c_2+c_3 & -c_3 \\ 0 & -c_3 & c_3 \end{bmatrix}. \]

가장 빠른 도출 방법은 이전 fixed-fixed 의 \(K_0\) 에서 \(c_4 = 0\) 으로 두기 이다. 마지막 행렬의 마지막 대각 원소가 \(c_3 + c_4\) 에서 \(c_3\) 으로 줄어들었음에 주목한다.

모든 \(c_i = 1\) 이면

\[ K_1 = \begin{bmatrix} 2 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 1 \end{bmatrix}, \qquad K_1^{-1} = \begin{bmatrix} 1 & 1 & 1 \\ 1 & 2 & 2 \\ 1 & 2 & 3 \end{bmatrix}. \]

같은 균일 중력 \(f = mg \cdot (1,1,1)\) 을 적용하면

\[ u = K_1^{-1} f = \frac{mg}{c}\begin{bmatrix} 3 \\ 5 \\ 6 \end{bmatrix}. \]

해석 — 아래쪽이 자유로워졌으므로 모든 변위가 fixed-fixed 보다 훨씬 크다. \(u_1 = 3 mg/c\) 인 이유는 첫 스프링이 자기 아래에 매달린 세 질량 전부의 무게 를 떠받쳐야 하기 때문이다. 두 번째 스프링은 그 아래의 두 질량만 떠받친다 (\(u_2 - u_1 = 2 mg/c\)). 세 번째는 자기 바로 아래의 한 질량만 떠받친다 (\(u_3 - u_2 = mg/c\)). 신장 \(e = (3, 2, 1) \cdot mg/c\) 의 등차 패턴은 누적되는 무게가 아래로 갈수록 한 단위씩 줄어드는 직관을 그대로 보여 준다.

이 경우 \(A_1\)정사각 이고 가역이므로

\[ y = (A_1^\top)^{-1} f = \begin{bmatrix} 3mg \\ 2mg \\ mg \end{bmatrix} \]

처럼 \(u\) 를 거치지 않고 \(y\) 를 직접 구할 수도 있다. 일반적으로 \(A\) 가 직사각이면 이것이 불가능하므로(\(A^\top y = f\) 의 해가 무한히 많거나 없음), \(K^{-1}\) 을 통째로 푸는 수밖에 없다.

7 free-free 와 circular: 특이성과 영공간

마지막으로 양 끝이 모두 자유로운 경우를 보자. 위·아래 벽이 모두 사라졌고 스프링은 두 개만 남는다 (\(c_2, c_3\) 이라고 하자). 이제 차분 행렬은 2행 3열의 짧고 넓은 행렬이다.

\[ A_{\text{ff}} = \begin{bmatrix} -1 & 1 & 0 \\ 0 & -1 & 1 \end{bmatrix}. \]

문제: \(A_{\text{ff}} u = 0\) 의 해가 존재하는가? \(u = (1,1,1)\) 을 대입하면 \(e = (0,0)\) 이다. 즉 세 질량이 모두 같은 양만큼 평행이동 하면 어떤 스프링도 늘어나지 않는다. 이것이 강체 운동 모드(rigid body mode) 이고, 수학적으로는 \(A_{\text{ff}}\) 의 영공간에 \((1,1,1)\) 이 있다는 사실이다.

따라서

\[ K_{\text{singular}} = A_{\text{ff}}^\top C_{\text{ff}} A_{\text{ff}} \]

도 같은 영공간을 가져 양반정치이지만 양정치는 아니다. 고유값 중 하나가 정확히 0이고, 그에 해당하는 고유벡터가 \((1,1,1)\) 이다.

물리적 의미 — 외부힘 \(f\) 에 대해 \(K u = f\) 를 풀려면 \(f\) 가 영공간과 직교해야 한다. 즉

\[ (1,1,1) \cdot f = f_1 + f_2 + f_3 = 0. \]

세 외부힘의 합이 0이 아니면 시스템 전체가 가속도를 받아 평형을 잃고 날아가 버린다. 평형은 존재하지 않으므로 방정식의 해도 없다. 이것은 로켓 방정식의 정역학판 이다.

그래프 라플라시안과의 연결

\(A_{\text{ff}}\) 는 두 개의 변(스프링)과 세 개의 정점(질량)을 가진 경로 그래프의 incidence matrix(접속 행렬) 와 정확히 같다. 그래서 \(A^\top A\) 는 그래프 라플라시안 \(L\) 이고, 영공간에 \((1,1,1)\) 이 있는 이유는 “연결 성분의 개수만큼 0 고유값이 존재한다” 는 그래프 라플라시안의 기본 정리 의 가장 작은 사례다. 같은 골격이 §8.2 의 회로/네트워크에서 그대로 다시 등장한다 (Ch.8 §8.2 — Graphs and Networks 참조).

원형(circular)으로 양 끝을 이어 붙이면 — 마지막 질량과 첫 질량을 추가 스프링으로 연결하면 — 행렬은 다음과 같이 바뀐다.

\[ K_{\text{circular}} = \begin{bmatrix} 2 & -1 & -1 \\ -1 & 2 & -1 \\ -1 & -1 & 2 \end{bmatrix}. \]

이 행렬은 세 정점이 모두 두 개의 변으로 둘러싸인 사이클 그래프의 라플라시안이다. 행 합이 0이므로 여전히 \((1,1,1)\) 이 영공간에 있고, 고유값은 \(\{0, 3, 3\}\) 다. 회로를 닫아도 강체 회전 모드는 없어지지 않는다.

8 \(K\) 의 성질 종합표

경계조건 차분 \(A\) \(K\) 의 형태 양정치성 영공간
fixed-fixed \(4 \times 3\) \(K_0\) (위 식) 양정치 \(\{0\}\)
fixed-free \(3 \times 3\) 정사각·가역 \(K_1\) 양정치 \(\{0\}\)
free-free \(2 \times 3\) 짧고 넓음 \(K_{\text{singular}}\) 양반정치 \(\operatorname{span}\{(1,1,1)\}\)
circular \(3 \times 3\) 사이클 \(K_{\text{circular}}\) 양반정치 \(\operatorname{span}\{(1,1,1)\}\)

한눈에 보는 패턴\(A\) 가 독립 열을 가지면(첫 두 줄) \(K\) 는 양정치이고 풀이는 유일하다. \(A\) 가 의존 열을 가지면(아래 두 줄) \(K\) 는 특이하고, 영공간이 강체 운동 모드에 해당한다.

9 연속체 극한: 미분방정식이 등장하는 순간

지금까지의 모델은 모두 이산 이었다. 질량과 스프링의 개수가 유한이고, 행렬 크기도 유한이다. 이제 질량과 스프링의 개수를 무한히 많이, 무한히 가깝게 두면 어떻게 될까. 연속적인 탄성 막대기가 된다.

각 질량 사이 거리를 \(\Delta x\) 로 두면, 차분은 미분으로 바뀐다.

\[ \frac{u_i - u_{i-1}}{\Delta x} \;\longrightarrow\; \frac{du}{dx}, \qquad \frac{y_i - y_{i+1}}{\Delta x} \;\longrightarrow\; -\frac{dy}{dx}. \]

따라서 세 단계는

\[ e(x) = \frac{du}{dx}, \qquad y(x) = c(x)\, e(x), \qquad -\frac{dy}{dx} = f(x) \]

가 되고, 합치면

\[ \boxed{\;-\frac{d}{dx}\!\left( c(x)\, \frac{du}{dx}\right) = f(x).\;} \]

이것이 1차원 탄성 막대기의 평형 방정식 이다. 같은 식이 1차원 정상상태 열전도(\(c\) 는 열전도도, \(u\) 는 온도, \(f\) 는 열원), 1차원 정상상태 확산, 1차원 푸아송 방정식 등에서 등장한다. 즉

\[ A^\top C A \;\longleftrightarrow\; -\frac{d}{dx}\!\left(c(x)\frac{d}{dx}\right) \]

라는 이산-연속 대응 이 정확히 성립한다. 그리고 이 대응이 바로 유한요소법(FEM) 의 출발점이다. FEM 은 연속 미분방정식을 잘게 쪼개 다시 이산 행렬 \(K_{\text{FE}} u = f\) 로 변환하는데, 그 결과 행렬은 항상 우리가 본 형태와 같은 골격 — 차분, 물성, 그 전치 — 을 가진다.

왜 부호가 음수인가

미분 한 번이 차분 한 번에 대응한다면, 두 번 미분은 차분 두 번에 대응할 것 같다. 그런데 부호가 음수인 이유는 평형 단계의 차분 \(y_i - y_{i+1}\)\(-1\) 이 숨어 있기 때문이다. 결국 \(A^\top\) 는 음의 미분 \(-d/dx\) 에 대응하고, 두 번 거치면서 음의 음수가 양수가 되어 최종 미분방정식 좌변에 \(-d/dx(c \cdot d/dx)\) 형태가 나온다. 부호가 정확히 자리잡는 덕분에 이차형식 \(\int c (du/dx)^2 \, dx\) 가 양수가 되고, 이것이 연속체의 에너지 양정치성이다.

10 코드: NumPy 로 fixed-fixed 와 fixed-free 풀어 보기

import numpy as np

# fixed-fixed: 4 by 3 차분 행렬
A0 = np.array([
    [ 1,  0,  0],
    [-1,  1,  0],
    [ 0, -1,  1],
    [ 0,  0, -1],
])

# 스프링 상수 (모두 1로 두면 K_0 = A^T A 가 -1, 2, -1 행렬)
C0 = np.diag([1.0, 1.0, 1.0, 1.0])

K0 = A0.T @ C0 @ A0
print("K0 =\n", K0)
# [[ 2 -1  0]
#  [-1  2 -1]
#  [ 0 -1  2]]

# 균일 중력 f = (mg, mg, mg), m=g=1 로 정규화
f = np.array([1.0, 1.0, 1.0])

u0 = np.linalg.solve(K0, f)
e0 = A0 @ u0
y0 = C0 @ e0
print("변위 u =", u0)        # [1.5  2.   1.5]
print("신장 e =", e0)        # [ 1.5  0.5 -0.5 -1.5]
print("장력 y =", y0)        # [ 1.5  0.5 -0.5 -1.5]
print("u^T K u =", u0 @ K0 @ u0)  # 양수 → 양정치 확인
# fixed-free: 마지막 행 제거 → 3 by 3 정사각
A1 = A0[:3, :]
C1 = np.diag([1.0, 1.0, 1.0])

K1 = A1.T @ C1 @ A1
u1 = np.linalg.solve(K1, f)
print("K1 =\n", K1)
# [[ 2 -1  0]
#  [-1  2 -1]
#  [ 0 -1  1]]
print("변위 u =", u1)  # [3. 5. 6.]
# free-free: 영공간 확인
A_ff = np.array([
    [-1,  1,  0],
    [ 0, -1,  1],
])
K_ff = A_ff.T @ A_ff
print("K_ff =\n", K_ff)
# [[ 1 -1  0]
#  [-1  2 -1]
#  [ 0 -1  1]]

eigvals, eigvecs = np.linalg.eigh(K_ff)
print("고유값 =", eigvals)              # [0.  1.  3.]
print("0에 대응하는 고유벡터 =", eigvecs[:, 0])
# (1, 1, 1)/sqrt(3) — 강체 평행이동 모드

이 코드 한 번이면 위에서 손으로 푼 모든 결과(변위, 신장, 장력, 양정치성, 영공간 모드)를 한 번에 검증할 수 있다.

11 데이터 사이언스와의 연결

이 절의 골격은 공학 밖에서도 똑같이 등장한다.

분야 \(A\) \(C\) \(K = A^\top C A\)
회로 이론 그래프 incidence matrix 컨덕턴스 대각 노드 어드미턴스 행렬 (Kirchhoff)
그래프/네트워크 변-정점 incidence matrix 가중치 대각 그래프 라플라시안 \(L\)
가중 최소제곱 설계 행렬 가중치 대각 \(W\) 정규방정식 \(X^\top W X\)
가우시안 BLUE 설계 행렬 \(\Sigma^{-1}\) \(X^\top \Sigma^{-1} X\) (피셔 정보)
정규화 회귀(Tikhonov) 차분 행렬 \(D\) \(\lambda I\) \(\lambda D^\top D\) (smoothness penalty)
GNN 라플라시안 정규화 edge incidence \(I\) \(L = A^\top A\)

특히 머신러닝에서 자주 만나는 정규방정식 \(X^\top X \beta = X^\top y\) 와 그 가중판 \(X^\top W X \beta = X^\top W y\) 는 정확히 \(K = A^\top C A\) 형태다. 따라서 다음 사실이 모두 한 줄에 따른다.

  • \(X^\top W X\)항상 대칭 양반정치 다 (위의 성질 1과 2).
  • \(X\) 가 독립 열을 가지면 양정치다 (성질 3).
  • 잔차 \(e = y - X\beta\) 의 가중 제곱합 \(e^\top W e\) 는 음수가 될 수 없다 (성질 4의 에너지).

즉 통계학의 가우스–마르코프 정리, 머신러닝의 정규방정식, 공학의 강성행렬, 그래프 이론의 라플라시안은 모두 같은 행렬 골격의 다른 이름 이다. 한 번 이 골격을 익혀 두면, 분야가 바뀌어도 새로 익힐 것이 거의 없다.

12 정리

이 절의 핵심을 한 표로 모은다.

단계 직관 어떤 행렬을 만드는가
운동학 \(e = A u\) 변위 → 변형 (차분) 직사각 차분 행렬 \(A\)
구성식 \(y = C e\) 변형 → 내부힘 (Hooke) 양의 대각 \(C\)
평형 \(f = A^\top y\) 내부힘 ↔︎ 외부힘 \(A\) 의 전치 \(A^\top\)
\(K u = f\), \(K = A^\top C A\) 변위 → 외부힘 대칭 양정치 강성행렬

그리고 다음 한 줄을 기억하자.

\(K\) 가 대칭 양정치” \(\;\Longleftrightarrow\;\)\(K\) 가 어떤 차분 행렬의 \(A^\top C A\)\(\;\Longleftrightarrow\;\)\(\frac{1}{2}u^\top K u\) 가 물리적 에너지” — 한 사실의 세 얼굴이다.

13 관련 주제

Subscribe

Enjoy this blog? Get notified of new posts by email: