- 세상의 모든 계산기 수학, 과학, 공학 이야기 수학 ()
크레이머 = 크레머 = 크라메르 공식 = Cramer's Rule

ㄴ사진 출처 : https://ko.wikipedia.org/wiki/%EA%B0%80%EB%B8%8C%EB%A6%AC%EC%97%98_%ED%81%AC%EB%9D%BC%EB%A9%94%EB%A5%B4
연립 방정식을 크래머의 규칙(Cramer’s Rule)을 사용하여 풀어 보겠습니다.
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\[
\begin{bmatrix}
4 & 5 & 0 \\
2 & 1 & 2 \\
1 & 5 & 2
\end{bmatrix}
\begin{bmatrix}
x \\
y \\
z
\end{bmatrix}
=
\begin{bmatrix}
2 \\
3 \\
1
\end{bmatrix}
\]
1. 행렬과 열 벡터 정의
- 계수 행렬 \( A \):
\[
A = \begin{bmatrix}
4 & 5 & 0 \\
2 & 1 & 2 \\
1 & 5 & 2
\end{bmatrix}
\]
- 변수 벡터 \( \mathbf{x} \):
\[
\mathbf{x} = \begin{bmatrix}
x \\
y \\
z
\end{bmatrix}
\]
- 상수 벡터 \( \mathbf{b} \):
\[
\mathbf{b} = \begin{bmatrix}
2 \\
3 \\
1
\end{bmatrix}
\]
2. 행렬식 계산
크래머의 규칙을 사용하려면 먼저 계수 행렬 \( A \)의 행렬식 \( D \)를 계산합니다.
\[
D = \begin{vmatrix}
4 & 5 & 0 \\
2 & 1 & 2 \\
1 & 5 & 2
\end{vmatrix}
\]
행렬식 \( D \)는 다음과 같이 계산됩니다:
\[
D = 4 \begin{vmatrix}
1 & 2 \\
5 & 2
\end{vmatrix}
- 5 \begin{vmatrix}
2 & 2 \\
1 & 2
\end{vmatrix}
\quad \cancel{+ 0 \begin{vmatrix}
2 & 1 \\
1 & 5
\end{vmatrix}}
\]
각 소행렬식은 다음과 같습니다:
- \( \begin{vmatrix}
1 & 2 \\
5 & 2
\end{vmatrix} = (1)(2) - (2)(5) = 2 - 10 = -8 \)
- \( \begin{vmatrix}
2 & 2 \\
1 & 2
\end{vmatrix} = (2)(2) - (2)(1) = 4 - 2 = 2 \)
따라서, \( D \)는 다음과 같이 계산됩니다:
\[
D = 4(-8) - 5(2) + 0 = -32 - 10 = -42
\]
3. 각 변수의 행렬식 계산
각 변수 \( x, y, z \)에 대해 \( D_x, D_y, D_z \)를 계산합니다.
\( D_x \) 계산
\( D_x \)는 \( A \)의 첫 번째 열을 상수 벡터 \( \mathbf{b} \)로 대체한 행렬의 행렬식입니다:
\[
D_x = \begin{vmatrix}
\textcolor{blue}{\textbf{2}} & 5 & 0 \\
\textcolor{blue}{\textbf{3}} & 1 & 2 \\
\textcolor{blue}{\textbf{1}} & 5 & 2
\end{vmatrix}
\]
계산 방법은 다음과 같습니다:
\[
D_x = 2 \begin{vmatrix}
1 & 2 \\
5 & 2
\end{vmatrix}
- 5 \begin{vmatrix}
3 & 2 \\
1 & 2
\end{vmatrix}
+ 0 \begin{vmatrix}
3 & 1 \\
1 & 5
\end{vmatrix}
\]
각 소행렬식은 다음과 같습니다:
- \( \begin{vmatrix}
1 & 2 \\
5 & 2
\end{vmatrix} = -8 \) (이미 계산됨)
- \( \begin{vmatrix}
3 & 2 \\
1 & 2
\end{vmatrix} = (3)(2) - (2)(1) = 6 - 2 = 4 \)
따라서 \( D_x \)는 다음과 같이 계산됩니다:
\[
D_x = 2(-8) - 5(4) + 0 = -16 - 20 = -36
\]
\( D_y \) 계산
\( D_y \)는 \( A \)의 두 번째 열을 상수 벡터 \( \mathbf{b} \)로 대체한 행렬의 행렬식입니다:
\[
D_y = \begin{vmatrix}
4 & \textcolor{blue}{\textbf{2}} & 0 \\
2 & \textcolor{blue}{\textbf{3}} & 2 \\
1 & \textcolor{blue}{\textbf{1}} & 2
\end{vmatrix}
\]
계산 방법은 다음과 같습니다:
\[
D_y = 4 \begin{vmatrix}
3 & 2 \\
1 & 2
\end{vmatrix}
- 2 \begin{vmatrix}
2 & 2 \\
1 & 2
\end{vmatrix}
+ 0 \begin{vmatrix}
2 & 3 \\
1 & 1
\end{vmatrix}
\]
각 소행렬식은 다음과 같습니다:
- \( \begin{vmatrix}
3 & 2 \\
1 & 2
\end{vmatrix} = 4 \) (이미 계산됨)
- \( \begin{vmatrix}
2 & 2 \\
1 & 2
\end{vmatrix} = 2 \) (이미 계산됨)
따라서 \( D_y \)는 다음과 같이 계산됩니다:
\[
D_y = 4(4) - 2(2) + 0 = 16 - 4 = 12
\]
\( D_z \) 계산
\( D_z \)는 \( A \)의 세 번째 열을 상수 벡터 \( \mathbf{b} \)로 대체한 행렬의 행렬식입니다:
\[
D_z = \begin{vmatrix}
4 & 5 & \textcolor{blue}{\textbf{2}} \\
2 & 1 & \textcolor{blue}{\textbf{3}} \\
1 & 5 & \textcolor{blue}{\textbf{1}}
\end{vmatrix}
\]
계산 방법은 다음과 같습니다:
\[
D_z = 4 \begin{vmatrix}
1 & 3 \\
5 & 1
\end{vmatrix}
- 5 \begin{vmatrix}
2 & 3 \\
1 & 1
\end{vmatrix}
+ 2 \begin{vmatrix}
2 & 1 \\
1 & 5
\end{vmatrix}
\]
각 소행렬식은 다음과 같습니다:
- \( \begin{vmatrix}
1 & 3 \\
5 & 1
\end{vmatrix} = (1)(1) - (3)(5) = 1 - 15 = -14 \)
- \( \begin{vmatrix}
2 & 3 \\
1 & 1
\end{vmatrix} = (2)(1) - (3)(1) = 2 - 3 = -1 \)
- \( \begin{vmatrix}
2 & 1 \\
1 & 5
\end{vmatrix} = (2)(5) - (1)(1) = 10 - 1 = 9 \)
따라서 \( D_z \)는 다음과 같이 계산됩니다:
\[
D_z = 4(-14) - 5(-1) + 2(9) = -56 + 5 + 18 = -33
\]
4. 변수 계산
크래머의 규칙에 따라 각 변수는 다음과 같이 계산됩니다:
\[
x = \frac{D_x}{D} = \frac{-36}{-42} = \frac{36}{42} = \frac{6}{7}
\]
\[
y = \frac{D_y}{D} = \frac{12}{-42} = -\frac{2}{7}
\]
\[
z = \frac{D_z}{D} = \frac{-33}{-42} = \frac{33}{42} = \frac{11}{14}
\]
5. 최종 결과
따라서 주어진 연립 방정식의 해는:
\[
x = \frac{6}{7}, \quad y = -\frac{2}{7}, \quad z = \frac{11}{14}
\]
참고 - https://ko.wikipedia.org/wiki/%ED%81%AC%EB%9D%BC%EB%A9%94%EB%A5%B4_%EA%B3%B5%EC%8B%9D
댓글3
-
세상의모든계산기
※ 행렬의 입력 & 계산 - 확장 라이브러리 Matrix Library https://allcalc.org/1843 사용하면...

