S3에서 다룬 함수는 모두 입력이 하나였습니다.
그런데 실제로 풀고 싶은 문제는 입력이 여럿입니다. 82강의 최소제곱은 계수 여러 개를 동시에 정했고, 앞으로 만날 손실함수는 파라미터가 수백만 개입니다.
입력이 둘이 되는 순간 곤란한 일이 하나 생깁니다. 한 변수 함수는 평면에 그래프를 그릴 수 있었지만, 두 변수 함수의 그래프는 3차원 공간의 곡면입니다. 변수가 셋이면 그릴 수조차 없습니다.
그래서 차원을 하나 줄여서 봅니다. 산의 3차원 모양을 2차원 지도에 담는 방법이 등고선이고, 같은 방법을 함수에 씁니다.
이 강의는 다변수 함수를 정의하고 등고선으로 읽는 법을 세웁니다. 여기서 세운 그림 위에 94강의 편미분부터 120강의 흐름까지가 얹힙니다.
문제. 과 을 봅니다.
(1) 두 함수의 와 에서의 값을 구하세요.
(2) 의 정의역을 구하세요.
(3) 의 치역을 구하세요.
생각의 실마리. 값을 구하는 일은 대입일 뿐이라 어렵지 않습니다. 달라지는 것은 정의역입니다. 한 변수에서 정의역은 수직선 위의 구간이었는데, 이제는 평면 위의 영역이 됩니다.
풀이. (1) 검산에서
| 점 | ||
|---|---|---|
(2) 근호 안이 음수가 아니어야 하므로 , 즉 입니다. 원점 중심 반지름 인 닫힌 원판입니다.
(3) 이므로 치역은 입니다.
이 문제에서 배우는 것: 다변수 함수.
다변수 실함수. 집합 에서 정의된 함수
를 변수 실함수라 합니다. 를 정의역이라 하고, 그래프는 의 부분집합
입니다.
한 변수와 무엇이 같고 무엇이 다른지 정리합니다.
| 항목 | 한 변수 | 두 변수 |
|---|---|---|
| 정의역 | 수직선의 부분집합 | 평면의 부분집합 |
| 그래프 | 평면의 곡선 | 공간의 곡면 |
| 그릴 수 있는가 | 예 | 예, 변수 셋부터는 아닙니다 |
정의역이 영역이 된다는 것이 핵심입니다. 한 변수에서는 정의역의 끝이 점 두 개였지만, 이제 경계가 곡선입니다. 이 차이가 나중에 극한과 연속을 다룰 때 문제 4에서 그대로 드러납니다.
정의역의 경계는 판정하기 어렵습니다. 검산에서 을 넣으면
이 나와 "정의 안 됨"으로 판정합니다. 그런데 이 점은 -- 직각삼각형에서 온 점이라 참값이 정확히 이고 정의역 위에 있습니다. 92강에서 본 그대로이며, 부등식으로 정의된 영역의 경계 판정은 언제나 문턱 문제를 안고 있습니다.
바로 확인 1.
확인 1-1. 두 변수 함수의 그래프는 몇 차원 공간에 놓입니까?
답. 3차원입니다.
확인 1-2. 의 정의역을 쓰세요.
답. 인 점들, 즉 직선 의 아래쪽 반평면입니다.
확인 1-3. 의 정의역을 쓰세요.
답. 원점을 뺀 평면 전체입니다.
문제. 을 봅니다.
(1) 의 해집합을 에 대해 각각 구하세요.
(2) 서로 다른 두 등고선이 만날 수 있습니까?
(3) 의 인 등고선을 구하세요.
생각의 실마리. 곡면 를 높이 인 수평면으로 자릅니다. 자른 자리를 바닥에 내려 그린 것이 등고선입니다. 지도에서 하는 일과 똑같습니다.
풀이. (1) 검산에서
| 해집합 | |
|---|---|
| 공집합 | |
| 한 점 | |
| 반지름 인 원 | |
| 반지름 인 원 | |
| 반지름 인 원 |
가 음수면 아무것도 없습니다. 등고선이 항상 곡선인 것은 아니고, 비거나 점 하나일 수 있습니다.
(2) 만날 수 없습니다. 만나는 점 가 있다면 이면서 가 되어 함수가 한 점에 두 값을 갖게 됩니다.
(3) 이므로 , 즉 **두 직선 와 **입니다. 이 경우는 곡선 하나가 아니라 교차하는 두 직선입니다. 문제 5에서 다시 봅니다.
이 문제에서 배우는 것: 등위집합.
등위집합. 과 에 대해
를 높이 의 등위집합이라 합니다. 변수가 둘이면 등고선, 셋이면 등위면이라 부릅니다.
이것은 새 개념이 아니라 역상입니다. 27강에서 정의한 를 그대로 씁니다. 함수를 정의역 쪽에서 잘라 보는 관점이며, 다음 성질이 따라 나옵니다.
| 성질 | 이유 |
|---|---|
| 서로 다른 등위집합은 서로소입니다 | 함수는 한 점에 한 값입니다 |
| 등위집합들이 정의역을 덮습니다 | 모든 점은 어떤 값을 가집니다 |
| 비거나 점일 수 있습니다 | 치역 밖의 나 극값에서 그렇습니다 |
첫 두 줄을 합치면 등위집합들이 정의역의 분할을 이룹니다. 30강에서 동치관계가 집합을 분할한다고 했는데, 가 바로 그 동치관계입니다.
바로 확인 2.
확인 2-1. 등위집합의 정의를 역상 기호로 쓰세요.
답. 입니다.
확인 2-2. 의 등고선은 어떤 모양입니까?
답. 기울기 인 평행한 직선들입니다.
확인 2-3. 서로 다른 두 등고선이 만나지 못하는 이유를 쓰세요.
답. 만나면 그 점에서 함수가 두 값을 가지게 되기 때문입니다.
문제. 의 등고선을 봅니다.
(1) 의 등고선이 양의 축과 만나는 곳을 구하고 간격을 보세요.
(2) 에 대해 같은 것을 구하세요.
(3) 두 결과의 차이가 무엇을 뜻하는지 말하세요.
생각의 실마리. 지도에서 등고선이 촘촘한 곳은 절벽이고 성긴 곳은 완만합니다. 같은 높이 차이를 더 짧은 거리에서 오른다면 더 가파릅니다. 그 직관을 수식으로 확인합니다.
풀이. 으로 두면 (1)은 에서 , (2)는 입니다. 검산에서
| 포물면 | 간격 | 원뿔 | 간격 | |
|---|---|---|---|---|
(3) 포물면은 바깥으로 갈수록 간격이 줄어들고 원뿔은 일정합니다. 포물면은 멀어질수록 가팔라지고, 원뿔은 어디서나 같은 기울기로 올라갑니다.
이 문제에서 배우는 것: 간격은 기울기의 역수입니다.
높이 차이 를 오르는 데 수평거리 가 들었다면 그 방향의 평균 기울기는 입니다. 를 고정하면
이므로 간격은 기울기에 반비례합니다. 위 표를 이 눈으로 다시 읽습니다.
| 함수 | 축 위의 기울기 | 간격 |
|---|---|---|
| x^{2}+y^ | 로 커집니다 | 줄어듭니다 |
| 로 일정합니다 | 일정합니다 |
이 "기울기"를 정확히 정의하는 것이 95강입니다. 거기서 기울기 벡터 를 세우고, 그 크기가 가장 가파른 정도이며 그 방향이 등고선에 수직임을 보입니다. 지금은 그림으로만 잡아 둡니다.
바로 확인 3.
확인 3-1. 등고선이 촘촘한 곳은 가파릅니까 완만합니까?
답. 가파릅니다.
확인 3-2. 등고선이 일정한 간격의 평행선이면 어떤 함수입니까?
답. 일차함수이며 그래프는 평면입니다.
확인 3-3. 간격과 기울기는 어떤 관계입니까?
답. 반비례합니다.
문제. 을 봅니다.
(1) 직선 를 따라 원점에 다가갈 때의 극한을 의 식으로 구하세요.
(2) 에 대해 값을 구하세요.
(3) 일 때 극한이 존재합니까?
생각의 실마리. 한 변수에서는 왼쪽과 오른쪽 두 방향만 확인하면 됐습니다. 평면에서는 한 점에 다가가는 길이 무한히 많습니다. 길 하나만 달라도 극한은 없습니다.
풀이. (1) 를 대입하면
이며 가 사라집니다. 직선을 따라가면 원점에 아무리 가까워도 값이 변하지 않습니다.
(2) 검산에서
| 경로 | 값 |
|---|---|
(3) 존재하지 않습니다. 를 따라가면 에, 를 따라가면 에 다가가므로 하나의 값으로 모이지 않습니다.
이 문제에서 배우는 것: 다변수 극한.
다변수 극한. 이라 함은 임의의 에 대해 이 있어
이 성립하는 것입니다.
34강의 정의에서 가 로 바뀐 것뿐입니다. 바뀐 것은 정의가 아니라 확인의 난이도입니다.
| 항목 | 한 변수 | 다변수 |
|---|---|---|
| 다가가는 길 | 좌우 두 가지 | 무한히 많습니다 |
| 존재 확인 | 좌극한과 우극한이 같으면 됩니다 | 모든 경로에서 같아도 부족합니다 |
| 없음 보이기 | 좌우가 다름을 보입니다 | 값이 다른 경로 둘을 찾습니다 |
둘째 줄을 조심해야 합니다. 모든 직선을 확인해도 충분하지 않습니다. 검산의 두 번째 예
는 모든 직선 를 따라 으로 가지만, **포물선 을 따라가면 **입니다.
| 경로 | 값 |
|---|---|
| 10^ | |
| y=x^ |
직선 의 값이 이 아니라 인 것은 에서 잰 근삿값이기 때문이며, 이면 으로 갑니다. 곡선을 따라 다가가는 길까지 생각해야 합니다.
여기서 방법의 비대칭이 생깁니다.
있음을 보이려면 -로 직접 잡거나 조임정리를 씁니다. 이 함수는 극좌표로 가 되어 과 무관하므로 극한이 없음이 한눈에 보입니다.
바로 확인 4.
확인 4-1. 다변수 극한이 없음을 보이는 표준 방법을 쓰세요.
답. 극한값이 서로 다른 경로 두 개를 찾습니다.
확인 4-2. 모든 직선을 따라 극한이 같으면 극한이 존재합니까?
답. 아닙니다. 이 반례입니다.
확인 4-3. 다변수 극한 정의가 한 변수와 다른 점은 무엇입니까?
답. 절댓값 자리에 노름이 들어갑니다.
문제. 을 봅니다.
(1) 축과 축 위에서 원점 근처의 값을 비교하세요.
(2) 등고선 의 모양을 , , 에 대해 말하세요.
(3) 원점은 최댓값 자리입니까 최솟값 자리입니까?
생각의 실마리. 한 변수에서는 좌우만 보면 됐습니다. 여기서는 어느 방향으로 보느냐에 따라 답이 달라질 수 있습니다.
풀이. (1) 검산에서
| 경로 | ||||
|---|---|---|---|---|
축을 따라가면 원점이 최소이고 축을 따라가면 원점이 최대입니다.
(2) 이므로
| 모양 | |
|---|---|
| 축을 가로지르는 쌍곡선 두 갈래 | |
| 두 직선 | |
| 축을 가로지르는 쌍곡선 두 갈래 |
(3) 둘 다 아닙니다. 원점의 아무리 작은 근방을 잡아도 가 양수인 점과 음수인 점이 모두 들어 있습니다.
이 문제에서 배우는 것: 안장점.
안장점. 어떤 점에서 모든 방향의 기울기가 이지만, 그 점의 어떤 근방에서도 함숫값이 더 큰 점과 더 작은 점이 모두 존재하면 그 점을 안장점이라 합니다.
말 안장을 떠올리면 됩니다. 앞뒤로는 올라가고 좌우로는 내려갑니다.
등고선이 안장을 알려 줍니다. 문제 2에서 서로 다른 등고선은 만나지 못한다고 했는데, 여기서는 같은 등고선 이 자기 자신과 교차합니다.
| 관찰 | 뜻 |
|---|---|
| 등고선이 한 점으로 오그라듭니다 | 극값입니다 |
| 등고선이 교차합니다 | 안장입니다 |
| 등고선이 평행하게 지나갑니다 | 임계점이 아닙니다 |
의 등고선은 원점으로 오그라들었고 그곳이 최소였습니다. 의 등고선은 원점에서 교차했고 그곳이 안장이었습니다.
이 판정을 계산으로 바꾸는 것이 101강입니다. 99강에서 헤세 행렬을 세우고 101강에서 그 고유값의 부호로 분류합니다. 미리 말해 두면
이고 고유값의 부호가 섞이면 안장입니다. 87강에서 이차형식의 양정치성을 고유값 부호로 판정한 것이 그대로 쓰입니다. 은 부정부호 이차형식이었습니다.
바로 확인 5.
확인 5-1. 안장점의 정의를 한 문장으로 쓰세요.
답. 방향에 따라 최소가 되기도 최대가 되기도 하는 임계점입니다.
확인 5-2. 의 등고선을 쓰세요.
답. 두 직선 와 입니다.
확인 5-3. 등고선이 한 점에서 교차하면 무엇을 뜻합니까?
답. 그 점이 안장점입니다.
| 개념 | 정의 |
|---|---|
| 다변수 함수 | f:D\subseteq\mathbb{R}^{n}\to\mathbb |
| 그래프 | 의 부분집합 |
| 등위집합 | |
| 극한 | |
| 안장점 | 방향에 따라 최소와 최대가 갈리는 임계점 |
| 등고선 읽기 | 뜻 |
|---|---|
| 촘촘합니다 | 가파릅니다 |
| 성깁니다 | 완만합니다 |
| 한 점으로 오그라듭니다 | 극값입니다 |
| 교차합니다 | 안장입니다 |
| 평행한 직선입니다 | 일차함수입니다 |
| 길쭉한 타원입니다 | 조건수가 큽니다 |
| 대표 함수 | 등고선 | 원점 |
|---|---|---|
| x^{2}+y^ | 동심원 | 최소 |
| 동심원 | 최대 | |
| x^{2}-y^ | 쌍곡선 | 안장 |
| 평행선 | 임계점 아님 | |
| 동심원 | 최소, 미분 불가 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 등고선이 항상 곡선이라 봅니다 | 비거나 점일 수 있습니다 |
| 직선 경로만 확인합니다 | 곡선 경로가 남아 있습니다 |
| 경로로 극한의 존재를 증명합니다 | 없음만 증명됩니다 |
| 한 방향만 보고 극값이라 합니다 | 안장일 수 있습니다 |
문제 6. 의 을 구하세요.
답. 입니다.
문제 7. 의 정의역을 쓰세요.
답. 인 반평면입니다. 경계 직선은 포함하지 않습니다.
문제 8. 의 등고선 를 구하세요.
답. 이므로 반축이 와 인 타원입니다.
문제 9. 의 등고선을 말하세요.
답. 이므로 위아래로 평행이동한 포물선들입니다.
문제 10. 의 등고선을 말하세요.
답. 이면 쌍곡선이고 이면 두 좌표축입니다.
문제 11. 에서 가 커질 때 등고선 간격은 어떻게 됩니까?
답. 좁아집니다. 바깥으로 갈수록 가파르기 때문입니다.
문제 12. 이 존재합니까?
답. 없습니다. 에서 , 에서 입니다.
문제 13. 을 구하세요.
답. 입니다. 이므로 조임정리로 따릅니다.
문제 14. 의 원점이 최소임을 보이세요.
답. 모든 점에서 이고 이므로 최소입니다.
문제 15. 의 등고선과 원점의 성격을 쓰세요.
답. 등고선은 일 때 동심원이고 원점은 최대입니다.
문제 16. 의 등위집합을 쓰세요.
답. 이면 반지름 인 구면이고, 이면 원점, 이면 공집합입니다.
문제 17. 등고선이 서로 만나지 않는 이유를 쓰세요.
답. 만나는 점에서 함수가 두 값을 갖게 되어 함수의 정의에 어긋나기 때문입니다.
문제 18. 의 등고선을 말하세요.
답. 이면 한 변의 길이가 인 정사각형의 둘레입니다. 90강의 단위구가 정사각형이었던 것과 같습니다.
심화 1. 등위집합이 언제 곡선이 되는지 논하세요.
문제 2에서 등고선이 공집합, 한 점, 원, 두 직선으로 모두 나왔습니다. 언제 매끈한 곡선이 되는지가 문제입니다.
의 등고선은 원이고 등고선은 점입니다. 갈림의 자리가 원점, 즉 기울기가 이 되는 곳입니다.
의 등고선은 매끈한 쌍곡선이고 등고선은 교차하는 두 직선입니다. 여기서도 갈림의 자리가 원점입니다.
공통점이 하나 있습니다.
정확한 진술은 음함수 정리입니다. 여기서는 결론만 적어 둡니다.
음함수 정리(2변수). 가 연속미분가능하고 이며 이면, 의 어떤 근방에서 는 매끈한 곡선이며 에 수직한 접선을 가집니다.
기울기가 이 아니라는 조건이 붙는 이유를 위 두 예가 보여 줍니다.
| 함수 | 임계점 | 그 높이의 등위집합 |
|---|---|---|
| x^{2}+y^ | 원점, | 한 점 |
| x^{2}-y^ | 원점, | 두 직선의 교차 |
| 없음 | 언제나 직선 |
셋째 줄이 중요합니다. 임계점이 없으면 모든 등고선이 매끈합니다.
이 정리의 증명은 이 강의의 범위를 넘지만, 기울기가 등고선에 수직이라는 결론은 95강에서 따로 증명합니다. 그리고 이 수직성이 113강 라그랑주 승수법의 출발점입니다. 제약조건 은 등위집합이고, 그 위에서 를 최적화하면 두 기울기가 평행해집니다.
심화 2. 모든 직선을 따라 극한이 존재해도 극한이 없는 예를 만들고 확인하세요.
문제 4에서 을 봤습니다. 왜 이렇게 만들어지는지 설명합니다.
직선 를 따라가면
이며 이면 에서 분자가 으로 가므로 극한은 입니다. 이면 항등적으로 입니다. 을 따라가도 입니다. 모든 직선에서 입니다.
이제 포물선 을 따라갑니다.
상수 입니다. 검산이 이를 확인합니다.
설계 원리를 정리하면 이렇습니다. 분모의 과 이 같은 차수가 되는 곳은 입니다. 직선을 따라가면 이 을 압도해 분모가 으로 정해지고 분자는 이라 한 차수 낮아 이 됩니다. 분자와 분모가 균형을 이루는 경로가 직선이 아닌 곳에 숨어 있습니다.
일반화하면 이렇습니다.
교훈은 방법론에 관한 것입니다. 경로를 아무리 많이 확인해도 극한의 존재는 증명되지 않습니다. 존재를 보이려면 조임정리나 극좌표 같은 모든 방향을 한꺼번에 다루는 도구가 필요합니다. 문제 13이 그 예였습니다.
심화 3. 다변수 연속의 정의를 쓰고 성분별 연속과의 차이를 보이세요.
연속. 가 에서 연속이라 함은 가 정의역에 있고 인 것입니다.
35강의 정의와 형태가 같습니다. 차이는 "성분별로 연속"이 연속을 뜻하지 않는다는 점입니다.
를 봅니다. 를 으로 고정하면 이라 의 함수로 연속입니다. 를 으로 고정해도 마찬가지입니다. 두 축을 따라서는 완벽하게 연속입니다.
그러나 문제 4에서 를 따라가면 로 갔습니다. 이므로
이고 원점에서 불연속입니다.
| 성질 | 성립 여부 |
|---|---|
| 이 연속입니다 | 성립합니다 |
| 가 연속입니다 | 성립합니다 |
| 가 원점에서 연속입니다 | 성립하지 않습니다 |
이 함수는 94강에서 다시 나옵니다. 원점에서 두 편미분이 모두 존재하는데도 함수가 연속이 아닙니다. 한 변수에서 미분가능하면 연속이라 한 36강의 정리가 다변수에서 그대로 성립하지 않는다는 뜻이며, 그 빈자리를 메우는 개념이 95강의 전미분가능성입니다.
심화 4. 변수가 셋 이상일 때 시각화의 방법을 논하세요.
두 변수까지는 곡면이나 등고선으로 그릴 수 있습니다. 세 변수부터는 그래프가 4차원이라 그릴 수 없습니다.
쓸 수 있는 방법이 넷 있습니다.
| 방법 | 하는 일 | 한계 |
|---|---|---|
| 등위면 | 를 공간의 곡면으로 그립니다 | 세 변수까지입니다 |
| 단면 | 일부 변수를 고정하고 나머지를 그립니다 | 고정한 값에 따라 달라집니다 |
| 투영 | 두 방향을 골라 그 평면으로 자릅니다 | 방향 선택이 결과를 좌우합니다 |
| 저차원 매장 | 89강의 주성분으로 두 축을 뽑습니다 | 선형 구조만 보입니다 |
셋째 줄이 실무에서 가장 많이 쓰입니다. 파라미터가 수백만 개인 손실함수를 볼 때, 현재 점 에서 방향 두 개 를 골라
의 등고선을 그립니다. 이것은 진짜 지형이 아니라 2차원 단면입니다.
여기에 함정이 있습니다. 무작위로 고른 두 방향으로 자르면 거의 항상 매끈한 그릇 모양이 나옵니다. 고차원에서 무작위 방향은 서로 거의 직교하고, 곡률이 큰 소수의 방향에 걸릴 확률이 낮기 때문입니다. 단면이 매끈하다고 지형이 매끈한 것은 아닙니다.
방향을 어떻게 고르는지가 결론을 바꿉니다. 89강의 주성분처럼 데이터가 정한 방향을 쓰거나, 99강의 헤세 고유벡터처럼 곡률이 정한 방향을 쓰면 의미 있는 단면이 됩니다.
심화 5. 등고선의 모양이 최적화 속도를 어떻게 예고하는지 논하세요.
이차함수를 봅니다.
등고선 는 이므로 타원이고, 반축은 와 입니다. 검산에서 일 때 과 이며 **비율이 정확히 **입니다.
일반적으로 의 등고선은 의 고유벡터를 축으로 하는 타원이고, 고유값 방향의 반축은 입니다. 따라서
등고선이 얼마나 찌그러졌는지가 곧 조건수입니다. 87강에서 이차형식의 등위집합이 타원임을 봤고 91강에서 조건수를 정의했는데, 두 개념이 여기서 만납니다.
| 등고선 모양 | 조건수 | 최적화 |
|---|---|---|
| 원에 가깝습니다 | 에 가깝습니다 | 빠릅니다 |
| 길쭉한 타원입니다 | 큽니다 | 느립니다 |
왜 느린지는 그림으로 보입니다. 경사하강법은 등고선에 수직으로 움직이는데, 길쭉한 골짜기에서 그 수직 방향은 골짜기를 따라가는 방향이 아니라 벽을 향합니다. 그래서 좌우로 튕기며 지그재그로 내려갑니다.
이면 이라 한 번에 밖에 줄지 않습니다. 이 식을 110강에서 유도하고, 111강의 모멘텀과 112강의 뉴턴법이 이 문제를 어떻게 다루는지 봅니다. 뉴턴법은 을 곱해 타원을 원으로 되돌리는 방법입니다.
심화 6. 이 단원과 S5 전체가 무엇을 하는지 정리하세요.
S5는 한 변수에서 세운 미적분을 여러 변수로 옮기고, 그 위에서 최적화를 세웁니다.
01단원이 하는 일은 다음과 같습니다.
| 강의 | 하는 일 | 한 변수의 대응 |
|---|---|---|
| 93 | 함수와 등고선을 세웁니다 | 그래프 |
| 94 | 한 방향씩 미분합니다 | 도함수 |
| 95 | 모든 방향을 한 벡터에 담습니다 | 접선 |
| 96 | 임의 방향의 변화율을 잽니다 | 도함수의 값 |
| 97 | 합성함수를 미분합니다 | 연쇄법칙 |
| 98 | 출력이 여럿인 경우로 넓힙니다 | 도함수 |
옮기는 과정에서 새로 생기는 것이 둘 있습니다.
첫째는 방향입니다. 한 변수에서 변화율은 수 하나였지만, 이제 어느 방향으로 움직이느냐를 정해야 합니다. 그 답이 96강의 방향도함수이고, 모든 방향의 정보를 한꺼번에 담은 것이 95강의 기울기 벡터입니다.
둘째는 선형대수입니다. 다변수 미분의 결과는 수가 아니라 벡터이거나 행렬입니다.
| 개념 | 정체 | 관련 강의 |
|---|---|---|
| 기울기 벡터 | 의 벡터 | 62~65 |
| 야코비 행렬 | 행렬 | 66~70 |
| 헤세 행렬 | 대칭행렬 | 86, 87 |
| 연쇄법칙 | 행렬 곱 | 66 |
S4가 S5의 언어입니다. 76강에서 선형변환을 정의했는데, 98강에서 미분이 곧 선형근사임을 보게 됩니다. 87강에서 이차형식의 양정치성을 판정했는데, 101강에서 그것이 극값 판정이 됩니다. 91강에서 조건수를 정의했는데, 110강에서 그것이 수렴 속도가 됩니다.
이 단원이 끝나면 02단원에서 이차 근사로 올라가고, 04단원에서 실제로 최소를 찾아 내려갑니다. 120강 뒤에 관문 3이 있으며 62강부터 120강까지를 섞어 묻습니다.
import numpy as np
# --- 문제 1: 값과 정의역 ------------------------------------------------
f = lambda x, y: x**2 + y**2
g = lambda x, y: x**2 - y**2
for p in [(0, 0), (1, 0), (1, 2), (3, -4)]:
print(p, "f =", f(*p), " g =", g(*p))
# (0, 0) f = 0 g = 0
# (1, 0) f = 1 g = 1
# (1, 2) f = 5 g = -3
# (3, -4) f = 25 g = -7
print("정의역 1-x^2-y^2 >= 0")
for p in [(0.0, 0.0), (0.6, 0.6), (0.6, 0.8), (1.0, 1.0)]:
s = 1 - p[0]**2 - p[1]**2
print(" ", p, "-> %+.17g" % s, "정의됨" if s >= 0 else "정의 안 됨")
# 정의역 1-x^2-y^2 >= 0
# (0.0, 0.0) -> +1 정의됨
# (0.6, 0.6) -> +0.28000000000000003 정의됨
# (0.6, 0.8) -> -1.1102230246251565e-16 정의 안 됨
# (1.0, 1.0) -> -1 정의 안 됨
# (0.6,0.8) 의 참값은 정확히 0 이며 정의역 위의 점입니다. 92강의 문턱 문제입니다.
# --- 문제 2: 등고선은 역상 ----------------------------------------------
print("등고선 x^2+y^2 = c")
for c in [-1, 0, 1, 4, 9]:
if c < 0: print(" c = %2d -> 공집합" % c)
elif c == 0: print(" c = %2d -> 한 점 (0,0)" % c)
else: print(" c = %2d -> 반지름 %.4f 인 원" % (c, np.sqrt(c)))
# 등고선 x^2+y^2 = c
# c = -1 -> 공집합
# c = 0 -> 한 점 (0,0)
# c = 1 -> 반지름 1.0000 인 원
# c = 4 -> 반지름 2.0000 인 원
# c = 9 -> 반지름 3.0000 인 원
# --- 문제 3: 간격이 가파름이다 ------------------------------------------
cs = np.array([1.0, 2.0, 3.0, 4.0])
xp, xc = np.sqrt(cs), cs.copy()
print(" c 포물면 x 간격 원뿔 x 간격")
for i in range(4):
d1 = " -" if i == 0 else "%6.4f" % (xp[i] - xp[i-1])
d2 = " -" if i == 0 else "%6.4f" % (xc[i] - xc[i-1])
print(" %.0f %6.4f %s %6.4f %s" % (cs[i], xp[i], d1, xc[i], d2))
# c 포물면 x 간격 원뿔 x 간격
# 1 1.0000 - 1.0000 -
# 2 1.4142 0.4142 2.0000 1.0000
# 3 1.7321 0.3178 3.0000 1.0000
# 4 2.0000 0.2679 4.0000 1.0000
# --- 문제 4: 경로마다 다른 극한 -----------------------------------------
q = lambda x, y: x*y / (x**2 + y**2)
t = 1e-6
for m in [0, 1, -1, 2]:
print(" y=%2dx 를 따라 %+.6f (이론 %+.6f)" % (m, q(t, m*t), m/(1+m*m)))
print(" x=0 을 따라 %+.6f" % q(0.0, t))
# y= 0x 를 따라 +0.000000 (이론 +0.000000)
# y= 1x 를 따라 +0.500000 (이론 +0.500000)
# y=-1x 를 따라 -0.500000 (이론 -0.500000)
# y= 2x 를 따라 +0.400000 (이론 +0.400000)
# x=0 을 따라 +0.000000
r = lambda x, y: x*x*y / (x**4 + y*y)
for m in [0, 1, 5]:
print(" 직선 y=%dx 를 따라 %+.6f" % (m, r(t, m*t)))
print(" 포물선 y=x^2 을 따라 %+.6f" % r(t, t*t))
# 직선 y=0x 를 따라 +0.000000
# 직선 y=1x 를 따라 +0.000001
# 직선 y=5x 를 따라 +0.000000
# 포물선 y=x^2 을 따라 +0.500000
# 모든 직선에서 0 인데 포물선에서 1/2 입니다. 직선만 확인해서는 부족합니다.
# --- 문제 5: 안장 -------------------------------------------------------
ts = [0.0, 0.5, 1.0, 1.5]
print(" x축 (t,0):", [g(t_, 0.0) for t_ in ts])
print(" y축 (0,t):", [g(0.0, t_) for t_ in ts])
print(" y=x (t,t):", [g(t_, t_) for t_ in ts])
# x축 (t,0): [0.0, 0.25, 1.0, 2.25]
# y축 (0,t): [0.0, -0.25, -1.0, -2.25]
# y=x (t,t): [0.0, 0.0, 0.0, 0.0]
# 같은 원점이 x축에서는 최소, y축에서는 최대입니다.
# --- 심화 5: 등고선의 찌그러짐이 조건수다 --------------------------------
H = np.array([[1.0, 0.0], [0.0, 100.0]])
lam = np.linalg.eigvalsh(H)
c = 2.0
ax = np.sqrt(2*c/lam)
print(" 고유값 %s 조건수 %.1f" % (lam, lam[-1]/lam[0]))
print(" c=2 등고선 반축 %.4f 와 %.4f, 비율 %.4f" % (ax[0], ax[1], ax[0]/ax[1]))
print(" sqrt(조건수) = %.4f" % np.sqrt(lam[-1]/lam[0]))
# 고유값 [ 1. 100.] 조건수 100.0
# c=2 등고선 반축 2.0000 와 0.2000, 비율 10.0000
# sqrt(조건수) = 10.0000
세 가지가 확인됐습니다. 등고선 간격이 가파름의 역수라는 것, 모든 직선을 확인해도 극한의 존재가 보장되지 않는다는 것, 그리고 등고선 타원의 찌그러진 정도가 정확히 라는 것입니다.
마지막 결과가 이 단원 전체를 관통합니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 두 변수 함수 | 평면의 점에 수를 대응시킵니다 | |
| D\subseteq\mathbb{R}^ | 정의역 | 입력이 놓이는 영역입니다 |
| 등위집합 | 값이 인 점 전체입니다 | |
| 등고선 | level curve | 변수가 둘일 때의 등위집합입니다 |
| 등위면 | level surface | 변수가 셋일 때의 등위집합입니다 |
| 거리 | 극한 정의에 쓰는 노름입니다 | |
| 안장점 | saddle point | 방향에 따라 최소와 최대가 갈립니다 |
| 기울기 벡터 | 95강에서 정의합니다 | |
| H_ | 헤세 행렬 | 99강에서 정의합니다 |
다음 94강에서는 편미분을 다룹니다. 다변수 함수를 한 방향씩 잘라 한 변수 함수로 만든 뒤 37강의 미분을 그대로 적용합니다. 그 과정에서 편미분이 존재해도 연속이 아닐 수 있다는 사실을 만나며, 심화 3에서 예고한 이 그 반례가 됩니다. 이 빈틈을 메우는 것이 95강의 전미분입니다.