Калькулятор онлайн логарифмы lg: Калькулятор десятичный логарифм

логарифм — Логарифм по основанию 2 в питоне

спросил

Изменено 8 месяцев назад

Просмотрено 302 тысячи раз

Как мне вычислить журнал по основанию два в python. Например. У меня есть это уравнение, где я использую логарифмическую базу 2

 импорта математики
e = -(t/T)* math.log((t/T)[ 2])
 
  • питон
  • логарифм

4

Хорошо знать, что

, но также знать, что math.log принимает необязательный второй аргумент, который позволяет указать базу:

 В [22]: import math
В [23]: math.log?
Тип: встроенная_функция_или_метод
Базовый класс: 
Строковая форма: <журнал встроенной функции>
Пространство имен: Интерактивный
Строка документации:
    log(x[ base]) ->
логарифм x по данному основанию. Если основание не указано, возвращает натуральный логарифм (по основанию e) числа x. В [25]: math.log(8,2) Выход[25]: 3.0

3

Зависит от того, является ли ввод или вывод int или float .

 утверждают 5.392317422778761 == math.log2(42.0)
утверждать 5.392317422778761 == math.log(42.0, 2.0)
утверждать 5 == math.frexp(42.0)[1] - 1
утверждать 5 == (42).bit_length() - 1
 
 импорт математики
log2 = math.log(x, 2.0)
log2 = math.log2(x) # python 3.3 или новее
 
  • Спасибо @akashchandrakar и @unutbu.

Если все, что вам нужно, это целая часть логарифма по основанию 2 числа с плавающей запятой, извлечение экспоненты довольно эффективно:

 log2int_slow = int(math.floor(math.log(x, 2.0))) # эти дай
log2int_fast = math.frexp(x)[1] - 1 # тот же результат
 
  • Python frexp() вызывает функцию C frexp(), которая просто берет и настраивает экспоненту.

  • Python frexp() возвращает кортеж (мантисса, экспонента). Итак, [1] получает экспоненциальную часть.

  • Для целых степеней двойки показатель степени на единицу больше, чем можно было бы ожидать. Например, 32 хранится как 0,5×2⁶. Это объясняет - 1 выше. Также работает для 1/32, который хранится как 0,5×2⁻⁴.

  • Этажи в сторону отрицательной бесконечности, поэтому log₂31, вычисленный таким образом, равен 4, а не 5. log₂(1/17) равен -5, а не -4.


Если и ввод, и вывод являются целыми числами, этот родной целочисленный метод может быть очень эффективным:

 log2int_faster = x.bit_length() - 1
 
  • - 1

    , потому что для 2ⁿ требуется n+1 бит. Работает для очень больших целых чисел, например. 2**10000 .

  • Этажи в сторону отрицательной бесконечности, поэтому log₂31, вычисленный таким образом, равен 4, а не 5.

2

Если вы используете Python 3.3 или выше, у него уже есть встроенная функция для вычисления log2(x)

 import math
'находит логарифм по основанию 2 x'
ответ = math.log2(x)
 

Если вы используете более старую версию Python, вы можете сделать так:

 импортировать математику
'находит логарифм по основанию 2 x'
ответ = math.log(x)/math.log(2)
 

0

Использование numpy:

 В [1]: импортировать numpy как np
В [2]: np.log2?
Тип: функция
Базовый класс: <тип 'функция'>
Строковая форма: <журнал2 функции по адресу 0x03049030> Пространство имен: Интерактивный Файл: c:\python26\lib\site-packages\numpy\lib\ufunclike.py Определение: np.log2(x, y=нет) Строка документации: Возвращает логарифм по основанию 2 входного массива по элементам. Параметры ---------- х : массив_подобный Входной массив. у : массив_подобный Необязательный выходной массив той же формы, что и `x`. Возвращает ------- у : ндаррай Логарифм по основанию 2 числа 'x' по элементам. NaN возвращаются, где `x` отрицательно. Смотрите также -------- лог, лог1р, лог10 Примеры -------- >>> np.log2([-1, 2, 4]) массив([NaN, 1., 2.]) В [3]: np.log2(8) Выход[3]: 3.0

http://en.wikipedia.org/wiki/Binary_logarithm

 def lg(x, tol=1e-13):
  разрешение = 0,0
  # Целая часть
  пока х<1:
    разрешение -= 1
    х *= 2
  в то время как х>=2:
    разрешение += 1
    х / = 2
  # Дробная часть
  fp = 1,0
  в то время как fp>
=tol: fp /= 2 х *= х если х >= 2: х / = 2 разрешение += частота кадров вернуть разрешение

1

 >>> по умолчанию log2( x ):
... вернуть math.log( x ) / math.log( 2 )
...
>>> log2( 2 )
1,0
>>> log2( 4 )
2.0
>>> log2( 8 )
3.0
>>> log2( 2.4 )
1.2630344058337937
>>>
 

1

