Search
Duplicate

Math 오브젝트

ES5까지는 Javascript에서 수학 계산 처리 함수는 많이 부족했습니다.
하지만, ES6에서 수학 계산용 함수가 많이 추가되었는데, 이를 통해 머신러닝/딥러닝에 대응할 수 있게되었습니다. 그에 대해서 Tensorflow.js 라이브러리도 나왔습니다.
여기서는 일반적인 사용에 대해서 개요 중심으로 다루고 수학 계산을 좀 더 자세하게 다루는것은
따로 공부를 좀 해서 Tensorflow.js쪽을 진행하며 다루겠습니다.

정수, 제곱근, 사인

1. Math.trunc()

소수를 제외한 정수를 반환하는 메소드
console.log(Math.trunc(12.56), Math.floor(12.56));//12, 12 console.log(Math.trunc(-12.56), Math.ceil(-12.56));//-12, -12 console.log(Math.trunc("45.67"), Math.trunc(true));//45, 1
JavaScript
복사
1.
12.56에서 56을 제외하고 12만 반환합니다.
2.
양수이면 Math.floor()와 같고 음수이면 Math.ceil()과 같습니다.
3.
우선, Number타입으로 변환 후 결과값으로 함수를 실행합니다.

2. Math.sign()

값의 부호에 해당하는 값을 구하는 메소드입니다.
console.log(Math.sign(5), Math.sign(-5)); console.log(Math.sign(-0), Math.sign("123"));
JavaScript
복사
1.
파라미터 값이 양수이면 1을 반환하고 음수이면 -1을 반환합니다.
2.
+0이나 -0은 모두 0을 반환합니다.
3.
Number타입으로 변환 후 실행합니다.

3. Math.hypot(): 제곱근

각 파라미터 값을 제곱하여 합산 후 합한 값의 제곱근을 반환하는 메소드입니다.
console.log(Math.hypot(3, 4));//5 console.log(Math.hypot(-7));//7
JavaScript
복사
1.
3의 제곱은 9이고, 4의 제곱은 16으로 두 값을 더하면 25가 됩니다.
2.
결과값 25의 제곱근을 구하면 5가됩니다.
3.
파라미터가 하나인 경우 Math.abs()와 같습니다.

4. Math.cbrt(): 세제곱근(cube root)

console.log(Math.cbrt(27));//3
JavaScript
복사
1.
세제곱근 공식
Math.cbrt(x)=3xMath.cbrt(x) = ^3\sqrt{x}

Hyperbolic( 쌍곡)

1. Math.sinh(): 쌍곡 사인(sine)

Math.sinh(x)=exex2Math.sinh(x) = {e^x - e^-x\over2}

2. Math.asinh(): 쌍곡 아크사인(arcsine)

3. Math.cosh():쌍곡 코사인(cosine)

Math.cosh(x)=ex+ex2Math.cosh(x)= {e^x+e^-x\over2}

4. Math.acosh():쌍곡 아크코사인(arcosine)

5. Math.tanh():쌍곡 탄젠트(tangent)

tanhx=sinhxcoshx=exexex+ex=e2x1e2x+1tanhx = {sinhx\over coshx} = {e^x - e^-x\over e^x+e^-x} = {e^{2x}-1\over e^{2x} +1}

6. Math.atanh():쌍곡 아크탄젠트(arctangent)

로그

1. Math.log2(): 2를 밑으로 한 로그 값

⇒ Math.log(2) = log2(x)log_2(x)

2. Math.log10(): 10을 밑으로 한 로그 값

⇒ Math.log10(x) = log10(x)log_{10}(x)

3. Math.log1p(): Math.log(1 + 파라미터 값)

⇒ Math.log1p(x) = In(1+x)In(1+x)

4. Math.expm1()

: 자연로그 상수(e)의 x승 -1으로 x는 파라미터 값,(Math.exp(x)-1)과 같습니다.

32비트 계산

Javascript는 64비트 계산을 하기에 일반적으로는 32비트 계산을 하지는 않습니다. 하지만, Emscripten에 대처하기위해 32비트 계산역시 지원합니다. (Emscripten)

1. Math.imnul(): 곱한 값을 32비트로 반환합니다.

2. Math.clz32(): 32비트 값에서 비트 값이 0인수 반환

3. Math.fround(): 32비트 유동 소수 값으로 변환, 반올림