정의역이 \mathbb{R}\\{0\}이라서?


그딴 얘기를 하려고 글을 싼게 아니다 












자 봐라

수학쟁이들은 모르는 현실.webp



29b2c524e9d776b16bbdc69528d52703ab2dca20496e9606


보이지?

이게 수학쟁이들이 생각 못하는 신기한 차이임


저 이상한 계단은 double precision floating point 때문에 생기는 문제임.


그 전에 일단 저 그래프는 desmos에서 그려졌고, 병1신 그자체인 geogebra(이하 병1신) 에서는 얻을 수 없는 결과라는걸 미리 말해둠(병1신에서는 그래프가 사라짐) 

 

'실수'는 완비순서체이지만 컴퓨터는 그걸 한정된 비트로 표현해야 함.

CS에선 이 간극응ㄹ '배정밀도 부동소수점' (double precision floating point) 같은 표준으로 메웠지만, 앞의 짤이 그 caveat임.

ieee754가 표현할 수 없는 범위 중 하나인 0에 아주 가까운 영역에서 일어나는 일임.


0에 가까운 숫자들은 '비정규화된 수'(subnormal number)로 처리하는데,

이때 표현 가능한 가장 작은 양수가 S_0 = 2^-1074이고, 대략 4.94066 * 10^-324 정도.

이보다 작은 양수는 0 아니면 S_0의 배수로 처리된다.


이제 x^2 값은 어떻게 처리되는지가 핵심인데,

x^2의 실제 값을 계산한 뒤에, 이걸 S_0 배수로 반올림하는데, 기준은 이렇다


1. x^2 실제 값이 S_0/2 (2.47033 * 10^-324) 보다 작으면 0

2. S_0/2 ≤ x^2 < 3*S_0/2 이면 S_0

3. 3S_0/2 ≤ x^2 < 5S_0/2 이면 2*S_0

이런 식.





믿지 못하는 놈들을 위해 다시 찍어보면



36e8f202b38060f34af283e643816969448091955b727c5f3cb49d02b5aaaac388f16f67db809d61239a23d7e30e4647bacbb49bc3


(1.571727 * 10^-162, 0).

x_1 = 1.571727 * 10^-162.

x_1^2 ~= (1.571727 * 10^-162)^2 ~= 2.470325759 * 10^-324.

S_0/2 ~= 2.470328229 * 10^-324 보다 작으므로 x_1^2은 0

y_1 = (반올림된 x_1^2) / x_1 = 0 / x_1 = 0.


(1.571728 * 10^-162, 3.143456 * 10^-162).

x_2 = 1.571728 * 10^-162.

x_2^2 ~= (1.571728 * 10^-162)^2 ~= 2.470332052 * 10^-324.

S_0/2 ~= 2.470328229 * 10^-324 보다 크고

3S_0/2 ~= 7.41098 * 10^-324 보단 작으니, x_2^2은 S_0.

그럼 y_2 = (반올림된 x_2^2) / x_2 = S_0 / x_2) = (4.940656458412465 * 10^-324) / (1.571728 * 10^-162) ~= 3.14345985 * 10^-162

주어진 y_2 값 3.143456 * 10^-162은 2 * x_2 = 2 * 1.571728 * 10^-162 = 3.143456 * 10^-162 와 (표시된 자릿수까지) 정확히 같음.


나머지 부분들은 지루하고 현학적이므로 생략



그래서 저 계단 모양은?


1. x값이 작을 때 (x^2 < S_0/2 동안) x^2이 0으로 취급돼서 y=0 (첫 번째 수평 구간).

2. x가 커져서 x^2이 S_0/2를 넘으면 (S_0/2 ≤ x^2 < 3*S_0/2 구간), x^2은 S_0로 반올림, 그래프는 y = S_0/x 곡선을 따름(첫 번째 꺾임).

3. x가 더 커져 x^2이 3S_0/2를 넘으면 (3S_0/2 ≤ x^2 < 5S_0/2 구간), x^2은 2S_0로 반올림, 그래프는 y = 2S_0/x 곡선을 따름.


나머지 kS_0/x에 대한 설명으로 반올림되는 x의 구간이 점점 좁아진다는 말은

지루하고 현학적이므로 생략



수학도들 입만 벌리면 지가 플라톤의 세계에서 사는듯이 말하는거 보고

진짜 차이 안나는지 써봄.