ㄴ 문제의 행렬식 입력
ㄴ 라이브러리 단축키 지정 (안해도 되는데 안하면 더 복잡하니까...)

ㄴ 역행렬을 통한 풀이 (참조 확인용)

ㄴ i번째 열을 각각 m_c로 치환

ㄴ 각각의 치환된 행렬의 Det(=행렬식)

ㄴ 여인수 전개를 해 볼 경우

ㄴ 최종 결과의 계산
-
세상의모든계산기
크래머의 규칙(Cramer’s Rule)은 연립 선형 방정식의 해를 구하는 방법 중 하나로, 몇 가지 중요한 의미와 특성을 가집니다:
1. 선형 대수의 기초 개념: 크래머의 규칙은 행렬, 행렬식(determinant), 선형 변환 등 선형 대수의 기본 개념을 활용합니다. 이는 학생들에게 선형 대수의 기초를 이해하는 데 도움을 줍니다.
2. 해의 존재 조건: 크래머의 규칙은 계수 행렬의 행렬식이 0이 아닐 때 유효합니다. 이는 해가 존재하고 유일하다는 것을 의미합니다. 만약 행렬식이 0이면 해가 존재하지 않거나 무한히 많다는 것을 나타냅니다.
3. 해의 표현: 크래머의 규칙을 통해 각 변수의 해를 행렬식의 비율로 표현할 수 있습니다. 이는 수학적으로 매우 간결한 형태로 해를 도출할 수 있게 해줍니다.
4. 공간적 해석: 크래머의 규칙은 기하학적으로도 해석될 수 있습니다. 3차원에서 세 개의 평면이 만나는 점을 찾아내는 과정으로 생각할 수 있으며, 이 점이 연립 방정식의 해가 됩니다.
5. 컴퓨터 과학 및 공학적 응용: 크래머의 규칙은 컴퓨터 과학과 공학에서 시스템의 해를 찾는 데 사용됩니다. 특히, 작은 시스템에서는 직접 계산으로도 효율적입니다.
6. 교육적 도구: 크래머의 규칙은 학생들이 선형 방정식의 해를 구하는 방법을 배우는 데 유용한 도구로, 다양한 문제를 해결하는 데 사용될 수 있습니다.
7. 해의 정수성: 계수 행렬과 상수 벡터가 정수로 이루어져 있다면, 크래머의 규칙을 통해 얻은 해도 정수가 될 수 있는 가능성이 있습니다.
이와 같은 점에서 크래머의 규칙은 수학적 사고를 발전시키고, 연립 방정식의 해를 효과적으로 찾는 방법으로 널리 사용됩니다.
세상의모든계산기 님의 최근 댓글
- 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