n차원 벡터
본문학교 급식에서 한 끼에 단백질 60 g, 탄수화물 150 g, 지방 35 g을 맞추려 한다. 메뉴 A 한 그릇에는 단백질 20 g, 탄수화물 50 g, 지방 10 g이, 메뉴 B에는 30 g, 20 g, 20 g이, 메뉴 C에는 10 g, 80 g, 5 g이 들어 있다. 세 메뉴를 각각 몇 그릇씩 섞으면 세 영양소를 한꺼번에 정확히 맞출 수 있을까? 영양소가 네 가지, 다섯 가지로 늘어나도 같은 방법으로 생각할 수 있을까?
1.1.1성분이 \(n\)개인 벡터
평면벡터는 성분이 2개, 공간벡터는 성분이 3개인 순서쌍이다. 이것을 넓혀 실수 \(n\)개를 순서대로 늘어놓은 \((a_1, a_2, \ldots, a_n)\)을 \(n\)차원 벡터라 하고, 그 전체의 집합을 \(\mathbb{R}^n\)이라 쓴다. 영양소의 양, 학생의 과목별 점수, 사진 한 장의 픽셀 밝기처럼 여러 수를 한 묶음으로 다루어야 하는 자료는 모두 \(n\)차원 벡터이다. 4차원 이상은 그림으로 그릴 수 없지만, 덧셈과 실수배는 2차원, 3차원과 똑같이 성분끼리 계산한다.
\(\vec a = (a_1, \ldots, a_n)\), \(\vec b = (b_1, \ldots, b_n)\)과 실수 \(k\)에 대하여 \(\vec a + \vec b = (a_1 + b_1, \ldots, a_n + b_n)\), \(k\vec a = (ka_1, \ldots, ka_n)\)이다. 벡터 \(\vec v_1, \ldots, \vec v_m\)과 실수 \(c_1, \ldots, c_m\)으로 만든 \(c_1\vec v_1 + \cdots + c_m\vec v_m\)을 일차결합이라 한다.
메뉴 A를 \(a\)그릇, B를 \(b\)그릇, C를 \(c\)그릇 먹으면 영양소의 합은 \(a\vec A + b\vec B + c\vec C\)라는 일차결합이다. 목표 벡터를 이 일차결합으로 나타내는 문제는 성분마다 하나씩, 모두 세 개의 일차방정식이 된다. 그래서 일차결합으로 목표를 만들 수 있는지는 연립일차방정식에 해가 있는지와 같은 질문이다. 빛의 세 원색으로 원하는 색을 만드는 일도 빨강, 초록, 파랑의 세기를 성분으로 하는 3차원 벡터의 일차결합이다.1
1.1.2맞출 수 없는 목표도 있다
일차결합으로 늘 원하는 벡터를 만들 수 있는 것은 아니다. 메뉴가 두 가지뿐이면 세 영양소를 한꺼번에 맞추기 어려운데, 미지수는 2개인데 맞추어야 할 방정식은 3개이기 때문이다. 또 메뉴가 세 가지라도 한 메뉴가 다른 두 메뉴를 섞은 것과 영양소 비율이 같으면 사실상 두 가지와 다름없다. 그런 경우 만들 수 있는 식단은 공간 전체가 아니라 한 평면 위에 갇힌다. 실제 식단에서는 그릇 수가 음수일 수 없다는 조건도 더해진다.
1.1.3예제 풀이
처음 질문의 목표를 맞추는 \(a\), \(b\), \(c\)를 구하여라. 또 목표가 단백질 50 g, 탄수화물 180 g, 지방 25 g으로 바뀌면 그릇 수는 어떻게 되는가?
그림 2의 연립방정식에서 \(a = b = c = 1\)을 넣으면 세 식이 모두 성립한다. 셋째 식의 2배를 첫째 식에서 빼면 \(-10b = -10\)이므로 \(b = 1\)이고, 남은 식에서 \(a\)와 \(c\)도 하나로 정해진다. 그래서 세 메뉴를 한 그릇씩 먹으면 목표를 정확히 맞추며, 해는 이것 하나뿐이다.
목표가 \((50, 180, 25)\)이면 셋째 식의 2배를 첫째 식에서 빼서 \(-10b = 0\), 곧 \(b = 0\)이다. 남은 \(20a + 10c = 50\), \(50a + 80c = 180\)을 풀면 \(a = 2\), \(c = 1\)이다. 그래서 메뉴 A 두 그릇과 C 한 그릇이면 된다. 즉 여러 수를 한 묶음으로 다루는 \(n\)차원 벡터는 성분끼리 더하고 실수배하며, 목표 벡터를 일차결합으로 만드는 문제는 성분마다 세운 연립일차방정식을 푸는 문제가 된다.
아래 탐구 카드에서 메뉴 세 가지의 그릇 수를 바꾸며 목표 영양 식단을 맞추어 보고, 색이 섞인 조명 세 개로 원하는 색을 만들어 보자.
- 최소 비용으로 영양 기준을 맞추는 식단 문제는 1945년 미국의 경제학자 스티글러가 77가지 식품으로 처음 계산했다. 이 문제는 뒤에 단체법이라는 계산법이 나오는 계기가 되었다.
실수 \(n\)개를 순서대로 늘어놓은 \(n\)차원 벡터는 그림으로 그릴 수 없어도 성분끼리 더하고 실수배하며, 여러 수를 한 묶음으로 다루는 자료를 나타낸다. 벡터들을 몇 배씩 더한 일차결합으로 목표 벡터를 만드는 문제는 성분마다 세운 연립일차방정식이 되고, 벡터가 부족하거나 서로 닮으면 만들 수 없는 목표가 생긴다. 처음 질문의 목표 식단은 세 메뉴를 한 그릇씩 먹어 정확히 맞출 수 있다.