Как считать логарифмы в уме (пошаговая инструкция) ?
|
|
John_Smith
|
#1 | Суббота, 04.04.2015, 21:40
|
Автор темы
Фильм
Юзер-бар +
Читал про людей, которые знают как вычислять логарифмы в уме и сами эту формулу вывели...Подумал немного...В уме написал...Получилось вроде бы...Вот накрапаю, как только появится нормальный интернет. Придумал сам, никуда не подглядывая.
Переходим непосредственно к вычислению логарифмов
Часть первая. Вычисление квадратных, кубических и т.д корней.
За основу была взята формула Герона (оказывается) нахождения квадратных корней.
Например, √50 (50 -число О) Решение: 1 цикл. Шаг1.-Можно взять любое число, больше 1, но лучше взять наибольший квадрат, который меньше данного числа Это 49 или 7² (число 7 - число А) Шаг2.-Поделить наше число на натуральное число, возведенное в квадрат. (это наша 7-ка) 50/7=7,143 (число В) PS: Обратите внимание, мы берем число на степень ниже: если в квадрат возведено число, то делим на основание в степени единица. (7¹) Шаг3--Из полученного числа вычитаем натуральное число, возведенное в квадрат 7,143-7=0,143 (число С) Шаг4-Делим полученное число на степень корня (в нашем случае квадратный корень, то делим на 2) 0,143/2=0,0715 (число S) Шаг5-Добавим это число к базовой семерке 7+0,0715=7,0715 (число D) Это наш примерный ответ Проверка: 7,0715²=50,006 Чтобы получить более точный ответ, надо проделать еще один цикл Цитата То есть формула проста (О/А-А)/2+А
2 цикл Шаг6-Делим число О (50) на D (новое число А) 50/7,0715=7,07 (новое число В) Шаг7 Вычтем из числа В число А 7,07-7,0715=-0,0015 (новое число С) Шаг8-Делим число С на степень корня 0,0015/2=-0,00075 (новое число S) Шаг9-Суммируем число А и число S 7,0715-0,00075=7,07075 Это наш ответ Проверка 7,07075²=49,9955 Цитата Формула не изменилась (О/А-А)/2+А
см. дальше
Почему вы так волнуетесь? У вас прекрасная болезнь, болезнь Пушкина.
|
Статус: нет меня
|
|
|
|
almanack
|
#3 | Воскресенье, 05.04.2015, 08:29
|
Повелитель стихий
Постоянные пациенты
Юзер-бар +
Wtroff, если сам то на это стоит посмотреть, ждем с
Я всегда хотел быть котиком. И сейчас это мне удалось.
|
Статус: нет меня
|
|
|
Вериока
|
#4 | Воскресенье, 05.04.2015, 08:34
|
эвкалиптовая соня
Постоянные пациенты
Юзер-бар +
Wtroff, а я не понимаю, зачем это нужно?
Путь в тысячу ли начинается с первого шага. 千里之行,始于足下 Наш арт-журнал "Ковчег"
|
Статус: нет меня
|
|
|
Шурик
|
#5 | Воскресенье, 05.04.2015, 08:44
|
Гладковыбритый
Постоянные пациенты
Юзер-бар +
Вериока, ну вот представь, оказалась ты в лесу, ни ноута ни планшета с собою нет, телефон сел, а логарифм посчитать надо.
|
Статус: нет меня
|
|
|
almanack
|
#6 | Воскресенье, 05.04.2015, 08:51
|
Повелитель стихий
Постоянные пациенты
Юзер-бар +
Шурик, да уж что бы определить сколько километров надо пройти до найденного первого гриба или ягоды
Я всегда хотел быть котиком. И сейчас это мне удалось.
|
Статус: нет меня
|
|
|
Шурик
|
#7 | Воскресенье, 05.04.2015, 08:54
|
Гладковыбритый
Постоянные пациенты
Юзер-бар +
almanack, в апреле?
|
Статус: нет меня
|
|
|
almanack
|
#8 | Воскресенье, 05.04.2015, 08:59
|
Повелитель стихий
Постоянные пациенты
Юзер-бар +
Шурик, инструкция на лето июнь июль август
Я всегда хотел быть котиком. И сейчас это мне удалось.
|
Статус: нет меня
|
|
|
|
John_Smith
|
#10 | Воскресенье, 05.04.2015, 12:42
|
Автор темы
Фильм
Юзер-бар +
Например, ³√30 = 3.10723
1 цикл 1шаг - Найдем самый меньший целый куб. - это 27 = 33. 2 шаг- Вычислим из наименьшего куба х-1 степень = 9=32 3 шаг-Поделим наше исходное число на число, полученное в шаге 2. 4 шаг Вычтем из полученного числа основание, полученное в шаге 1 5 шаг-Поделим полученное число на степень корня. 6 шаг-Прибавим к основанию степени числа, полученного в шаге 1 -это наш ответ
Формула проста
Цитата С=(X/Ay-1-A1) / (y) +A1
X - число взятое под корень A - основание корня целое y - степень корня
2 цикл 1 шаг- Полученный ответ возведем в y-1 степень 3.11²=9.6721 2 шаг- Число под корнем делим на полученное число 30/9.6721=3.1017 3 шаг - Вычтем из полученное числа число С (6 шаг предыдущего цикла) 3.1017-3.1111= - 0,0094 4 шаг- Полученное число делим на степень корня - 0.0094/3= - 0.003133 5 шаг - 3.1111+ (- 0,003133)= 3.1079 -это наш ответ
Формула всех последующих циклов
Цитата (X/Cy-1-C1) / (y) +C1
X - число под корнем C - исходный ответ предыдущего цикла y - степень корня
Почему вы так волнуетесь? У вас прекрасная болезнь, болезнь Пушкина.
|
Статус: нет меня
|
|
|
|
John_Smith
|
#12 | Воскресенье, 05.04.2015, 16:53
|
Автор темы
Фильм
Юзер-бар +
zarim, это только начало. Дальше интересней. Я покажу как высчитывать корни десятой степени из натурального числа, а на основе этой форумы перейдем к формуле расчета логарифмов.
Почему вы так волнуетесь? У вас прекрасная болезнь, болезнь Пушкина.
|
Статус: нет меня
|
|
|
loshadka
|
#13 | Понедельник, 06.04.2015, 19:49
|
Королева лошадей
Постоянные пациенты
Юзер-бар +
мы в школе корни пошагово проходили
|
Статус: нет меня
|
|
|
John_Smith
|
#14 | Понедельник, 04.05.2015, 12:29
|
Автор темы
Фильм
Юзер-бар +
Глава 2 Вычисление логарифмов
log210=3.321928
Используем формулу в качестве исходной (X/Cy-1-C1) / (y) +C1
Сейчас будет муторная задачка, в результате которой мы проделаем несколько десятков циклов
1 Блок Подумаем и найдем, что 3< log 2 10 <4
Используем (X/Cy-1-C1) где X - наше число, возведенное в степень С - основание логарифма y - примерная степень (число f)
Ловим суть 24 = 16 23=8
Подставляем числа в формулу
Для 24 получается 10/23 - 2 = - 0,75. Тогда 4-((4-3)/2) - наша предварительная степень 3,5 Для 23 получается 10/22 - 2 = -0,25. Тогда 3- ((3-4)/2) - наша предварительная степень 3,5
Цитата Если (X/Cy-1-C1)<0, то вычитание в нижней формуле, если С>0, то суммирование, если С=0, то наш степень целочисленна
Формулы
Цитата X±((X-Y)/2)=Z
А потом W=K±Z
где
X - старшая предполагаемая степень Y - младшая предполагаемая степень Z - наша предполагаемая степень преждевременная W - наша предполагаемая степень приближенная к верной
Проверка 23,5= 11,34 Не подходит, решаем дальше
Цикл 2 10/22.5 - 2 = -1.77<0 то 3,5 - (0,5/2) = 3,25
Проверка 23,25= 9.514 Не походит, решаем дальше
Цикл 3
10/22.25 - 2 = 2.10>0 то 3,25 + (0,25/2) = 3,375
Проверка 23,375= 10.375 Не походит, решаем дальше
Цикл 4
10/22.375 - 2 = -1.92<0 то 3,375 - (0,125/2) = 3,3125
Проверка 23,3125= 9.93 Не походит, решаем дальше
Цикл 5
10/22.3125 - 2 = 2.012>0 то 3,3125 + (0,0625/2) = 3,34375
Проверка 23,34375= 10.15 Не походит, решаем дальше
Цикл 6
10/22.34375 - 2 = -0.03<0 то 3,34375 - (0,031250/2) = 3,328125
Проверка 23,328125= 10.043 Не походит, решаем дальше
Как мы видим, через 6 циклов первые две цифры после запятой совпадают
Почему вы так волнуетесь? У вас прекрасная болезнь, болезнь Пушкина.
|
Статус: нет меня
|
|
|
John_Smith
|
#15 | Пятница, 08.05.2015, 14:30
|
Автор темы
Фильм
Юзер-бар +
Глава 3 Программная реализация алгоритма* *Исправлено: добавленно нахождение отрицательных логарифмов
Цитата program logarifm;
var a, b, d, k, s, r: real; c, x, f, g, n: integer;
begin write('Введите логарифм b = '); readln(b); write('Введите основание логарифма a = '); readln(a); c := 1; while (c >= 1) and (c <> x) do // Тут мы определим верхнию и нижнию границу логарифма begin d := exp(ln(a) * c); //Определяем границы с помощью подбора степеней. ac if d > b then // Если логарифм превысит наш, то цикл обрывается begin f := c; // Это сохраняется верхняя граница c := x; // Число с=х, то есть происходит выход из цикла end else begin g := c; // Это нижняя граница цикла c := c + 1; // Цикл продолжается. Следующая ступень цикла end; end; while (c<0) and (c<>x) do begin d:=exp(ln(a)*c); if d>b then begin f:=c; c:=x; end else begin g:=c; c:=c-1; end; end; writeln('Наша старшая степень = ', f, '; младшая = ', g); k := (b / (exp(ln(a) * (f - 1)))) - a; // Проверим по формуле (X/Cy-1-C1) схожесть числа с нулем writeln('Первая проверка равна ', k); r := 0.5; // Первое деление 1 на 2-ку, путем (f-g)/2 if k < 0 then s := f - r // Если итог меньше нуля или равен ему, то r вычитаем от степени старшей else s := f + r; // Если итог меньше нуля или равен ему, то r суммируем к степени старшей writeln(s); n := 0; while (n <> 100) do // Цикл оборвется на 100-м шаге begin k := (b / (exp(ln(a) * (s - 1)))) - a; // Проверка новой полученной степени по формуле (X/Cy-1-C1) r := (r / 2); // "Дробим опорное число" if k < 0 then s := s - r; if k > 0 then s := s + r; if k = 10 then s := s + 0; n := n + 1; end; writeln('Наш ответ = ', s:5:3); end.
Конечно, проверить алгоритмы можно следующими действиями
c:= ln(b)/ln(a)
Почему вы так волнуетесь? У вас прекрасная болезнь, болезнь Пушкина.
|
Статус: нет меня
|
|
|