땔깜이라 알고리즘 거의 모르는데
지금 실수의 실수 거듭제곱을 구해야하는데
내장함수는 못 쓴다
알고리즘으로 구해야하고
일단 지금은 테일러 급수에서 이항급수를 사용해서 구하는데
이건 성능이 높아보이진 않는다
이 방법보다 더 좋은 방법 뭐가 있을까
예를 들어 2.45^3.56 같은 수를 계산해야된다
지금 실수의 실수 거듭제곱을 구해야하는데
내장함수는 못 쓴다
알고리즘으로 구해야하고
일단 지금은 테일러 급수에서 이항급수를 사용해서 구하는데
이건 성능이 높아보이진 않는다
이 방법보다 더 좋은 방법 뭐가 있을까
예를 들어 2.45^3.56 같은 수를 계산해야된다
수치해석 안 들은 빡머가리라 모르겠네
exp(x ln y)
끌어올수 있는 함수가 뭐임? 뭐 자연로그나 e^x같은거 있음?
아무것도 없어
https://github.com/leegao/float-hacks
효과적인지까진 모르겠고 떠오르는 방법으론 1. x^n 계산하는 pown 먼저 짬. 2. exp(x)를 0 <=x<10 정도에서 잘 근사하도록 만듬. 3. 1과 2를 조합하여 양수에서 exp를 만들고 음수는 역수로. 4. ln x를 x=exp(y)에 뉴턴법을 써서 계산.
근데 알다시피 수치해석하는 애들이 빡세게 이거저거 만들어놨는데 남이 만든거 어떻게든지 쓰는게 좋지 않나 하는 생각은 여전히 든다.. 테일러급수가 사실 수렴속도가 엄청 빠른데, 수렴속도가 정의구간에 의존하다보니 큰값에 대해서 느린거라.. 2번같이 범위 제한하면 안정적으로 빠르게 돌아갈거야. 아 물론 x^y=exp(y ln x) 로 계산 위에 말대로.
뉴턴 랩손, 테일러 말고는 잘 모르겠다