[질문 - "폭탄 용이" 님]
symmetric matrix의 좋은 점이 무엇일까요...???
선대 공부를 하다보니 symmetric matrix는 대각화를 할 수 있다고 하고...
또 canonical form으로 나타낼 수가 있습니다...
제가 아는 부분이 이것이 정확하게 맞는지 알구 싶구요...
또 진짜 symmetric matrix가 좋은 점이 무엇인지 궁금합니다...
글구 선형대수학을 하는 목적이 무엇인지 궁금합니다...
많은 답변 부탁드리겠습니다...
[꼬리말 - "좀생이별" 님]
선형대수는 한벡터스페이스 A에서 벡터스페이스 B로의 선형함수들의 대수적 특징을 찾는것입니다.
Hibert space가 대표적 예라고 할 수 있죠...
[리플 - "밝히리" 님]
함수(function 뿐 아니라 map, transformation, operator 등도 포함해서)가 'linear'라는 성질을 가지면 그 함수는 '행렬'로 표현할 수 있다.
이것이 선형대수 이론의 골자입니다.
믿거나 말거나 미적분도 linear 성질을 가지고 있기 때문에 행렬로 표현이 가능합니다.
행렬을 이용하면 오히려 계산이 더 복잡해서 그렇게 하는 사람은 없지만 말이죠 ^^;
우리가 사는 세상의 여러가지 현상을 함수로 표현할 때 대부분 'linear'라는 성질을 가진 함수로 표현할 수 있습니다.
혹, 그렇지 않은 매우 복잡한 함수라 하더라도 linear 성질을 가진 함수로 '근사'시켜서 계산을 쉽고 단순하게 할 수 있지요.
이것으로 선형대수를 배우는 목적이 분명해 지나요?
수학만을 전공한 사람의 입장에서 볼때는 어떤지 잘 모르겠지만,
학부때 물리와 수학을 같이 전공한 저의 입장에서는 위와 같습니다.
조금 더 구체적으로 설명하자면
미지수가 n개인 일차 방정식은 행렬을 이용하여 바로 그 해를 구할 수가 있습니다.
고등학교 때 배우는 타원, 쌍곡선 등도 2 by 2 행렬을 이용하여 표현할 수 있습니다.
그 행렬의 고유값(eigenvalue)은 타원의 장축, 단축 반지름과 관련이 있습니다.
그래서 가끔 나오는 비뚤어진(회전한) 타원 방정식을 주고 장축, 단축 반지름을 구하는 문제도 회전변환을 하지 않아도, 타원이 표준형에서 몇도가 돌아갔는지 모르고도, 바로 구할 수 있습니다.
(고등학생들의 희소식 ^^;)
물체의 회전운동을 기술하기 위해서는 그 물체의 관성 모멘트(moments of inertia)를 구해야 하는데,
이 관성 모멘트가 3 by 3 행렬을 형태로 표현됩니다.
coupled oscillations 문제 역시 행렬을 이용하여 풉니다.
* coupled oscillations
C02 원자와 비슷한 형태인 [물체 - 용수철 - 물체 - 용수철 - 물체]모양의 물체의 진동을 푸는 문제
진자 아래에 진자가 달려있는 문제,
복잡한 LRC 회로 문제 등등
가장 중요한 것은. 바로 양자역학(quantum mechanics)입니다.
선형대수 이론을 알아야 양자역학을 보다 정확하게 알 수 있습니다.
양자역학에서는 운동량, 위치, 각운동량, 등등의 operator를 행렬로 표현할 수 있기 때문이지요.
양자역학에서는 실수 뿐 아니라 복소수가 들어있는 행렬을 다룹니다.
그래서 조금 복잡하지요. 사용하는 용어도 약간 다르구요.
특수 상대성 이론 역시 심화(?)과정에서는 행렬을 이용해서 표현합니다.
이렇게 많은 문제를 행렬로 표현하고 푸는 이유는
행렬을 다른 잡다한 것 없이 '행렬'이라는 추상화된 기호를 도입함으로 인해 생기는 계산상의 편리함 때문입니다.
대부분의 경우에는 행렬을 이용하여 문제를 푸는 것이 훨씬 계산이 빠르고 쉽습니다.
이제 처음 질문에 대해서 대답을 하지요.
symmetric matrix(혹은 Hermitian matrix) 의 가장 좋은 점은 다음 두가지 성질 때문입니다.
1. 모든 고유값이 실수이다.
2. 서로 다른 고유값에 대응하는 고유벡터는 서로 직교한다.
이것은 매우 간단하게 증명할 수 있으므로 증명 방법을 익혀 두세요.
저는 이 증명의 우아함에 반했답니다. ^^*
대각화는 정방행렬이면 거의 대부분이 가능합니다.
symmetric matrix의 장점은 orthogonal(혹은 unitary) matrix를 곱해서 대각화를 할 수 있다는 것입니다.
더 이상 길게 설명하지는 않겠지만,
선형대수를 공부하다 보면
위 두가지 성질이 여러가지로 매우 큰 도움이 된다는 것을 알 수 있을 것입니다.
[꼬리말 - "JH Law" 님]
linear algebra의 울트라 초파워 슈퍼 짱의 위력은 전공을 배우면 배울수록 느껴진다는..
정말로 안쓰이는 곳이 없다는게 느껴짐-_-
미적분도 다변수함수로 넘어가면 Differential operator가 matrix로 표현되죠. matrix가지고 오목, 볼록 판단하고..
[리플 - "폭탄 용이" 님]
답변 넘넘 감솨합니다... ^^*
위 답변에서 자연스러운 의문점이 하나가 더 드는데요...
왜 matrix(symmetric matrix)를 대각화 하는 이유가 무엇입니까...???
change of variables를 해서 대각화를 하는 궁금증이 다시 생기는군요... ^^;;
다시 한번 더 답변 주시면 감솨하겠습니다...
새해가 밝았는데 새해 복 마니 받으시길... ^^*
[꼬리말 - "에바리스테" 님]
행렬값을 쉽게 구할 수 있기 때문이죠
행렬을 대각화했다면 행렬값은 그 대각화된 값들의 곱으로 표현될 수 있으니까요
[리플 - "밝히리" 님]
밑에 심현우님이 좋은 답변 해 주셨네요 ^^*
diagonal matrix 는 곱셈(행렬*행렬 혹은 행렬*벡터)이 복잡하지 않고 매우 간단합니다.
그리고 diagonal matrix 끼리의 곱은 교환법칙이 성립합니다.
이것은 행렬을 바라보았을 때의 시각이고 basis 를 바라보았을 때는 설명이 달라지지요.
diagonal matrix 를 만든다는 것은 기존의 basis를 다른 적당한(편한) basis로 바꾼다는 말이 됩니다.
이해하기 쉽게 타원의 방정식을 예로 들어 보죠.
앞으로
┌ 1 2 ┐
│ │
└ 3 4 ┘
이런 행렬을 [1,2 ; 3,4] 라고 표현하겠습니다.
아래 행렬끼리의 곱셈을 해 보죠.
[x,y] [3,1 ; 1,3] [x;y] = 1
위 계산의 결과는
3x^2 + 2xy + 3y^2 = 1
이 됩니다.
다시 말해서, [3,1 ; 1,3]라는 행렬은
위의 계산과정을 거치면 아래의 타원의 방정식이 됩니다.
이 타원은 xy 항이 있기 때문에 표준형에서 비틀어져 있지요.
45도 만큼 기울어져 있습니다.
이러한 좌표(basis)에서는 타원의 방정식이 복잡해지고 타원의 장축, 단축 등을 구하기가 어렵죠.
그래서 적당히 새로운 좌표(basis)를 택합니다.
x', y'은 기존의 좌표에서 45도 돌아간 새로운 좌표입니다.
새로운 좌표에서는 위의 타원의 방정식이 다음과 같습니다.
[4,0 ; 0,2], 반대로 돌리면 [2,0 ; 0,4]
어떤가요? diagonalize 시키니까 교차항 xy 가 없기 때문에 표준형의 타원의 방정식이 되지요?
그럼 바로 단축 반지름과 장축 반지름이 얼마인지, 어떠한 타원이지 파악이 되지요?
그럼, 'diagonalize를 시키기 위해서 45도 회전시키는 회전변환행렬을 곱해야 하는데, 일반적인 경우에는 어떻게 곱하냐?'라는 의문을 가질 수도 있습니다.
특별히 위의 경우처럼 간단한 경우에는 변환행렬을 구하지 않아도 바로 diagonalize 시킬 수 있습니다.
diagonalize 시키면 대각선 성분은 언제나 주어진 matrix의 고유값이 되기 때문이죠.
'새로운 basis는 주어진 matrix와 어떤 관련이 있냐?' 라는 의문에 대한 대답은
'주어진 matrix의 고유벡터이다' 입니다.
특히 symmetric matrix는 고유벡터가 서로 직교하기 때문에 주어진 diagonalize 시켰을 때 그 basis 는 서로 직교하게 됩니다.
diagonalization 을 조금 길게(더 쉽게) 표현하자면 다음과 같습니다.
주어진 행렬을 너무 복잡해서 계산하기가 힘들어.
- 그럼 basis를 적당히 바꾸어서 계산하기 쉬운 행렬로 바꾸자.
어떤 행렬이 계산이 편하지?
- diagonal matrix 가 계산이 편하니까 그걸로 바꾸자.
그럼 새로운 basis는 뭘로 잡지?
- 그야 당근 주어진 행렬의 고유벡터로 잡으면 되지.
diagonal matrix로 변환할려면 변환행렬을 구해야 하는데 그건 어떻게 구하지?
- 그건 고유벡터를 나열해서 행렬을 만들면 돼.
예를 들어서 고유벡터가 [1;2], [3;4] 이렇게 두개 라면
[1,3 ; 2,4]가 변환행렬이 되는 것이지
변환하려면 변환행렬의 역행렬을 곱해야 하는데 역행렬은 어떻게 구하지?
- 주어진 행렬이 symmetric matrix 라면 쉬워.
고유벡터의 크기를 1로 만들어서(normalized) 그걸로 변환행렬을 만들면
변환 행렬은 orthogonal matrix 가 돼. 그러니까 transpose 하면 바로 역행렬을 구할 수 있지.
직접 diagonalize 시켰는데, 대각성 성분이 고유값과 같네?
- 엉, 항상 같아. basis를 어떤 순서로 잡느냐에 따라서 대각성분의 순서만 달라져.
고유값과 고유벡터를 구하는 방법은 적지 않겠습니다.
선형대수에서 symmetric(혹은 Hermitian) matrix, orthogonal(혹은 unitary) matrix,
고유값, 고유벡터, 유사변환, diagonlization, normalzation 등등
그러한 잡다한 것들을 배우고, 그것에 관한 여러가지 성질들을 증명하고 공부하는 이유가 바로 위의 것들을 계산하기 위해서입니다.
이것을 알면, 이제 지도를 얻었으니 선형대수가 어디로 가는지 알 것이고,
이제 선형대수에 관해서 감이 팍팍팍 올겁니다.
[리플 - "beyondit" 님]
대각화하면 뭐가 좋은지... 이게 가장 알고 싶으실 겁니다. 저도 선형대수 공부할 때 그랬구요..
한마디로 말해 1:1 대응이 가능하다는 것이죠.
더 쉽게 말해 가장 쉬운 대수학적 함수형태가 된다는 겁니다.
자 보세요.
벡터 A가,
a1
a2
a3
.
.
.
an
이라고 해 보세요.(column vector)
여기에 왼쪽위에서 오른쪽 아래로 대각화(일반적으로 말하는 대각화)된 행렬 T를 곱한다고 생각해 보세요.
a1 에 t1을
a2 에 t2를
a3 에 t3를
.
.
an 에 tn을
곱해서 나열한 vector V가 나옵니다.
v1 = a1*t1
v2 = a2*t2
v3 = a3*t3
.
.
vn = an*tn
즉, 하나에 하나씩 대응합니다. 만약에 행렬에 대각선 외의 성분이 0이 아니라면 예를 들어 v1을 계산할 때 a1말고 a2,a3,...an들의 성분도 다 계산에 더해줘야겠죠.
양자역학 또는 전자기학적인 관점에서 보았을 때는 이것은 간섭현상이 되며, diagonalization은 간섭을 없애는 것이 되겠죠.
얼마나 쉽습니까?
결국 Diagonalized되었을 때, 그 행렬은 결국 간단한 함수식들을 정리해 놓은 것에 불과하다는 결론을 얻을 수 있습니다.