2010-10-20 4 views
32

Я хотел бы знать полное расширение log(a + b).Как расширить и вычислить журнал (a + b)?

Например

log(a * b) = log(a) + log(b); 
log(a/b) = log(a) - log(b); 

Подобно этому, есть ли расширения для журнала (а + б)?

+6

Любой язык программирования, который поддерживает «журнал», может вычислить «журнал (a + b)» численно. – kennytm

+3

Принадлежит http://math.stackexchange.com –

+3

Я думал, что должен прокомментировать этот вопрос, так как я здесь нашел ответ на этот вопрос. В контексте байесовского вывода преобразование задней вероятности в лог-пространство требует, чтобы вы брали логарифм знаменателя, который является интегралом (или приближением посредством суммирования). Однако это суммирование должно быть превращено в лог-пространство, поскольку его вычисление является причиной того, что мы сначала переходим в лог-пространство. Существует общий метод, называемый тэгом log-sum-exp. Google это, и вы увидите, где он используется. Не то же самое, но достаточно актуальное :) – mahonya

ответ

71

В общем, один не разворачивается log(a + b); вы просто справляетесь с этим, как есть. Тем не менее, существуют иногда обстоятельства, когда это имеет смысл использовать следующее тождество:

log(a + b) = log(a * (1 + b/a)) = log a + log(1 + b/a) 

(На самом деле, эта идентичность часто используется при реализации log в математических библиотеках).

+9

И мы также можем использовать серию Тейлора для расширения ln (1 + b/a) ... –

+5

@ wiz kid: предполагается, что 'b' меньше по величине, чем' a', конечно. (В противном случае замените их). –

+0

Большое спасибо приятелю :) –

-8

Зачем вам это нужно? Свойство, что log (a*b) = log a + log b полезно только потому, что оно преобразует операцию умножения в операцию добавления. log (a+b) уже включает только дополнение, поэтому нет никакого смысла в дальнейшем расширении.

Конечно, вы всегда можете использовать один из the several series для вычисления логарифмов, но самым быстрым способом было бы просто вычислить log (a+b) напрямую. На самом деле, на большинстве компьютеров даже log (a*b) будет быстрее, чем log a + log b, так как последний включает в себя дополнительную операцию логарифма.

+26

Потому что иногда вы можете только вычислить log (a) и log (b), а не явно a + b и взять журнал – Jing