5.24. Вычисление логарифмов по произвольному основанию. Программирование на языке Ruby [Идеология языка, теория и практика применения]
5.24. Вычисление логарифмов по произвольному основанию. Программирование на языке Ruby [Идеология языка, теория и практика применения]ВикиЧтение
Программирование на языке Ruby [Идеология языка, теория и практика применения]
Фултон Хэл
Содержание
5.24. Вычисление логарифмов по произвольному основанию
Чаще всего мы пользуемся натуральными логарифмами (по основанию е, часто натуральный логарифм обозначается как ln), иногда также десятичными (по основанию 10). Эти функции реализованы в методах Math.log и Math.log10 соответственно.
В информатике, а в особенности в таких ее областях, как кодирование и теория информации, обычно применяются логарифмы по основанию 2. Например, так вычисляется минимальное число битов, необходимых для представления числа.
Определим функцию с именем log2:
def log2(x)
Math.log(x)/Math.log(2)
end
Ясно, что обратной к ней является функция 2**x (как обращением ln x служит Math::Е**x или Math.exp(x)).
Эта идея обобщается на любое основание. В том маловероятном случае, если вам понадобится логарифм по основанию 7, можно поступить так:
def log7(x)
Math.log(x)/Math.log(7)
end
На практике знаменатель нужно вычислить один раз и сохранить в виде константы.
Данный текст является ознакомительным фрагментом.
Вычисление постоянных
Вычисление постоянных Вот что мы собираемся сделать: пройтись по всем объявлениям стилей и заменить вычисление выражения его постоянным значением. В предыдущем примере, предполагая, что мы используем IE6 в стандартном режиме, нам хотелось бы видеть следующий код:#myDiv {border:
Вычисление площади и периметра
Вычисление площади и периметра
Команда AREA вычисляет площадь и периметр объекта или заданной области.
Вызывается из падающего меню Tools ? Inquiry ? Area или щелчком на пиктограмме Area на панели инструментов Inquiry.Воображаемая фигура, предназначенная для вычисления площади и
Вычисление геометрии и массы
Вычисление геометрии и массы Команда MASSPROP вычисляет массовые характеристики областей и тел. Вызывается из падающего меню Tools ? Inquiry ? Region/Mass Properties или щелчком на пиктограмме Region/Mass Properties на панели инструментов Inquiry.Команда MASSPROP отображает массовые характеристики в
5.27. Вычисление коэффициента корреляции
Для7.5. Вычисление n-ого дня недели в месяце
7.5. Вычисление n-ого дня недели в месяце Иногда, зная год и месяц, хочется вычислить дату, скажем, третьего понедельника или второго вторника в этом месяце. Такую задачу решает код в листинге 7.1.Чтобы найти n-ое вхождение данного дня недели, мы передаем n в качестве первого
11.10. Вычисление скалярного произведения
11.10. Вычисление скалярного произведения ПроблемаИмеется два контейнера, содержащих числа, причем они имеют одинаковую длину, и требуется вычислить их скалярное произведение.РешениеПример 11.19 показывает, как можно вычислить скалярное произведение, используя функцию
Вычисление площади и периметра
Вычисление площади и периметра
Команда AREA вычисляет площадь и периметр объекта или заданной области.
Вызывается из падающего меню Tools ? Inquiry ? Area или щелчком на пиктограмме Area панели инструментов Inquiry.Воображаемая фигура, предназначенная для вычисления площади и
Вычисление геометрии и массы
Вычисление геометрии и массы Команда MASSPROP вычисляет массовые характеристики областей и тел. Вызывается из падающего меню Tools ? Inquiry ? Region/Mass Properties или щелчком на пиктограмме Region/Mass Properties на панели инструментов Inquiry.Команда MASSPROP отображает массовые характеристики в
Вычисление размера кэша
Вычисление размера кэша Когда Firebird читает страницу базы данных с диска, он сохраняет эту страницу в кэше. Обычно размер кэша по умолчанию является достаточным. Если ваше приложение использует соединения из пяти и более таблиц, Firebird Суперсервер может автоматически
2.
3.9. Вычисление размера БД2.3.9. Вычисление размера БД ERwin позволяет рассчитать приблизительный размер БД в целом, а также таблиц, индексов и других объектов через определенный период времени после начала эксплуатации ИС. Для расчета размеров физических объектов служит диалог Volumetrics Editor (рис. 2.99),
Вычисление номеров
Вычисление номеров Пожалуй, самым простым для понимания (но не самым простым в использовании) способом вычисления номера является использование XPath-выражений. Этот способ практически идентичен использованию xsl:value-of, как было показано в начале этой главы. Единственным
5.2.1. Вычисление максимума
5.2.1. Вычисление максимума
Процедуру нахождения наибольшего из двух чисел можно запрограммировать в виде отношенияmах( X, Y, Мах)где Мах = X, если X больше или равен Y, и Мах есть Y, если X меньше Y.
Это соответствует двум таким предложениям:mах( X, Y, X) :- X >= Y.max( X, Y, Y) :- X < Y.Эти
ОглавлениеПредисловие ко второму русскому изданиюКак пользоваться книгой Что такое математика? Глава I. Натуральные числа § 1. Операции над целыми числами 2. Представление целых чисел с помощью письменных знаков (нумерация). 3. Арифметические действия в недесятичных системах счисления. § 2. Бесконечность системы натуральных чисел. Математическая индукция 2. Арифметическая прогрессия. 3. Геометрическая прогрессия. 4. Сумма n первых квадратов. 5. Одно важное неравенство. 6. Биномиальная теорема. 7. Дальнейшие замечания по поводу метода математической индукции. Дополнение к главе I Теория чисел 2. Распределение простых чисел. § 2. Сравнения 2. Теорема Ферма. 3. Квадратические вычеты. § 3. Пифагоровы числа и большая теорема Ферма § 4. Алгоритм Евклида 2. Применение к основной теореме арифметики 3. Функция Эйлера. Еще раз о теореме Ферма. 4. Непрерывные дроби. Диофантовы уравнения § 1. Рациональные числа 2. Возникновение надобности в рациональных числах внутри самой математики. Принцип обобщения. 3. Геометрическое представление рациональных чисел. § 2. Несоизмеримые отрезки. Иррациональные числа, пределы 2. Десятичные дроби: конечные и бесконечные. 3. Пределы. Бесконечные геометрические прогрессии. 4. Рациональные числа и периодические десятичные дроби. 5. Общее определение иррациональных чисел посредством стягивающихся отрезков. 6. Иные методы определения иррациональных чисел.Декиндовы сечения. § 3. Замечания из области аналитической геометрии 2. Уравнения прямых и кривых линий. § 4. Математический анализ бесконечного 2. Счетность множества рациональных чисел и несчетность континуума. 3. «Кардинальные числа» Кантора. 4. Косвенный метод доказательства. 5. Парадоксы бесконечного. 6. Основания математики. § 5. Комплексные числа2. Геометрическое представление комплексных чисел. 3. Формула Муавра и корни из единицы. 4. Основная теорема алгебры. § 6. Алгебраические и трансцендентные числа 2. Теорема Лиувилля и конструирование трансцендентных чисел. Дополнение к главе II. Алгебра множеств 2. Применение к математической логике. 3. Одно из применений к теории вероятностей. Глава III. Геометрические построения. Алгебра числовых полей Часть 1. Доказательства невозможности и алгебра 1. Построение полей и извлечение квадратных корней. 2. Правильные многоугольники. 3. Проблема Аполлония. § 2. Числа, допускающие построение, и числовые поля 2. Все числа, допускающие построение, — алгебраические. § 3. Неразрешимость трех классических проблем 2. Одна теорема о кубических уравнениях. 3. Трисекция угла. 4. Правильный семиугольник. 5. Замечания по поводу квадратуры круга. § 4. Геометрические преобразования. Инверсия2. Свойства инверсии. 3. Геометрическое построение обратных точек. 4. Как разделить отрезок пополам и как найти центр данного круга с помощью одного циркуля. § 5. Построения с помощью иных инструментов. Построения Маскерони с помощью одного циркуля 1. Классическая конструкция, служащая для удвоения куба. 2. Построения с помощью одного циркуля. 3. Черчение с помощью различных механических приспособлений. Механические кривые. Циклоиды. 4. Шарнирные механизмы. Инверсоры Поселье и Гарта. § 6. Еще об одной инверсии и ее применениях 1. Инвариантность углов. Семейства окружностей. 2. Применение к проблеме Аполлония. 3. Повторные отражения. Глава IV. Проективная геометрия. Аксиоматика. Неевклидовы геометрии 1. Классификация геометрических свойств. Инвариантность при преобразованиях. 2. Проективные преобразования. § 2. Основные понятия 1. Группа проективных преобразований. 2. Теорема Дезарга. § 3. Двойное отношение § 4. Параллельность и бесконечность 2. Идеальные элементы и проектирование. 3. Двойное отношение с бесконечно удаленными элементами. § 5. Применения 2. Двумерное доказательство теоремы Дезарга. 3. Теорема Паскаля. 4. Теорема Брианшона. 5. Замечание по поводу двойственности. § 6. Аналитическое представление 2. Однородные координаты. Алгебраические основы двойственности. § 7. Задачи на построения с помощью одной линейки § 8. Конические сечения и квадрики 2. Проективные свойства конических сечений. 3. Конические сечения как «линейчатые кривые». 4. Теоремы Паскаля и Брианшона для общего случая произвольных конических сечений. 5. Гиперболоид. § 9. Аксиоматика и неевклидова геометрия 2. Гиперболическая неевклидова геометрия. 3. Геометрия и реальность. 4. Модель Пуанкаре. 5. Эллиптическая, или риманова, геометрия. Приложение. Геометрия в пространствах более чем трех измерений Глава V. Топология§ 1. Формула Эйлера для многогранников § 2. Топологические свойства фигур 2. Свойства связности. § 3. Другие примеры топологических теорем 2. Проблема четырех красок. 3. Понятие размерности. 4. Теорема о неподвижной точке. 5. Узлы. § 4. Топологическая классификация поверхностей 2. Эйлерова характеристика поверхности. 3. Односторонние поверхности. Приложение 2. Теорема Жордана для случая многоугольников. 3. Основная теорема алгебры. Глава VI. Функции и пределы § 1. Независимое переменное и функция 2. Радианная мера углов. 3. График функции. Обратные функции. 4. Сложные функции. 5. Непрерывность. 6. Функции нескольких переменных. 7. Функции и преобразования. § 2. Пределы 2. Монотонные последовательности. 3. Число Эйлера e. 4. Число «пи» 5. Непрерывные дроби. § 3. Пределы при непрерывном приближении 2. Замечания по поводу понятия предела 3. Предел sin x/x 4. Пределы при х -> оо.§ 4. Точное определение непрерывности § 5. Две основные теоремы о непрерывных функциях 2. Доказательство теоремы Больцано. 3. Теорема Вейерштрасса об экстремальных значениях. 4. Теорема о последовательностях. Компактные множества. § 6. Некоторые применения теоремы Больцано 2. Применение к одной механической проблеме. Дополнение к главе VI. Дальнейшие примеры на пределы и непрерывность 4. Разрывные функции как предел непрерывных. 5. Пределы при итерации. § 2. Пример, относящийся к непрерывности Глава VII. Максимумы и минимумы § 1. Задачи из области элементарной геометрии 2. Теорема Герона. Экстремальное свойство световых лучей. 3. Применения к задачам о треугольниках. 4. Свойства касательных к эллипсу и гиперболе. Соответствующие экстремальные свойства. 5. Экстремальные расстояния точки от данной кривой. § 2. Общий принцип, которому подчинены экстремальные задачи § 3. Стационарные точки и дифференциальное исчисление 2. Максимумы и минимумы функций нескольких переменных. Седловые точки.3. Точки минимакса и топология. 4. Расстояние точки от поверхности. § 4. Треугольник Шварца 4. Треугольники, образованные световыми лучами. 5. Замечания, касающиеся задач на отражение и эргодическое движение. § 5. Проблема Штейнера 2. Анализ возникающих альтернатив. 3. Дополнительная проблема. 4. Замечания и упражнения. 5. Обобщение: проблема уличной сети. § 6. Экстремумы и неравенства 1. Средние арифметическое и геометрическое двух положительных величин. 2. Обобщение на случай n переменных. 3. Метод наименьших квадратов. § 7. Существование экстремума. Принцип Дирихле 3. Экстремальные проблемы элементарного содержания. 4. Трудности, возникающие в более сложных случаях. § 8. Изопериметрическая проблема § 9. Экстремальные проблемы с граничными условиями. Связь между проблемой Штейнера и изопериметрической проблемой § 10. Вариационное исчисление 2. x и функций lnx в виде пределов.5. Бесконечный ряд для логарифма. Вычисление логарифмов. § 7. Дифференциальные уравнения 2. Дифференциальное уравнение экспоненциальной функции. Радиоактивный распад. Закон роста. Сложные проценты. 3. Другие примеры. Простейшие колебания. 4. Закон движения Ньютона. Дополнение к главе VIII § 1. Вопросы принципиального порядка 3. Другие приложения понятия интеграла. Работа. Длина кривой. § 2. Порядки возрастания 2. Порядок возрастания ln(n!) § 3. Бесконечные ряды и бесконечные произведения 2. Формула Эйлера cos x + i sin x = exp(ix). 3. Гармонический ряд и дзета-функция. Формула Эйлера, выражающая sin x в виде бесконечного произведения. § 4. Доказательство теоремы о простых числах на основе статистического метода Приложение. Дополнительные замечания, задачи и упражнения Аналитическая геометрия Геометрические построения Проективная и неевклидова геометрия Топология Функции, пределы, непрерывность Максимумы и минимумы Дифференциальное и интегральное исчисления Техника интегрирования Рекомендуемая литература |
разложение Тейлора — Вычислить логарифм вручную с самого начала
Почти все логарифмы почти всех чисел почти во всех основаниях на самом деле иррациональны.
{-k} = \log_b(x’) -k
$$
поэтому все, что вам нужно сделать, это вычислить $\log_b(x’)$. Аналогичный подход работает для чисел больше $b$.
Итак…после некоторого количества умножений/делений на $k$ вы получаете число $x’$ между $1$ и $k$. Если $1 \le x’ < 2$, идем дальше; в противном случае вычислите квадратный корень и получите это $$ \log_b(x') =2 \log_b \sqrt{x'}, $$ поэтому вам нужно только вычислить журнал этого квадратного корня. Несколько раз извлекайте квадратные корни, пока не получите число меньше $2$, назовите его $x''$. Перейдите к части «настоящей работы».
Если $x$ больше, чем $b$, разделите $x$ на $b$, пока не получите число $x’$, находящееся между $1$ и $b$, как указано выше. Если вы разделили $k$ раз, запишите $+k$ и используйте это, чтобы показать, как $\log x’$ связано с $\log x$. Затем используйте квадратные корни, как и раньше, чтобы уменьшить число от $1$ до $2$, и назовите это $x»$.
«Настоящая работа»: теперь используйте ряд Тейлора (конечно, для $\log$!) для вычисления $p = \log x»$; в общем, это займет бесконечно много времени, но вы уже показали своей готовностью извлекать квадратные корни, что это нормально.
Ваш окончательный ответ для $\log x$: $\frac{p}{\log b}$ плюс поправки на предварительных этапах. Конечно, для этого нужно вычислить $\log b$… что можно сделать, используя вторую фазу (чтобы уменьшить $b$ до числа, меньшего, чем $2$) и третью фазу (используя ряд Тейлора).
Спасибо @DavidK за указание на то, что в более ранней версии я предполагал сходимость ряда для $\log_b$ на $1 \le u < b$, тогда как я должен был использовать только $1 \le b < 2$.
Также обратите внимание, что если вам нравятся квадратные корни, вы можете пропустить первую фазу и просто извлекать квадратные корни дольше (по крайней мере, если $x$ начинается больше, чем $b$).
====
Я не претендую на эффективность. Вы выигрываете КРУПНО, разделив/умножив хотя бы еще раз на $\sqrt{b}$, а затем прибавив/вычтя $\frac12$ из результата, потому что сходимость ряда Тейлора НАМНОГО быстрее, когда вы находитесь в первом половина области сходимости.
N.B.: Для произвольного ввода $x$ и основания $b$ даже , выражающее этих чисел, вероятно, займет бесконечно много времени.
Создание логарифма
Помните натуральный логарифм? Оно тесно связано с одной из самых красивых констант математики — числом
| . |
Логарифм вещественного числа — это число, в степень которого нужно возвести, чтобы получить
Сегодня мы используем калькулятор или компьютер, чтобы найти логарифмы, но традиционно люди искали их в таблицах, которые для длинного списка чисел давали вам соответствующее значение .
Портрет Джона Нейпира (1550-1617), датированный 1616 годом.
Таблицы чисел, связанных очень похожим образом, были впервые опубликованы в 1614 году математиком, физиком и астрономом Джоном Нейпиром в статье под названием Построение чудесного канона логарифмов . Удивительно, однако, что Нейпир никогда даже не слышал о числе e , никто не слышал в то время, и он даже не думал о возведении в степень.
Когда он непреднамеренно определил нечто очень похожее на логарифм по основанию e , он сделал это, представив точки, движущиеся по линиям!
Одной из проблем, которая мучила людей в то время, особенно астрономов, была арифметика. Астрономические расчеты требовали умножения и деления очень больших чисел, что довольно сложно сделать без калькулятора. Один из способов упростить задачу — думать с точки зрения полномочий. Как говорят нам правила возведения в степень, чтобы умножить, скажем, две степени числа 2, вам нужно всего лишь сложить их показатели степени. Чтобы разделить их, вы просто вычитаете их показатели степени:
Таким образом, таблица, объясняющая, как выразить большие числа в степени двойки или любого другого числа, поможет вам значительно упростить вычисления. Учитывая число, вы будете искать число так, чтобы
Другими словами, вам нужны таблицы логарифмов по основанию 2 или какого-либо другого числа.
Однако во времена Непера люди не привыкли мыслить в терминах возведения в степень. У них не было концепции на основе , и у них не было нашего удобного способа записи, используя небольшое число вверху.
Однако со времен Архимеда они знали об интересной связи между последовательностью, которую вы получаете, начиная с 2, и последовательным удвоением (которое мы сегодня признаем как последовательность степеней 2):
2, 4, 8, 16, 32, 64, 128, … .
и последовательность натуральных чисел
1, 2, 3, 4, 5, 6, 7, … .
Первая последовательность называется геометрическая прогрессия , потому что последовательные числа имеют одинаковое соотношение; 2. Последняя называется арифметической прогрессией , потому что последовательные числа имеют одинаковую разницу; 1.
Люди заметили, что умножение (или деление) двух чисел в геометрической прогрессии соответствует сложению (или вычитанию) соответствующих чисел в арифметической прогрессии.
(Для нас это опять же просто законы возведения в степень, поскольку числа в геометрической прогрессии являются степенями двойки, а числа в арифметической прогрессии — соответствующими показателями степени.) Это, казалось, предлагало способ упростить вычисления, поскольку вы Заменить более сложные операции в геометрической прогрессии более простыми в арифметической прогрессии.
Нейпир хотел составить таблицу, в которой числа в полезной геометрической прогрессии связывались бы с числами в соответствующей арифметической прогрессии, чтобы, как он писал, «избегать всех умножений, делений и […] извлечения корней», и заменил «наиболее простыми сложениями, вычитаниями и делениями на 2».
То, как он нашел две последовательности, очень интригует. Представьте себе точку, назовем ее , движущуюся вдоль конечного отрезка прямой от точки к точке. Однако она не движется с постоянной скоростью, а постоянно замедляется: ее скорость в любой данный момент пропорциональна расстоянию, которое еще осталось пройти.
к точке . Чем ближе к точке, тем медленнее она становится, поэтому на самом деле она никогда не достигнет . Если бы вы измеряли расстояние, которое еще осталось пройти через равные промежутки времени, скажем, каждую секунду, то полученные вами числа образовывали бы убывающую геометрическую прогрессию: отношения между последовательными числами были бы равны, но, в отличие от нашего примера выше, они d быть меньше 1,
Как связать это с арифметической прогрессией? Интуитивно представьте, что вы отмечаете местоположения в каждом временном интервале на линии: это местоположение через одну секунду, местоположение через 2 секунды и так далее. Затем, поскольку он постоянно замедляется, интервалы становятся меньше по мере увеличения. А так как никогда не достигает пункта назначения, то таких интервалов бесконечно много. Теперь представьте, что эти интервалы растягиваются, чтобы все они имели одинаковую длину, но также представьте, что для прохождения каждого из них по-прежнему требуется секунда.
Это сдвинет точку до бесконечности (есть бесконечно много интервалов одинаковой длины), средняя скорость в интервале будет одинаковой для всех интервалов (все интервалы имеют одинаковую длину, которая проходит за одну секунду), а последовательность расстояний, пройденных за одну секунду, две секунды, три секунды и так далее, образует арифметическую прогрессию.
Используя, по-видимому, такого рода интуитивные рассуждения, Нейпир представил себе вторую точку, которая начинается в точке в то же время и с той же скоростью, но движется с одинаковой скоростью в направлении и дальше и в бесконечность. В данный момент времени он определил уже пройденное расстояние как логарифм расстояния, которое еще предстоит пройти. Это связывает каждое число в геометрической прогрессии, определяемой путешествием , с числом в арифметической прогрессии, определяемой путешествием .
Нейпир взял длину отрезка от до очень большой: единицы. Он сделал это, чтобы обеспечить точность, а также, по-видимому, потому, что имел в виду астрономические расчеты, поэтому вам нужно было найти логарифм для больших чисел.
Он также предположил, что начальная скорость равна .
Сегодня мы воспользуемся исчислением, чтобы вычислить логарифм Нейпира. Если вы сделаете это (см. здесь, чтобы узнать, как), вы обнаружите, что
где расстояние, которое еще предстоит пройти, и расстояние, уже пройденное
Это означает, что это логарифм по основанию — по сути, это то, что определяет конструкция Нэпьера. Но поскольку исчисление во времена Непера еще не было изобретено, его таблица давала аппроксимацию этого логарифма, связывая и соотношением
Чтобы увидеть, что это действительно хорошее приближение, перепишите выражение как
Если вы знакомы со многими прекрасными свойствами числа, то вы знаете, что для любого действительного числа пределом является бесконечность
Взятие дает
А так как это очень большое число, то число
, которое появляется как основание в логарифмах Непера, очень близко к пределу.

Комплексные числа
Геометрические преобразования. Инверсия
Топология
Пределы при х -> оо.
Максимумы и минимумы функций нескольких переменных. Седловые точки.
x и функций lnx в виде пределов.