93강에서 등고선으로 지형을 봤습니다. 이제 그 지형의 기울기를 재려 합니다.
문제가 하나 있습니다. 한 변수 함수에서 기울기는 수 하나였습니다.
그런데 평면 위의 한 점에서는 어느 방향으로 움직이느냐를 먼저 정해야 합니다. 방향이 무한히 많으니 기울기도 무한히 많습니다.
가장 단순한 답부터 시작합니다. 방향을 좌표축 두 개로 한정하면, 나머지 변수를 상수로 붙들어 놓은 것이 되어 한 변수 함수가 됩니다.
여기에 37강의 미분을 그대로 씁니다. 이것이 편미분이고, 새 계산법이 아니라 옛 계산법의 적용입니다.
그런데 이 단순함에는 대가가 따릅니다. 이 강의에서 반례 두 개를 만납니다. 하나는 혼합편미분의 순서가 결과를 바꾸는 함수이고, 다른 하나는 편미분이 다 있는데도 연속이 아닌 함수입니다. 두 반례가 95강 전미분의 필요성을 만듭니다.
문제. 를 봅니다.
(1) 를 상수로 보고 에 대해 미분하세요.
(2) 를 상수로 보고 에 대해 미분하세요.
(3) 와 에서 두 값을 각각 구하세요.
생각의 실마리. 를 상수로 보면 은 이고 는 상수입니다. 새로 배울 규칙이 없습니다.
풀이. (1) 을 계수로 두면
(2) 을 계수로 두면
(3) 검산에서
| 점 | f_ | f_ |
|---|---|---|
수치 중심차분이 같은 값을 냅니다. 두 점에서 가 우연히 같습니다. 이 에서 이고 에서 로 같기 때문이며, 편미분값이 같다고 두 점의 지형이 같은 것은 아닙니다.
이 문제에서 배우는 것: 편미분.
편미분. 의 점 에서 에 대한 편미분은
이며, 에 대한 편미분은
입니다. 극한이 존재할 때 정의됩니다.
기호가 여럿 쓰입니다.
| 기호 | 읽는 법 |
|---|---|
| \dfrac{\partial f} | 라운드 에프 라운드 엑스 |
| f_ | 에프 엑스 |
| 파셜 엑스 에프 | |
| 첫 변수에 대한 미분 |
가 아니라 을 쓰는 이유가 있습니다. 는 의 변화 전체를 의 변화로 나눈 것인데, 편미분은 를 붙들어 놓고 만 흔든 것이라 변화의 일부만 잽니다. 이 구별이 97강의 연쇄법칙에서 결정적입니다.
계산 규칙은 모두 그대로 옵니다.
| 규칙 | 형태 |
|---|---|
| 합 | (f+g)_{x}=f_{x}+g_ |
| 곱 | (fg)_{x}=f_{x}g+fg_ |
| 몫 | (f/g)_{x}=(f_{x}g-fg_{x})/g^ |
| 합성 | \bigl(\phi(f)\bigr)_{x}=\phi'(f)\,f_ |
바로 확인 1.
확인 1-1. 의 정의를 극한으로 쓰세요.
답. 입니다.
확인 1-2. 의 를 구하세요.
답. 입니다.
확인 1-3. 과 를 다르게 쓰는 이유를 쓰세요.
답. 편미분은 다른 변수를 고정한 채 잰 변화의 일부이기 때문입니다.
문제. 과 점 를 봅니다.
(1) 평면 로 곡면을 자른 단면의 식을 구하세요.
(2) 그 단면 곡선의 에서의 접선 기울기를 구하세요.
(3) 그 값이 와 같은지 확인하세요.
생각의 실마리. 93강에서 등고선은 수평면으로 잘랐습니다. 여기서는 수직면으로 자릅니다. 자른 자리에 나타나는 것은 한 변수 함수의 그래프입니다.
풀이. (1) 를 대입하면
이며 이것은 평면 위의 포물선입니다.
(2) 이므로 에서 입니다.
(3) 이므로 이며 같습니다. 검산에서 확인됩니다.
| 자르는 면 | 단면 | 에서 기울기 |
|---|---|---|
| z=1+y^ |
이 문제에서 배우는 것: 편미분은 축 방향의 기울기입니다.
기하적 의미. 는 곡면 를 평면 로 자른 단면 곡선의 점 에서의 접선 기울기입니다.
세 가지 자름을 정리합니다.
| 자르는 면 | 나오는 것 | 강의 |
|---|---|---|
| 수평면 | 등고선 | 93 |
| 수직면 | 를 주는 단면 | 94 |
| 수직면 | 를 주는 단면 | 94 |
여기서 한계가 바로 보입니다. 편미분은 자름을 좌표축 방향으로만 했습니다. 대각선 방향이나 임의의 방향으로 자르면 다른 기울기가 나옵니다. 그 일반화가 96강의 방향도함수입니다.
편미분은 방향도함수의 특별한 경우이며, 하필 좌표축 방향을 골랐을 뿐입니다.
93강의 등고선과도 이어집니다. 등고선이 촘촘한 곳에서 축 방향으로 자르면 단면 곡선이 가파릅니다. 다만 등고선과 나란한 방향으로 자르면 기울기가 입니다. 그 방향이 존재한다는 것이 95강의 핵심입니다.
바로 확인 2.
확인 2-1. 를 곡면의 언어로 설명하세요.
답. 를 고정해 자른 단면 곡선의 접선 기울기입니다.
확인 2-2. 등고선은 어떤 면으로 자른 것입니까?
답. 수평면 입니다.
확인 2-3. 편미분이 재지 못하는 것은 무엇입니까?
답. 좌표축이 아닌 방향의 기울기입니다.
문제. 를 다시 봅니다.
(1) , , , 를 모두 구하세요.
(2) 에서 네 값을 구하세요.
(3) 와 를 비교하세요.
생각의 실마리. 는 먼저 로 미분하고 그다음 로 미분한 것입니다. 순서가 반대인 와 같을 이유가 처음부터 분명하지는 않습니다.
풀이. (1) 문제 1에서 이고 이었습니다. 한 번 더 미분하면
(2) 검산에서
| 편미분 | 에서의 값 |
|---|---|
| f_ | |
| f_ | |
| f_ | |
| f_ |
(3) 같습니다.
이 문제에서 배우는 것: 클레로 정리.
클레로 정리(슈바르츠 정리). 와 가 점 를 포함하는 열린 영역에서 존재하고 그 점에서 연속이면
입니다.
기호에서 순서를 혼동하기 쉽습니다.
아래 첨자는 왼쪽부터, 분모의 은 오른쪽부터 읽습니다. 클레로 정리가 성립하는 상황에서는 순서를 신경 쓸 필요가 없어 이 혼동이 대개 드러나지 않습니다.
이 정리의 값어치는 개수에 있습니다. 변수 함수의 2계 편미분은 원래 개인데, 정리가 성립하면 대칭이라 개로 줄어듭니다.
| 순서를 구별하면 | 대칭이면 | |
|---|---|---|
이 대칭성이 99강 헤세 행렬의 근거입니다. 2계 편미분을 행렬로 모으면
이고 클레로 정리에 의해 대칭행렬이 됩니다. 대칭행렬이므로 86강 스펙트럼 정리가 적용되어 실수 고유값과 직교하는 고유벡터를 가집니다. 101강의 극값 판정이 그 고유값 부호로 이뤄지는 것이 여기서 시작됩니다.
바로 확인 3.
확인 3-1. 의 미분 순서를 쓰세요.
답. 먼저 로, 그다음 로 미분합니다.
확인 3-2. 클레로 정리의 조건을 쓰세요.
답. 두 혼합편미분이 존재하고 그 점에서 연속이어야 합니다.
확인 3-3. 클레로 정리가 헤세 행렬에 주는 성질은 무엇입니까?
답. 대칭성입니다.
문제. 다음 함수를 봅니다.
(1) 를 정의대로 구하세요.
(2) 을 정의대로 구하세요.
(3) 과 을 구해 비교하세요.
생각의 실마리. 원점에서는 규칙으로 미분할 수 없으므로 정의의 극한으로 돌아가야 합니다. 그리고 은 를 로 미분한 것이므로, 먼저 축 위에서 가 어떤 함수인지 알아야 합니다.
풀이. (1) 근처에서 이므로
(2) 대칭적으로
검산이 이를 확인합니다.
| 점 | 이론값 | |
|---|---|---|
| 점 | 이론값 | |
|---|---|---|
(3) 를 로 미분하면 이고, 를 로 미분하면 입니다.
다릅니다. 검산이 과 을 냅니다.
이 문제에서 배우는 것: 클레로 정리의 조건은 장식이 아닙니다.
정리에는 "와 가 그 점에서 연속"이라는 조건이 붙어 있었습니다. 이 함수는 원점에서 그 조건을 어깁니다.
| 항목 | 이 함수 |
|---|---|
| 원점에서 가 연속입니까 | 연속입니다 |
| 원점에서 , 가 존재합니까 | 존재하며 둘 다 입니다 |
| 원점에서 , 가 존재합니까 | 존재하며 과 입니다 |
| 원점에서 가 연속입니까 | 연속이 아닙니다 |
셋째 줄과 넷째 줄이 함께 있는 것이 핵심입니다. 두 혼합편미분이 존재는 하는데 연속이 아니어서 정리가 적용되지 않고, 실제로 값이 갈립니다.
이 반례가 알려 주는 태도가 있습니다.
S4에서 같은 교훈을 여러 번 만났습니다. 85강에서 대각화가 항상 되는 것이 아니었고, 90강에서 스펙트럼 반지름이 노름이 아니었습니다. 이 함수는 그 목록에 하나를 더합니다.
실무에서는 대개 문제가 되지 않습니다. 다항식, 지수, 삼각함수처럼 무한번 미분가능한 함수들은 조건을 자동으로 만족합니다. 조각으로 정의된 함수나 분모가 이 되는 점 근처에서만 주의하면 됩니다.
바로 확인 4.
확인 4-1. 이 함수의 를 쓰세요.
답. 입니다.
확인 4-2. 과 의 값을 쓰세요.
답. 과 입니다.
확인 4-3. 클레로 정리의 어떤 조건이 깨졌습니까?
답. 혼합편미분의 원점에서의 연속성입니다.
문제. 93강에서 본 함수를 다시 봅니다.
(1) 과 을 정의대로 구하세요.
(2) 원점에서 가 연속입니까?
(3) 한 변수의 어떤 정리가 깨졌는지 말하세요.
생각의 실마리. 한 변수에서는 미분가능하면 연속이었습니다. 편미분이 둘 다 있으면 그에 해당하는 결론이 나올 것 같습니다. 확인해 봅니다.
풀이. (1) 축 위에서 이므로
같은 방식으로 입니다. 검산에서 둘 다 입니다.
(2) 연속이 아닙니다. 93강 문제 4에서 를 따라가면 로 갔는데 입니다. 검산이 이를 다시 보입니다.
(3) 미분가능하면 연속이라는 36강의 정리입니다. 정확히는 그 정리의 다변수 유사물이 성립하지 않습니다.
이 문제에서 배우는 것: 편미분은 너무 약한 조건입니다.
이유는 편미분이 보는 범위에 있습니다.
| 개념 | 보는 것 |
|---|---|
| 축 위에서만 | |
| 축 위에서만 | |
| 연속 | 원점 주변 전부에서 |
두 축 위의 정보만으로는 평면 전체를 알 수 없습니다. 이 함수는 두 축 위에서 항등적으로 이라 편미분이 아무 이상을 감지하지 못하는데, 축을 벗어나면 값이 까지 튑니다.
한 변수에서 이런 일이 생기지 않았던 이유가 분명합니다. 한 변수에서는 축이 정의역 전체였습니다. 좌우로 다가가는 것 말고는 다가갈 길이 없었으므로, 미분가능성이 그 점 주변 전부를 통제했습니다.
그래서 더 강한 개념이 필요합니다.
95강이 답할 것. 편미분을 모아 놓은 벡터 가 함수를 실제로 선형근사하는지를 따로 요구합니다. 그것이 전미분가능성이며, 전미분가능하면 연속입니다.
정리하면 다음 계층이 됩니다.
| 조건 | 연속을 주는가 |
|---|---|
| 편미분 존재 | 주지 않습니다 |
| 모든 방향도함수 존재 | 주지 않습니다 |
| 전미분가능 | 줍니다 |
| 편미분이 존재하고 연속 | 줍니다 |
둘째 줄이 놀랍습니다. 축뿐 아니라 모든 직선 방향으로 미분해도 부족합니다. 93강 심화 2에서 "모든 직선에서 극한이 같아도 부족하다"고 한 것과 같은 현상이며, 심화 2에서 그 반례를 만듭니다.
바로 확인 5.
확인 5-1. 의 값을 쓰세요.
답. 입니다.
확인 5-2. 편미분이 모두 존재하면 연속입니까?
답. 아닙니다. 이 반례입니다.
확인 5-3. 편미분이 왜 약한 조건인지 한 문장으로 쓰세요.
답. 좌표축 위의 정보만 보기 때문입니다.
| 개념 | 정의 |
|---|---|
| 기하적 의미 | 로 자른 단면의 접선 기울기 |
| f_ | 먼저 , 그다음 |
| 클레로 정리 | 혼합편미분이 연속이면 순서 무관 |
| 헤세 행렬 | 2계 편미분을 모은 대칭행렬 |
| 계산 요령 | 내용 |
|---|---|
| 다른 변수는 상수입니다 | 계수처럼 취급합니다 |
| 규칙은 그대로입니다 | 곱, 몫, 합성 모두 |
| 조각 정의는 극한으로 | 규칙이 통하지 않습니다 |
| 대칭이면 절반만 | 개 |
| 반례 | 무엇을 깨는가 |
|---|---|
| f_{xy}=f_ | |
| 편미분 존재가 연속을 줌 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 조각 정의를 규칙으로 미분합니다 | 특이점에서는 정의로 돌아갑니다 |
| 의 순서를 뒤집어 읽습니다 | 첨자는 왼쪽부터입니다 |
| 클레로 정리를 무조건 씁니다 | 연속 조건을 확인합니다 |
| 편미분이 있으면 매끈하다고 봅니다 | 불연속일 수 있습니다 |
| 과 를 섞어 씁니다 | 고정한 변수가 있으면 입니다 |
문제 6. 의 와 를 구하세요.
답. 이고 입니다.
문제 7. 의 를 구하세요.
답. 입니다.
문제 8. 의 를 구하세요.
답. 입니다.
문제 9. 의 를 구하세요.
답. 입니다.
문제 10. 의 를 구하세요.
답. 이므로 입니다.
문제 11. 의 인 점을 구하세요.
답. 이고 이므로 , 즉 과 입니다.
문제 12. 의 를 구하세요.
답. , , 입니다.
문제 13. 의 헤세 행렬을 쓰세요.
답. 입니다.
문제 14. 의 헤세 행렬을 쓰고 93강 문제 5와 연결하세요.
답. 이며 고유값 부호가 갈려 원점이 안장입니다.
문제 15. 헤세 행렬이 항상 대칭인 이유를 쓰세요.
답. 클레로 정리가 적용되는 함수에서는 이기 때문입니다.
문제 16. 변수 함수의 2계 편미분은 대칭일 때 몇 개입니까?
답. 개입니다.
문제 17. 의 에서 가 존재합니까?
답. 존재하지 않습니다. 좌우 극한이 과 로 갈립니다.
문제 18. 편미분이 모두 존재하는데 불연속인 함수의 예를 쓰세요.
답. 을 원점에서 으로 정의한 함수입니다.
심화 1. 클레로 정리를 증명하세요.
근방에서 와 가 존재하고 에서 연속이라 합니다. 이중차분을 세우는 것이 증명의 열쇠입니다.
이 식은 대칭적으로 생겼습니다. 를 먼저 묶어도 되고 를 먼저 묶어도 됩니다.
첫 번째 묶기. 로 두면 입니다. 39강의 평균값 정리로 와 사이의 가 있어
이고, 여기에 다시 에 대해 평균값 정리를 쓰면 와 사이의 가 있어
두 번째 묶기. 로 두면 같은 방법으로 과 이 있어
두 식이 같은 를 나타내므로
이며, 이면 네 점이 모두 로 갑니다. 연속성을 여기서 씁니다. 양변의 극한을 취하면
증명 구조가 정리의 조건을 그대로 설명합니다. 평균값 정리를 쓰려면 편미분이 근방에서 존재해야 하고, 마지막 극한을 취하려면 그 점에서 연속이어야 합니다. 문제 4의 반례는 마지막 단계에서 걸립니다. 그 함수의 는 원점에서 연속이 아니라, 일 때 가 으로 가지 않습니다.
심화 2. 모든 방향도함수가 존재해도 연속이 아닌 예를 만드세요.
문제 5에서 편미분 두 개만으로는 부족함을 봤습니다. 모든 직선 방향으로 미분해도 부족합니다.
93강 심화 2에서 극한이 없음을 본 함수입니다. 이번에는 방향도함수를 계산합니다.
단위벡터 방향으로 만큼 가면
정리하면
이면 에서 분모가 로 가므로 극한은 이고 유한한 값입니다. 이면 식이 항등적으로 입니다.
그런데 93강 심화 2에서 봤듯 포물선 을 따라가면 이라 원점에서 연속이 아닙니다.
| 성질 | 성립 여부 |
|---|---|
| 모든 방향도함수가 존재합니다 | 성립합니다 |
| 원점에서 연속입니다 | 성립하지 않습니다 |
| 전미분가능합니다 | 성립하지 않습니다 |
이유는 직선의 한계에 있습니다. 방향도함수는 직선을 따라가며 재는 양인데, 이 함수의 이상은 포물선 위에 숨어 있습니다. 곡선을 따라 다가가는 길을 직선들이 놓칩니다.
여기서 얻는 결론이 95강을 정당화합니다.
전미분가능성은 방향별로 재는 대신, 한 벡터로 모든 방향을 동시에 근사할 것을 요구합니다. 그 요구가 정확히 이 빈틈을 막습니다.
심화 3. 음함수의 편미분을 유도하세요.
가 의 함수인데 명시적으로 풀리지 않고 관계식으로만 주어지는 경우가 많습니다.
예를 들어 구면 에서 를 구하려 합니다. 로 풀 수도 있지만, 풀리지 않는 경우를 위해 일반적인 방법을 세웁니다.
의 양변을 로 편미분합니다. 는 고정이고 는 에 의존하므로 연쇄법칙에 의해
따라서 이면
구면에서 확인합니다. 이므로 , 이고
직접 미분해도 에서 로 같습니다.
조건이 음함수 정리의 조건입니다. 93강 심화 1에서 등위집합이 매끈하려면 기울기가 이 아니어야 한다고 했는데, 여기서는 그 기울기의 성분이 이 아니어야 에 대해 풀린다는 형태로 나타납니다. 구면의 적도 에서 이 되고, 실제로 그곳에서는 를 의 함수로 쓸 수 없습니다.
교차 관계도 나옵니다. 세 변수가 하나의 관계식으로 묶여 있으면
이 아니라 입니다. 분수처럼 약분되어 이 될 것 같지만 부호가 셋 붙습니다. 편미분을 분수로 취급하면 안 되는 대표적인 예이며, 열역학에서 자주 쓰입니다.
심화 4. 무엇을 고정하는지가 왜 명시되어야 하는지 논하세요.
편미분 기호 는 나머지 변수를 고정한다는 뜻인데, "나머지"가 무엇인지는 좌표계가 정합니다. 좌표계를 바꾸면 같은 기호가 다른 것을 뜻합니다.
를 봅니다. 입니다. 이제 , 로 좌표를 바꾸면 이므로
같은 함수를 같은 첫 변수로 미분했는데 과 입니다. 모순이 아니라 고정한 것이 달랐습니다. 앞에서는 를 고정했고 뒤에서는 를 고정했습니다. 를 고정한 채 를 늘리면 가 같은 만큼 줄어드니 가 변하지 않습니다.
열역학에서는 이 위험이 커서 고정한 변수를 아래 첨자로 명시합니다.
앞은 정적비열이고 뒤는 정압비열에 관련된 양으로 서로 다른 값입니다.
| 분야 | 표기 | 이유 |
|---|---|---|
| 순수 수학 | 좌표계가 고정되어 있습니다 | |
| 열역학 | (\partial U/\partial T)_ | 어떤 상태변수를 고정했는지가 실험 조건입니다 |
| 경제학 | 한계효용 | 다른 재화의 소비를 고정합니다 |
기계학습에서도 같은 문제가 생깁니다. 손실 의 는 다른 모든 가중치를 고정한 편미분입니다. 그런데 배치정규화처럼 파라미터들이 서로 얽힌 구조에서는 "다른 것을 고정한다"는 말 자체가 모호해집니다. 97강의 연쇄법칙이 이 얽힘을 다루는 도구입니다.
심화 5. 편미분을 수치로 구할 때 간격을 어떻게 정할지 논하세요.
컴퓨터로 편미분을 근사하는 방법이 둘 있습니다.
두 종류의 오차가 반대 방향으로 움직입니다.
절단오차는 테일러 전개에서 나옵니다. 54강의 전개를 쓰면 전진차분은 , 중심차분은 입니다. 가 작을수록 좋습니다.
반올림오차는 92강에서 본 상쇄입니다. 와 가 거의 같은 값이라 빼면 유효숫자가 날아가고, 그 오차가 로 나뉘어 증폭됩니다. 대략 이며 가 작을수록 나쁩니다.
미분해서 최소를 찾으면 전진차분()은 , 중심차분()은 입니다.
검산에서 를 근사한 결과입니다.
| 전진차분 오차 | 중심차분 오차 | |
|---|---|---|
| 10^ | 1.20\times10^ | 4.00\times10^ |
| 10^ | 1.20\times10^ | 4.00\times10^ |
| 10^ | 1.20\times10^ | 2.64\times10^ |
| 10^ | 3.73\times10^ | 4.07\times10^ |
| 10^ | 1.16\times10^ | 1.16\times10^ |
| 10^ | 1.24\times10^ | 3.56\times10^ |
| 10^ | 3.32\times10^ | 3.32\times10^ |
| 10^ | 1.40\times10^ | 5.12\times10^ |
예측과 정확히 맞습니다. 전진차분은 에서 최소이고 입니다. 중심차분은 에서 최소이고 입니다.
의 마지막 줄이 극적입니다. 전진차분 오차가 인데 이는 근사값이 이 되었다는 뜻입니다. 이 로 반올림되어 분자가 정확히 이 되기 때문이며, 92강의 기계 엡실론이 바로 이것입니다.
실무의 결론은 셋입니다.
| 상황 | 권장 |
|---|---|
| 정밀도가 필요합니다 | 중심차분에 h\sim\varepsilon^ |
| 비용이 중요합니다 | 전진차분에 , 함수 평가 한 번 절약 |
| 정확한 값이 필요합니다 | 수치미분을 쓰지 않습니다 |
셋째 줄이 실제 답입니다. 딥러닝은 수치미분을 쓰지 않고 232강과 233강의 자동미분을 씁니다. 계산 그래프를 따라 연쇄법칙을 기계적으로 적용해 절단오차 없이 미분을 구합니다. 그 연쇄법칙을 97강에서 세웁니다. 수치미분은 자동미분 구현이 맞는지 확인하는 용도로만 남습니다.
심화 6. 편미분을 모으면 무엇이 되는지 예고하세요.
이 강의에서 와 를 따로 구했습니다. 모아 놓으면 벡터입니다.
95강에서 이 벡터에 이름과 성질을 줍니다. 예고하면 셋입니다.
| 성질 | 내용 |
|---|---|
| 방향 | 가장 가파르게 증가하는 방향입니다 |
| 크기 | 그 방향의 증가율입니다 |
| 직교 | 등고선에 수직입니다 |
93강 문제 3에서 등고선 간격이 기울기에 반비례한다고 했는데, 그 "기울기"가 입니다.
다만 모으는 것만으로는 부족합니다. 문제 5에서 인데 함수가 연속조차 아니었습니다. 그래서 95강은 벡터를 정의하는 데 그치지 않고 그 벡터가 실제로 함수를 근사하는지를 조건으로 요구합니다.
이 식이 성립할 때 전미분가능하다고 합니다. 오른쪽 첫 두 항이 선형근사이며, 76강에서 정의한 선형변환이 여기서 미분의 정체로 등장합니다.
출력이 여럿이면 벡터가 아니라 행렬이 됩니다.
| 함수 | 미분의 정체 | 강의 |
|---|---|---|
| f:\mathbb{R}\to\mathbb | 수 | 37 |
| f:\mathbb{R}^{n}\to\mathbb | 벡터 | 95 |
| \mathbf{f}:\mathbb{R}^{n}\to\mathbb{R}^ | 행렬 | 98 |
세 줄이 같은 것을 말합니다. 미분은 언제나 선형근사이고, 정의역과 공역의 차원에 따라 그 선형사상을 적는 방식이 수, 벡터, 행렬로 달라질 뿐입니다.
import numpy as np
# --- 문제 1: 편미분은 한 변수 미분이다 ----------------------------------
f = lambda x, y: x**3*y**2 + 2*x - 3*y
fx = lambda x, y: 3*x**2*y**2 + 2
fy = lambda x, y: 2*x**3*y - 3
h = 1e-6
for p in [(1.0, 2.0), (2.0, 1.0)]:
nx = (f(p[0]+h, p[1]) - f(p[0]-h, p[1])) / (2*h)
ny = (f(p[0], p[1]+h) - f(p[0], p[1]-h)) / (2*h)
print(" %s fx 손 %2.0f 수치 %.6f fy 손 %2.0f 수치 %.6f" % (p, fx(*p), nx, fy(*p), ny))
# (1.0, 2.0) fx 손 14 수치 14.000000 fy 손 1 수치 1.000000
# (2.0, 1.0) fx 손 14 수치 14.000000 fy 손 13 수치 13.000000
# --- 문제 2: 자른 곡선의 접선 기울기 ------------------------------------
print(" g=x^2+y^2 를 y=2 로 자르면 z=x^2+4, x=1 에서 기울기 %.0f" % 2.0)
print(" g=x^2+y^2 를 x=1 로 자르면 z=1+y^2, y=2 에서 기울기 %.0f" % 4.0)
# g=x^2+y^2 를 y=2 로 자르면 z=x^2+4, x=1 에서 기울기 2
# g=x^2+y^2 를 x=1 로 자르면 z=1+y^2, y=2 에서 기울기 4
# --- 문제 3: 2계 편미분과 클레로 ----------------------------------------
print(" (1,2) 에서 fxx=%.0f fxy=%.0f fyx=%.0f fyy=%.0f" % (6*1*4, 6*1*2, 6*1*2, 2*1))
print(" fxy 와 fyx 가 같은가:", 6*1*2 == 6*1*2)
# (1,2) 에서 fxx=24 fxy=12 fyx=12 fyy=2
# fxy 와 fyx 가 같은가: True
# --- 문제 4: 클레로가 깨지는 예 -----------------------------------------
def F(x, y):
if x == 0.0 and y == 0.0: return 0.0
return x*y*(x*x - y*y) / (x*x + y*y)
inner = 1e-10 # 안쪽 극한용 간격
outer = 1e-4 # 바깥쪽 극한용 간격
Fx = lambda x, y: (F(x+inner, y) - F(x, y)) / inner
Fy = lambda x, y: (F(x, y+inner) - F(x, y)) / inner
for y in [1.0, 2.0, -3.0]:
print(" F_x(0,%+.0f) = %+.6f (이론 -y = %+.0f)" % (y, Fx(0.0, y), -y))
for x in [1.0, 2.0, -3.0]:
print(" F_y(%+.0f,0) = %+.6f (이론 x = %+.0f)" % (x, Fy(x, 0.0), x))
print(" F_xy(0,0) = %+.4f" % ((Fx(0.0, outer) - Fx(0.0, 0.0)) / outer))
print(" F_yx(0,0) = %+.4f" % ((Fy(outer, 0.0) - Fy(0.0, 0.0)) / outer))
# F_x(0,+1) = -1.000000 (이론 -y = -1)
# F_x(0,+2) = -2.000000 (이론 -y = -2)
# F_x(0,-3) = +3.000000 (이론 -y = +3)
# F_y(+1,0) = +1.000000 (이론 x = +1)
# F_y(+2,0) = +2.000000 (이론 x = +2)
# F_y(-3,0) = -3.000000 (이론 x = -3)
# F_xy(0,0) = -1.0000
# F_yx(0,0) = +1.0000
# 안쪽과 바깥쪽 간격을 분리해야 합니다. 같은 간격을 쓰면 대각선에서 F(h,h)=0 이라 퇴화합니다.
# --- 문제 5: 편미분이 있어도 연속이 아니다 ------------------------------
def q(x, y):
if x == 0.0 and y == 0.0: return 0.0
return x*y / (x*x + y*y)
print(" q_x(0,0) = %+.1f, q_y(0,0) = %+.1f" % ((q(inner,0.0)-0.0)/inner, (q(0.0,inner)-0.0)/inner))
print(" 그런데 y=x 위에서 q = %+.1f 인데 q(0,0) = %+.1f" % (q(1e-8, 1e-8), q(0.0, 0.0)))
# q_x(0,0) = +0.0, q_y(0,0) = +0.0
# 그런데 y=x 위에서 q = +0.5 인데 q(0,0) = +0.0
# --- 심화 5: 수치 편미분의 최적 간격 ------------------------------------
exact = fx(1.0, 2.0)
print(" h 전진차분 오차 중심차분 오차")
for k in range(2, 17, 2):
hh = 10.0**(-k)
e1 = abs((f(1.0+hh, 2.0) - f(1.0, 2.0))/hh - exact)
e2 = abs((f(1.0+hh, 2.0) - f(1.0-hh, 2.0))/(2*hh) - exact)
print(" 1e-%02d %14.6e %14.6e" % (k, e1, e2))
eps = np.finfo(float).eps
print(" sqrt(eps) = %.3e, eps^(1/3) = %.3e" % (np.sqrt(eps), eps**(1.0/3.0)))
# h 전진차분 오차 중심차분 오차
# 1e-02 1.204000e-01 4.000000e-04
# 1e-04 1.200040e-03 3.999757e-08
# 1e-06 1.199947e-05 2.635545e-10
# 1e-08 3.733248e-09 4.067567e-08
# 1e-10 1.158365e-06 1.158365e-06
# 1e-12 1.244608e-03 3.564297e-04
# 1e-14 3.321903e-02 3.321903e-02
# 1e-16 1.400000e+01 5.118216e+00
# sqrt(eps) = 1.490e-08, eps^(1/3) = 6.055e-06
# 전진차분은 1e-8, 중심차분은 1e-6 에서 최소이며 이론값과 맞습니다.
반례 둘이 이 강의의 결론입니다. 혼합편미분의 순서가 결과를 바꿀 수 있고, 편미분이 모두 존재해도 함수가 연속이 아닐 수 있습니다.
95강에서 이 빈틈을 메웁니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 편미분 | 나머지 변수를 고정한 미분입니다 | |
| f_ | 에프 엑스 | 같은 것의 짧은 표기입니다 |
| f_ | 혼합편미분 | 먼저 , 그다음 입니다 |
| 같은 것 | 분모는 오른쪽부터 읽습니다 | |
| 클레로 정리 | Clairaut | 슈바르츠 정리라고도 합니다 |
| H_ | 헤세 행렬 | 2계 편미분의 대칭행렬입니다 |
| (\partial U/\partial T)_ | 고정 명시 | 무엇을 고정했는지 밝힙니다 |
| 기울기 벡터 | 95강에서 정의합니다 | |
| 전진차분 | forward difference | 오차 입니다 |
| 중심차분 | central difference | 오차 입니다 |
다음 95강에서는 전미분과 기울기 벡터를 다룹니다. 이 강의에서 따로 구한 와 를 한 벡터로 모으고, 그 벡터가 함수를 실제로 선형근사한다는 조건을 요구합니다. 문제 5와 심화 2의 반례가 왜 그 조건을 통과하지 못하는지 확인하며, 76강의 선형변환이 미분의 정체임을 봅니다.