주어진 'A = B의 LN [맥스 (b 11)]가'이라고해결 B
a = b ln [ max (11, b) ]
a
, 어떻게 하나 b
을 계산할 수 있는가? (반복 근사법을 사용해야합니까?)
주어진 'A = B의 LN [맥스 (b 11)]가'이라고해결 B
a = b ln [ max (11, b) ]
a
, 어떻게 하나 b
을 계산할 수 있는가? (반복 근사법을 사용해야합니까?)
a/ln(11) <= 11
의 경우이 방법이 해결책이며 반복 할 필요가 없습니다. 그렇지 않으면 b * ln(b) - a = 0
을 푸십시오. Newton-Raphson과
감사합니다. @Henrik. 도움이됩니다. 나는 이것을 시도 할 것이다. –
다음은 b와 a 대신 x와 y가있는 함수의 그래프입니다.
시점에서 "코너"가 있음을주 (11, 11 LN (11)).
a = b ln 11 if b <= 11
b ln b if b > 11
(내가 다른 StackExchange 사이트에 여기 MathJax 수 있으면 좋겠다!) W()
가 Lambert W function입니다 the solution to the second version이 b = exp(W(a))
입니다
하는 것으로 : 함수는 다음과 같이 다시 쓸 수 있기 때문이다. 많은 프로그래밍 언어에는 Lambert W 함수를 구현하는 패키지가 있습니다. 예를 들어 파이썬에서는 scipy
패키지 calls it lambertw()
을 사용합니다.
그래서 파이썬에서 전체 솔루션은 수학 모듈에서 scipy 모듈과 exp
및 log
(LN에 해당)에서 lambertw
기능을 가져온 후,이 바퀴를 개혁하고보다 쉽습니다
b = (a/log(11) if a <= 11 * log(11)
else exp(lambertw(a)))
입니다. scipy의 lambertw
함수는 연속 분수를 사용하여 대략적인 값을 얻은 다음 Newton-Raphson 메서드의 1 회 또는 2 회 라운드를 사용하여 최종 결과를 얻습니다. 이것은 Newton-Raphson 만 사용하는 것보다 빠릅니다.
질문이 명확하지 않습니다. "반복"이란 무엇을 의미합니까? 어떤 알고리즘을 사용하고 있습니까? (반복을 많이 사용하는 알고리즘이 있습니까?) –
@RoryDaulton : 반복 기법이 필요한지 아닌지에 대한 질문은 명확합니다. 어떻게 b를 얻을 수 있습니까? "어떤 알고리즘을 사용하고 있습니까?"- 내 질문에 다시 묻는 것 같습니다. 그게 내가 원하는 반복의 필요성을 묻는 이유입니다. (내가 필요하든 없든, 이전에는 모릅니다) –
나는 사람들이 왜 투표를했는지 모르겠습니다. 얘들 아, 내 질문은 완전히 명확하다고 생각하며, 어떻게 b를 계산할 수 있는지. 이전에는 필자가 썼다. 여러분이 생각한다면,이 문제에 대해 반복 할 필요가 없다고 생각하면, 그냥 대답하고 어떻게되는지 알려주세요. 방금 이전에이 문제에 대한 반복이 필요하다고 가정했습니다. 이것이 유용한 질문이라고 생각되면이 페이지를 떠나십시오. –