Попробуйте это,

 импортировать математику
print(math. log(8,2)) # math.log(число,основание)
 

В python 3 или выше математический класс имеет следующие функции

 import math
math.log2(x)
мат.log10(x)
math.log1p(x)
 

или вообще можно использовать math.log(x, base) для любой базы, которую вы хотите.

1

Не забывайте, что log[база A] x = log[база B] x / log[база B] A .

Таким образом, если у вас есть только log (для натурального журнала) и log10 (для журнала по основанию 10), вы можете использовать

 myLog2Answer = log10(myInput) / log10(2)
 

Использовать помощь метод

 >>> импортировать математику
>>> помощь(math.log)
Справка по встроенному журналу функций в модуле math:
бревно(...)
    журнал (х, [база = math.e])
    Возвратите логарифм x к данному основанию.
    
    Если основание не указано, возвращает натуральный логарифм (по основанию e) числа x. 
(КОНЕЦ)
 

лог(х, [база=math.e])

Вернуть логарифм x по заданному основанию.

0

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Вход Расчеты | Решенные примеры | Алгебра

Сначала обсудим общий подход к использованию бревен в расчетах.

Предположим, что нам нужно оценить значение 9{{e_2}}}} \right\}\\& = {\log _B}a + {\log _B}b + {e_1}{\log _B}c — {\log _B}x — {e_2}{ \log _B}y\end{align}\]

Таким образом, если у нас есть значения различных журналов справа, мы можем оценить значение журнала B N . Предположим, что это Z . Тогда мы имеем:

\[{\log _B}N = Z\]

Теперь мы просто берем антилогарифм обеих сторон, что есть не что иное, как возведение обеих сторон в степень B , так что мы имеем 9Z}\]

Таким образом, нам удалось вычислить N , используя только операции сложения и вычитания (и простые умножения). Мы также брали логи и антилог в процессе — но для этого у нас с собой есть лог-таблицы.

Прежде чем приступить к некоторым вычислениям, давайте разберемся, как использовать таблицы журналов. Во-первых, следует отметить, что наша база по умолчанию, которую мы используем в 10, то есть B

= 10, поэтому вы найдете таблицы журналов, как правило, в базе 10. Это потому, что 10 является очень легкой базой для нашего ума. понять, а расчеты с основанием 10 — самые простые (мы использовали 10 счисления с тех пор, как научились считать). 9{—4}}\\ &\Стрелка вправо \,\,\,\log \left( {0.000134} \right) = \,\,\, — 4 + \log \left( {1.34} \right)\ end{align}\]

Неотъемлемая часть любого бревна называется его характеристикой , а нецелая часть — его мантисса . Обратите внимание, что мантисса всегда будет лежать между 0 и 1. Почему? Потому что мантисса — это логарифм некоторого числа x между 1 и 10, и если \(1 \le x < 10\), то \(0 \le \log x < 1\). Таким образом, мантисса лежит в [0, 1). 91\\&\log\;(45.67)\;=\;1\;+\;\log\;(4.567)\end{align}\]

Таким образом, нам нужно найти log 4.567. Найдите стандартную таблицу журналов. В левой колонке найдите «45». Если бы искомое число было «4500», мантисса была бы 0,6532. Но теперь просмотрите самую верхнюю строку и найдите «60». Таким образом, соответствуя «4560», мантисса была бы 0,6590.

Но на самом деле нам нужна мантисса, соответствующая «4567» — таким образом, добавьте число из соответствующего столбца в правом наборе столбцов к мантиссе первых трех цифр. Таким образом, искомая мантисса равна 0,659.0 + 7 = 0,6597.

\[\begin{align}&\Стрелка вправо\log\left(4.567\right)=0.6597\\\\&\Стрелка вправо\log(45.67)=1.6597\end{align}\]

На С другой стороны, предположим, что нам дано, что log N равен 1,6597, т. е. log N = 1,659

log N = 1,6597

1 5

840902. Теперь нам придется использовать антилогарифмические таблицы. Подход тот же: взгляните на эту таблицу:

 

Таким образом,

\[\mathrm{anti}\log\;(1.6597)\;=\;45.67\]

Теперь, когда вы знаете, как использовать логарифмические и антилогарифмические таблицы, давайте проведем некоторые вычисления с использованием логов.

Пример 1: Использование журналов для оценки \[N = \frac{{647 \cdot 32 \times 0,00000147}}{{8,473 \times 64}}}\]

Решение: Наш подход состоит из четырех шагов :

  1. преобразовать выражение для N в логи

  2. оценить эти журналы с помощью таблицы журнала

  3. таким образом определить журнал N

  4. вычисление антилогарифма журнала N

Таким образом,

