"그래서 너가 말하는 그 개념이 뭔데? 수(원소)야 함수야 아니면 집합이야?"
학부시절 가까운 친구가 개념을 혼동하는 후배들을 가르치면서 반복해서 묻는 질문이 있었다
우리가 수학에서 만날수 있는 대부분의 대상은 왠만하면 저 셋으로 떨어트릴 수 있다.
물론 집합과 함수가 있으면 수와 연산을 구성해낼 수 있다. 하지만 우리중 누가 3+5를 집합기호 옮겨가며 덧셈을 하며
3/5 + 1/2를 equivalent class로 계산을 하겠는가? tuple(곱집합)의 존재로 함수를 구성해낼 수 있지만,
그 역시 누가 f(x)=x^2일때 f(3)을 계산하라는데 그래프 그려서 x축의 3에 대응하는 9를 찾고 있진 않다. 저건 어디까지나 그렇게 정의할 수 있다는 말이지
우리의 직관의 방향과 일치하지 않는다. 그리고 공리적인 엄밀함을 추구하는 사람들에겐 어떤 설명들은 순환논증이 되기도 하고 일관되지 않기도 하다.
다분히 엄밀하지 않지만, 집합론적으로 R^n이 뭐냐고 물으면 유한집합 {1,2,...n}에서 R로 가는 함수로 정의하면서,
벡터공간 R^n을 말하라면 벡터들을 원소(수)로 가지고 그 위의 연산(함수)를 어찌저찌 규칙을 만족하게 하는 순서쌍이라고 생각한다거나.
순서쌍은 뭐냐고 물으면 순서쌍은 순서쌍이라고밖엔.. 왜 아까 R^n은 순서쌍이 아니고 함수냐고 물으면 그냥 저건 원소가 다 한 집합안의 숫자처럼 생겼잖아 라고밖엔..
하지만 나처럼 막되먹은 수학을 하는 수학자에겐 저정도면 충분했다.
1. 함수
함수는 정의역, 공역, 그리고 연산법칙의 세가지를 묶어서 말하는 개념이다. 따라서 함수를 말할땐 언제나 정의과 공역을 말해줘야한다.
다만 이걸 매번 적는건 책 저자들에게 매우 귀찮은 일이기에 모든 제대로된 고등학교 책과 참고서엔 작은 글씨로 어딘가에 이런 말이 적혀있다.
"식으로 정의되는 함수는 별도의 지시가 없는 한 그 식이 성립하는 가장 큰 실수의 부분집합을 정의역으로 한다"
이를 implied domain이라고 한다. 번역하면 "정의역은.. 내 말이 뭔지 알지?"
물론 이런 정의를 들고오면 복소함수 배운 애들이 f(z)= log z의 가장 큰 정의역은 어디인가요 같은거 묻기도 하지만 뭐 고등학생은 그런거 모른다고 해두자.
즉 함수 f(x) = 1/x라고 하면 저 함수는 (0, 무한대)를 정의역으로 가질수도 있고 [1,2]를 정의역으로 할 수도 있지만 별 말이 없으면 {x != 0}이 정의역이다.
공역 역시도 별 말이 없으면 실수로 두지만, 그러면 1:1 대응을 말할때 골치가 아파진다.
f(x) = x^2 (x>=0) 이라고 적어놓으면 f는 0이상의 실수를 정의역으로 가지고 실수를 공역으로 가지며 연산법칙을 제곱으로 정의하는 함수라고 해놓고
f(x)의 역함수는 sqrt(x) 라고 해버리면 "1:1 대응이 아니라 1:1 함수인데 어째서 역함수가 있나요?" 하고 항의할 수 있다.
그래서 일부의 책에선 "정의역이 같고 한쪽 공역이 다른공역보다 작은데 연산법칙이 같으면 같은 함수로 본다"
굳이 부르자면 implied codomain 정도로 불러줄 수 있겠다. 즉 공역도 무슨말인지 알거라고 생각하고 말이 되게 알아서 맞춰 생각하라는 말이다.
f를 저렇게 놓고 문제 풀라고 할때는 f의 공역이 0이상이든 실수전체든 대개 문제가 안되니 냅두고,
f의 역함수는 무엇인가? 라고 물으면 물은 말 안에는 f가 1:1대응이라는 의미가 내포되어있으니 저기서 말하는 f는 x가 0이상이고 공역도 y는 0이상이란
정의를 저렇게 썼겠구나. 하고 문맥을 읽어서 저 기호를 이해하라는 얘기다.
예를들면 f(x) = 1/x 라고 적어놓으면
"f는 함수. 정의역은 {x : x !=0 }, 공역은 실수 (또는 {y : y!=0}), 연산법칙은 정의역의 각 점 x를 1/x에 대응. "
이라는 뜻이다. f의 역함수는 자기자신이라고 하면 공역은 괄호 안의걸로 이해하면 된다.
2. 연속함수
고등학교의 연속함수 정의는 1. f(x0)이 존재할것, 2. lim f(x0) 이 존재할것 3. 그 둘이 같을것 으로 정의하고 있다.
또한 정의역의 모든 점에서 연속이면 연속함수라고 부른다.
그럼 f(x) = 1/x는 연속함수인가? 연속함수가 맞다. 정의역에 0이 안들어가니까.
f는 0에서 연속인가? 0에서 정의안되니까 연속이 아니다.
그럼 연속함수의 곱은 연속함수랬는데,
f(x) = 1/x랑 g(x) = x 두개 곱하면 f(x)g(x) = 1인데 우변은 연속함수고 좌변은 연속함수 아닌가? 하는 질문을 던질수도 있다.
여기엔 두가지 이야기가 들어있는데, 하나는 f(x) = 1/x, g(x) =x일때..라고 말을 적은것은 f, g라는 두 함수의 정의를 식으로 간단하게 표현한거고,
f(x)g(x)=1이라는것은 좌변과 우변 각각을 함수로 이해한다기보다는 (정의역에서 성립하는) 명제(식)이라는 것이다.
예의 친구는 같은 이유로 학부생 이상에게는 명제와 정의의 혼선을 피하기 위해 f = (x |-> 1/x ) 같은 기호로 적어야한다고 말하긴 하지만,
그 급진적인 생각은 놔두고 우리는 마음속으로 저렇게 읽도록 하자. 즉 f(x)g(x) = 1이라는건 저 식이 성립할수 있는 영역 x !=0 에서 f(x)g(x)=1이 성립한다 는 말이다.
물론 저것만으로 대답이 잘 되진 않는다. "그래서 그 급진적인 친구말대로 h = ( x |-> f(x)g(x)) 라고 적으면 h = 1 맞지않나?"
맞긴한데, 저렇게 정의하면 h의 정의역은 앞서 implied domain이 x != 0이 된다. 즉 h=1은 맞지만,
"h : 함수, 정의역 {x : x!=1} 공역 : 실수 또는 적당한 부분집합, 규칙: 정의역의 한 점 x에 1을 대응 " 이란걸로 정의되었기때문에
h(x)=1이라는 식은 (정의역의 각 점 x에 대하여라는 말이 생략되었다고 번역되어) 참이고 x=0에서 연속이냐고 물으면 연속이 아니다(정의가 안됐으니까)
3. 미적분학의 숨은정리.
사실 이 글은 예전에 이 설명을 하려고 쓰려고 기획했다가 귀찮아서 적지 않았던 글이다.
다음의 식을 보자.
lim x->0 x/x = lim x->0 1 = 1.
"극한이 뭔가요?" 라고 물으면 위의 함수냐 집합이냐 뭐냐..하는 질문에 대한 답은 함수다.
함수면 정의역이 뭔가요? 하는 질문에 대한 답은 실함수 가 되기도 하고 실함수의 부분집합이 되기도 한다.
실함수로 정의하면 공역에 "존재하지 않음"이라는 특정한 원소를 하나 더 집어넣어줘야할거고, 편의상으론 그냥 실함수의 부분집합으로 두자.
물론 "lim x->a" 까지를 한 덩어리로 보아서 정의역이 그렇다는거고 저 a까지 정의역에 넣는다면 정의역이 좀 더 귀찮아질텐데 (좌극한 우극한기호나 무한대 넣고빼고 등)
그냥 저기가지 한 덩어리로 기호로 생각하자.
책에따라선 extended real number를 공역으로 쓰기도 한다만, 뭐 그것도 그때그때 책따라서..
즉 어떤 함수를 받아서 숫자를 뱉어주는 류의 함수다. 이렇게 함수를 모아놓은 집합에서 숫자로 가는 함수를 functional이라고 부른다.
operator는 보통은 공역도 함수공간이 될때 operator라고 부른다. 후자의 번역은 연산자인데 전자는 내가 번역을 잘 모른다. 난 연산자라고 그냥 막 부르기도 한다.
아무튼 방금 위에서 x/x = 1은 식이지 우변을 함수로 보는게 아니랬는데 저기선 정의역에 0을 포함하지 않는 함수가 어느순간 0을 포함하는 식으로 은근슬쩍 바뀌었다?
극한은 함수 위에서 정의되는거라 했기때문에 저 1은 그냥 숫자가 아니라 상수함수 x |-> 1로 이해하는게 맞다. 그런데 정의역에 아까 x=0 이 빠졌는데 저 극한을 어떻게 숫자로 바꿨는가?
여기서 대부분의 책에서 생략하는 미적분학의 숨은정리가 등장한다.
저 짧은 식을 잠깐 풀어서 쓰면 이렇게 된다. (lim 아랜 다 x->0이 들어있다고 하자)
lim ( x |-> x/x , implied domain은 x !=0 )
(1) = lim ( x |-> 1, 위 식을 정리. domain은 x !=0인 함수. )
(2) = lim ( x |-> 1, 정의역은 실수전체)
(3) = 1 (실수)
(1)은 식을 정리한거에 불과하다.
(3)은 엡실론델타로 상수함수는 연속이다 증명하는게 아니라 우리가 "기존에 아는건 대충 다 연속함수로 퉁치자" 라고 선언한걸 이용한다.
(2)에서 저 숨은정리가 작동하는데 저 정리를 제대로 풀어쓰면 다음과 같다.
"미적분학의 숨은정리:
f와 g는 (a를 제외할 수 있는 a 근방에서 정의된) 두 실함수로 a점을 제외한 a 근방에서 일치한다. 즉 어떤 d > 0에 대해 f(x) = g(x) for 0<|x-a|<d.
이 때 lim (x->a) f(x) = lim (x->a) g(x)가 성립한다."
저 정리의 내용인즉, 정의역에서 빠진점이 다시 정의역에 들어가서 원 함수를 우리가 아는 연속함수로 만들면 그렇게 바꿔서 계산을 하라는 소리다.
대학1학년 미적분학까지의 모든 극한 계산은 (샌드위치 정리를 제외하면) 저 계산법칙을 숨어서 사용하고 있다.
밑에 1/x가 연속이냐 뭣이냐 하는 글 보고 생각나서 다시 적음. 근데 내가 이거 안적었던거 맞지?
사족. 학생들은 그런거 대충 적어서 내긴 하지만, 착하고 까탈스런 조교랑 강사들은 저 사기를 어떻게 정당화해야할지를 미적 수업 전에 고민한다고 하더라.
떡밥종결 갓침 수추 드립니다
미적분학의 숨은정리라니까 커엽 ㅋㅋ
뭔가 좋은 글 같다
먼가 좀 이상하네
이거 삭제하지마요
숨은 tacit 암묵적으로 tacitly
《 lim^-1라는 표기를 실수집합-> 실함수집합의 멱집합 이라는 어떤 함수로 정의하고 lim(f)=a 는 "f는 lim^-1(a)의 원소이다"의 간략표기로 한다》 고 하면 '공역에 존재하지않음'같은 거라든가 생각할필요없이 더깔끔할듯
ㄴ 되긴 하는데 내가 저걸 생각할땐 그냥 저걸 풀어서 lim 이 존재하는 함수공간에서 정의된 functional이나 return NAN; 같은 느낌으로 에러도 같이 뱉는 문제해결함수쪽에 가까워서..
미적분 배울 수준이면 극한을 함수로 안 보고, 엡실론델타 정의대로 limf(x) 자체를 하나의 수로 볼텐데, 엡실론델타로 생각하면 사기는 아니지 않음? 극한을 함수로 보려고 하는 것과 함수의 정의역을 판단하던 관례가 섞여 생긴 해프닝 같은 느낌인데.
개추 - dc App
? 뭐가 숨은 전제라는거여
애초에 정의역에 포함되든 말든 극한은 구할 수가 있는 것인데 '1'이라는 상수함수의 정의역에 0이 들어가느냐 마느냐를 고민할 필요가 있음?
그리고 함수의 연산은 당연히 정의역이 같은 함수끼리 하는거 아니였어?
0으로 나눌 수 없으므로 x/x=1이라는 등식에는당연히 (x!=0)이라는 조건이 붙고, 그렇게 붙여놓은 조건이 lim 1 이라는 식에서 1의 도메인이 되는거나 마찬가지 아니야? 함수끼리의 이항연산은 함수를 뱉는다, lim는 함수를 받는 functional이다 라는걸 상기하는건 좋은데, limit point에서 limit구하는건 입실론 델타로 바로 되는데 왜 '숨은 정리'를 거쳐가야 된다고 생각해?
연속 따지는거 땜에 고민하는겨?? 그러기엔 x/x도 1도 연속인딩.. 그리고 애초에 정의역이 어찌되든 극한을 어디서 구하든 constant functuon에 대해선 lim c = c라는거 증명해놓으면 끝 아니야? 그럼이제 "여기서 표기한 1은 그냥 수가 아니라 상수 함수이며 도메인은 0을 포함하지 않음"을 인지하느냐 못하냐 문제만 남지
나 나름 수학 전공자인데 왜 뭔 소린지 하나도 모르겠냐. 말로 현혹하려 들지 말고 수식으로 쇼부봐라.
글쓴이랑 싸우던놈 이해못하니까 한달넘게 비추 꼬박꼬박 박은거보소 ㅋㅋㅋㅋ