- TI nspire
[TI-nspire] 행렬 eigVL 고유값, eigVC 고유벡터 구하기
1. 자동으로 고유값 & 고유벡터 찾는 방법
고유값 함수(eigVL())와, 고유벡터(eigVC()) 함수는 [TI-nspire]에 내장되어 있으므로, 손쉽게 구할 수 있습니다.
- 행렬 a = 라고 하면

- eigVl()로 구한 고유값의 순서와, eigvc()로 구한 고유벡터는 그 순서가 서로 매칭됩니다.
- eigVc()로 구한 고유벡터는 정규화(=크기가 1) 된 값입니다.
2. 수동으로 고유값(Eigen Value) 찾는 방법
- 3×3 행렬을 변수 a 에 저장하고, 행렬식을 이용해 고유 방정식(p(λ))을 찾습니다.
- solve 로 고유값을 찾습니다. 2(중근)와 4가 나왔습니다.

└ 보기 좋으라고 그리스 문자 λ 를 찾아서 넣었습니다만, 그냥 알파벳 a~z 를 써도됩니다.
3. 수동으로 고유벡터(Eigen Vector) 찾는 방법
- rref(a-고유값) 으로 벡터 성분(v1, v2, v3)간의 관계식을 구할 수 있습니다.
- 벡터 성분간 관계식을 만족하는 벡터를 구하면 고유벡터가 됩니다.
(따라서 고유벡터는 유일(unique)한 값을 가지지 않습니다.)

ㄴ 고유값이 중근이므로 두개의 고유 벡터를 찾아보았습니다.
- 이번엔 고유값 4에 대한 고유벡터를 구해봅니다.

├ 이번에는 하나의 고유벡터만을 찾았습니다.
└ eigVc(a) 의 결과값은 정규화된 값임을 확인할 수 있습니다.
댓글7
-
세상의모든계산기
행렬a-λ 를 하게되면 자동으로 λ에 Identity Matrix 가 강제로 곱해져 계산됩니다.
행렬a 모든 원소값에 스칼라값을 빼려면 빼기부호 앞에 .(dot) 을 붙여 주어야 합니다.
-
세상의모든계산기
symmetric 한 행렬에 a대해 eigvc(a) 를 구했을 때...
서로 직교하는 3개의 벡터가 되면 좋겠지만... 그렇게 구해주진 않네요.

-
세상의모든계산기
행렬의 대각화 diagonalization 예제

eigvl 값을 찾았다면 대각행렬(diag)을 만들 수 있고,
대각행렬은 요소가 간단해서 역행렬을 매우 쉽게 찾을 수 있음.
p 와 p의 역행렬 그리고 d의 역행렬을 이용해 a의 역행렬을 계산할 수 있음.
ㄴ 다만, TI-nspire 에서는 정규화된 p를 찾아줘서 복잡하게 보이는 경향이 있음.
-
1
세상의모든계산기
2×2 (대칭) 행렬의 예

1. 고유값 {3,1} 찾기
2. 대각행렬 da 정의
3. 고유값을 이용해 고유 벡터 찾기
4. 고유벡터로 p 행렬 정의 p:=[[1 1][1 -1]]
5. da 와 p 를 이용해 a의 역함수 계산

6. 최종적으로 하나의 해를 찾을 수 있는데...
-
2
세상의모든계산기
대칭 행렬 \( a \)의 고유값과 고유벡터를 이용하여 해를 구하는 과정에서 굳이 \( D^{-1} \), \( P \), \( P^{-1} \)를 모두 계산하지 않고도, 고유값 분해와 고유벡터를 이용해 연립방정식을 더 간단하게 풀 수 있습니다.
1. 고유값 분해: 행렬 \( a \)의 고유값이 3과 1로 주어졌고, 각각의 고유벡터가 \( x_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix} \)와 \( x_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix} \)입니다.
2. 벡터 \( b \)를 고유벡터로 분해:
우선, \( b = \begin{bmatrix} 4 \\ 3 \end{bmatrix} \)를 두 고유벡터 \( x_1 \)과 \( x_2 \)의 선형 결합으로 표현합니다.
즉, \( b = c_1 x_1 + c_2 x_2 \)를 만족하는 \( c_1 \)과 \( c_2 \)를 구합니다.
- \( x_1 \)과 \( x_2 \)가 직교하므로, 내적을 통해 \( c_1 \)과 \( c_2 \)를 쉽게 구할 수 있습니다.
- \( c_1 = \dfrac{b \cdot x_1}{x_1 \cdot x_1} = \dfrac{4 \times 1 + 3 \times 1}{1^2 + 1^2} = \dfrac{4 + 3}{2} = \dfrac{7}{2} = 3.5 \)
- \( c_2 = \dfrac{b \cdot x_2}{x_2 \cdot x_2} = \dfrac{4 \times 1 + 3 \times (-1)}{1^2 + (-1)^2} = \dfrac{4 - 3}{2} = \dfrac{1}{2} = 0.5 \)
3. 해 \( x \) 구하기:
이제 고유값을 사용하여 \( x = \dfrac{c_1}{\lambda_1} x_1 + \dfrac{c_2}{\lambda_2} x_2 \)를 계산합니다.
- \( x = \dfrac{3.5}{3} \begin{bmatrix} 1 \\ 1 \end{bmatrix} + 0.5 \begin{bmatrix} 1 \\ -1 \end{bmatrix} \)
- 이를 계산하면:
$ x = \begin{bmatrix} \dfrac{3.5}{3} + 0.5 \\ \dfrac{3.5}{3} - 0.5 \end{bmatrix} $
따라서 연립방정식의 해는 \( x = \begin{bmatrix} \dfrac{5}{3} \\ \dfrac{2}{3} \end{bmatrix} \)입니다.
세상의모든계산기 님의 최근 댓글
- claude AI는 l-c*r^2 을 1-c*r^2 으로 잘못 읽고 표시하고 있습니다. - TI-nspire CAS 계산기에 l-c*r^2 ≥0 을 조건에 추가해 계산해 보아도 결과는 바뀌지 않습니다. 2026 07.20 ⚠️ 경고가 바로 두 번째 방법이 "성공"한 이유와 정확히 연결되어 있습니다. 경고의 의미 "Domain of the result might be larger than the domain of the input"는 CAS가 절댓값(모듈러스)을 계산하는 과정에서 원래 식보다 정의역이 더 넓은 형태로 단순화했다는 뜻입니다. 구체적으로 이 계산은 내부적으로 대략 이런 과정을 거칩니다. $$\left|\frac{er}{e\cdot r}\right| = \sqrt{\left(\frac{er}{e\cdot r}\right)\cdot\overline{\left(\frac{er}{e\cdot r}\right)}}$$ 즉 원래 식(복소수)과 그 켤레복소수를 곱해서 실수부·허수부 제곱합을 만들고, 거기에 다시 제곱근을 씌우는 과정입니다. 이 과정에서 √(x²) → x 또는 √a·√b → √(ab) 같은 규칙들이 쓰이는데, 이런 규칙들은 x가 실수이고 0 이상일 때만 엄밀하게 성립합니다. CAS는 이 조건들을 일일이 다 추적하지 않고 넘어가면서, 원래는 (e≠0, r+l·ω·i ≠ 0 등) 복소수 특유의 좁은 정의역을 가진 식을, r, l, ω가 어떤 실수여도(부호 무관하게) 정의되는 1/√(r²+l²·ω²)라는 더 넓은 정의역의 식으로 바꿔버린 것입니다. CAS는 이 손실을 감지하고 경고를 띄운 것입니다. 이게 왜 조건 대입 성공과 연결되는가 정리하면, 이 경고는 사실상 이런 뜻입니다. "나는 이 결과를 만들면서 원래 식이 가지고 있던 정의역 제약 정보(부호 조건, i 관련 조건 등)를 이미 버렸다." 바로 이 "정의역 정보를 버린" 상태가 이후 con_1 대입을 매끄럽게 만드는 원인입니다. 첫 번째 시도에서는 i가 살아있는 원래 식에 조건을 대입했기 때문에, CAS가 √(1-c·r²)이 실수인지(정의역 조건: 1-c·r² ≥ 0) 계속 추적하려고 했고, 그 정보가 con에 없어서 더 이상 정리를 못 하고 멈췄습니다. 두 번째 시도에서는 절댓값 계산 단계에서 이미 그런 세밀한 정의역 추적을 CAS 스스로 포기(단순화)했기 때문에, 이후 ω에 무리식을 대입해도 "이게 실수가 맞나?" 하는 검증 절차 없이 그냥 대수적으로 치환·정리해 버립니다. 그래서 깔끔하게 √c/√l이 나온 겁니다. 한 줄 요약 절댓값 계산 시 뜬 "정의역이 넓어졌을 수 있다"는 경고는, CAS가 그 순간에 원래 식의 엄밀한 조건(정의역)을 놓쳤다는 신호이고, 바로 그 "조건을 놓친 상태"이기 때문에 뒤에 이어지는 조건식 대입이 막힘없이 진행된 것입니다. 다만 그 대가로, 결과인 1/√(r²+l²·ω²)이나 최종 √c/√l이 원래 회로 조건(i≠0이 되는 경계, 분모가 0이 되는 경우 등)에서는 엄밀히 성립하지 않을 수 있다는 점은 감안하셔야 합니다. 실제 물리적으로는 r, l, c > 0이고 결과도 물리적으로 타당한 형태라 문제없어 보이지만, 수학적 엄밀성 측면에서는 "정의역이 넓어진 근사적 결과"라는 꼬리표가 붙어있는 셈입니다. 2026 07.20 Claude AI 답변 TI-Nspire CAS의 | (such that / 조건대입) 연산자는 대입 시점의 수식 형태를 그대로 두고 기호만 치환하는 연산입니다. 대입 후에 처음부터 다시 "실수부/허수부 분리, 유리화" 같은 재간소화를 자동으로 수행하지 않습니다. 이 차이가 지금 보신 결과 차이의 핵심입니다. 첫 번째 경우 (|er/(e·r)| | con_1 and con → 실패) 이 시점의 식은 아직 r + l·ω·i 형태의 복소수 그대로입니다 (i가 살아있음). 여기에 con_1: ω = √(1-c·r²)/(√c·l)을 대입하면, 분모 안에 i · √(1-c·r²) 라는 항이 새로 생깁니다. 문제는 CAS가 √(1-c·r²)이 실수인지(즉 1-c·r² ≥ 0인지) 판단할 근거가 없다는 겁니다. 저장해 두신 con 조건은 c>0, l>0, r>0뿐이고, 1-c·r²≥0이라는 조건은 포함되어 있지 않습니다. 그래서 CAS는 i와 이 무리식을 더 정리(유리화, 실수부·허수부 재결합)하지 못하고 있는 그대로 남겨둡니다. 결과에 여전히 i가 보이는 이유입니다. 두 번째 경우 (결과값 1/√(r²+l²·ω²)에 대입 → 성공) |er/(e·r)| (절댓값/모듈러스) 연산은 그 자체로 이미 "복소수 → 실수" 변환을 완료한 결과입니다. 즉 1/√(r²+l²·ω²)에는 더 이상 i가 없고, 순수하게 r, l, ω로만 이루어진 실수식입니다. 이 식에 ω = con_1을 대입하는 것은 그냥 실수 대수식에 실수 대입하는 것이므로, i와 무리식이 뒤엉키는 문제 자체가 발생하지 않습니다. 그래서 바로 깔끔하게 √c/√l로 정리됩니다. 정리하면 절댓값(모듈러스) 계산은 "이 값들이 실수다"라는 가정을 이미 내부적으로 써서 i를 제거하는 연산입니다. 그 연산을 조건 대입 이전에 해두면, 이후 대입은 단순 실수 대입이라 문제없이 정리됩니다. 반대로 i가 남아있는 식에 무리식을 포함한 조건을 먼저 대입하면, 그 무리식의 실수성/부호에 대한 가정이 없어서 CAS가 i를 소거하는 재간소화를 못 하고 멈춰버립니다. 실용적 팁: 복소식에 조건을 대입해야 할 때는 가능하면 절댓값·실수화(유리화) 등을 먼저 끝내서 i를 없앤 뒤 조건을 대입하거나, 대입 후 결과에 다시 simplify/expand/combine 같은 명령을 한 번 더 걸어주면 (필요한 도메인 조건과 함께) 정리가 되는 경우가 많습니다. 2026 07.19 저도 어림잡아 추측할 뿐이지 정확한 이유를 알지는 못합니다. 질문하신 사진을 그대로 (Gemini 3.5 Flash / ChatGPT / Claude Sonnet 5) AI에 넣어 보니 claude AI 가 제일 합리적인 답변을 주어서 이를 붙여 넣습니다. 2026 07.19 아 그렇네요. 감사합니다. ^^ 2026 04.28