\[\begin{align}&\log N = \left( {\frac{{647 \cdot 32 \times 0,00000147}}{{8,473 \times 64}}} \right)\\\ ,\,\,\,\,\,\,\,\,\,\,\,\, &= \log \left( {647 \cdot 32} \right) + \log \left( {0,00000147} \верно)\\\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\ ,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, &- \log \left( {8. 473} \right) — \log \left( {64} \right)\end{align}\] 91\\&\Стрелка вправо\лог\влево(64\вправо)=1+\лог\влево(64\вправо)\\\;\;\;\;\;\;\;\;\;\;\ ;\;\;\;\;\;\;\;&=1.8062\end{align}\]

Таким образом,

\[\begin{align}&\log N=2.8111+\overline6.1673– 0,9280–1,8062\\&\qquad\;=2,8111+\влево(–6+0,1673\вправо)–0,9280–1,8062\\&\qquad\;=–5,7558=–5–0,7558\\&\qquad\;= \left(–5–1\right)+1–0,7558\\&\qquad\;=–6+0,2442\\&\qquad\;=\overline6\cdot2442\end{align}\]

Обратите внимание на последнее пару шагов осторожно. Теперь у нас есть характеристика и мантисса логарифма 9.{ — 6}} = 0.00000\,17547\]

Проверьте это с помощью калькулятора. Обратите внимание, что N было вычислено без каких-либо реальных операций умножения и деления — операций гораздо более громоздких, чем сложение или вычитание.

Пример 2: Найдите значение \(\sqrt[5]{{0,00000165}}\)

Решение: Пусть \(N = \sqrt[5]{{0,00000165}}\)

\[\begin{array}{l} \Rightarrow \,\,\,\log \,N = \frac{1}{5}\log \left( {0,00000165} \right)\\\\\,\ ,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, = \frac{1}{5}\left ( { — 6 + \log 1. 65} \right)\,\,\,{\rm{(почему?)}}\end{массив}\] 92},\,\,22 = 2 \times 11\) и \(70=7\;\times\;10\), мы имеем

\[\begin{array}{l} \log N = 4 \left( {1 + \log 3 + \log 11} \right) — 8\log 7\\ \,\,\,\,\,\,\,\,\,\,\,\,\, \,\,\,\,\,\,\,- \frac{1}{3}\left( {\log 2 + \log 11} \right) — \frac{1}{3}\left( {1 + \log 7} \right)\\ \,\,\,\,\,\,\,\,\,\,\,\,\, = \frac{{11}}{3} — \frac{1}{3}\log 2 + 4\log 3 — \frac{{25}}{3}\log 7 + \frac{{11}}{3}\log 11\\ \,\, \,\,\,\,\,\,\,\,\,\,\, = \frac{{11}}{3} — \frac{1}{3}\left( {0,3010} \right ) + 4\влево( {0,4771} \вправо)\\ \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \,\, — \frac{{25}}{3}\left( {0,8451} \right) + \frac{{11}}{3}\left( {1,0414} \right) \end{array}\ ] 9{y + 1}}\]

Решение: У нас есть

\[\begin{array}{l}(x+y)\log2=y\log6\;\;\\\;\ ;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=y(\log2+\log3)\end{массив}\]

\(\Стрелка вправо x\log2=y\log3\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\ ;\;\;\;\;\;\;\;\;\;\cdots(1)\)
и, \(x\log 3 = \log 3 + \left( {y + 1} \right)\log 2\)

\[\Стрелка вправо\;\;\;\;\left(x-1\ вправо)\log3=\влево(у+1\вправо)\log2\;\;\;\;\;\;\;\;\;\;\;\;\;\;\точки\влево(2 \справа)\]

92}{ab}\right)x=\frac{a+b}a\]

\[ \Rightarrow x = \frac{b}{{b — a}} = \frac{{\log 3}} {{\log 3 — \log 2}} \приблизительно \frac{{ \cdot 4771}}{{ \cdot 1761}} \приблизительно 2,71\]

Аналогично, \(y \приблизительно 1,71\).

Пример 6:  Докажите, что следующее соотношение верно для трех чисел a , b и c (предположим, что все термины определены корректно):

\[{\log _a}b = \frac{{{{\log }_c}b}}{{{{\log }_c}a}}\]

9x}\,\,\, \Rightarrow \,\,\,yz = x\\ &\Rightarrow \,\,\,z = \frac{y}{x}\,\,\, \Rightarrow \, \,\,{\log _a}b = \frac{{{{\log }_c}b}}{{{{\log }_c}a}}\end{align}\]

Это соотношение позволяет нам менять базы. Например, предположим, что нам нужно вычислить \({\log _{32}}2048\). Мы можем изменить основание на 2 следующим образом: \[{\log _{32}}2048 = \frac{{{{\log }_2}2048}}{{{{\log }_2}32}} = \frac{{11}}{5} = 2.2\]

Какая польза от журналов?

  • Журналы полезны для количественной оценки относительного изменения значения, а не его абсолютной разницы.

Как делать логи на калькуляторе?

  • Функция «Журнал» доступна на научных калькуляторах. Это ключ, который позволяет вам работать с логарифмами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *