Приближённое вычисление математических функций для калькулей
Moderator: Shaos
-
- Fanat
- Posts: 80
- Joined: 01 Jan 2023 11:37
Re: Приближённое вычисление математических функций для кальк
У меня к сожалению нет арифмометра, хотя я даже искал в антикварке и по объявлениям как-то давно. Как им пользоваться знаю, в кабинете информатики в школе он был, и я прочитал в своё время как на нём считать и пробовал воспроизвести несколько операций, когда учитель разрешила мне после уроков с ним позаниматься. Ничего сложного в делении нету. Примерно так же как умножение, только на два оборота ручки на разряд больше.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
А никто и не сказал, что там что-то супер-сложное...Andnor wrote:Ничего сложного в делении нету. Примерно так же как умножение, только на два оборота ручки на разряд больше.

Просто алгоритм с нечетными требует лишь две операции - выставить очередное число и крутануть ручку.
С этим алгоритмом справится, не побоюсь этого слова, - любой дурак.
В случае алгоритма с делением промежуточные результаты придётся удерживать на бумажке, ибо регистров
памяти у арифмометра нет, и хотя бы 4 раза (по вашим словам) выполнить операцию деления вот по таким
правилам, которые я показываю в третий раз:
Алгоритм с нечетными имеет очень четкий критерий для любого дурака, когда его следует закончить.
Если число является точным корнем, то и результат будет точным.
Вы говорите, что ряд быстро сходится, и ответ возможен на 4-й итерации. А будет ли он точным корнем?
Я в этом весьма сомневаюсь.
Приближенные методы с рядами хороши на ЭВМ, поскольку предполагают ответ с заданной точностью.
Как обеспечить заданную точность на арифмометре однозначно сказать трудно, особенно "для любого дурака".
Он же не знает ответа заранее, и не знает насколько приемлемо он к нему приблизился.
А, собственно, арифмометры и прочие калькуляторы для того и придумали, чтобы пользователь получал
удовлетворяющий его результат, не шибко вникая в процесс вычислений.
iLavr
-
- Fanat
- Posts: 80
- Joined: 01 Jan 2023 11:37
Re: Приближённое вычисление математических функций для кальк
Кстати, часть этого метода — это вычисление квадрата очередной итерации корня. Если число — точный квадрат, то будет сразу видно, что результат совпадает и можно закончить раньше. например уже на третьей итерации.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
Очень хорошее приложение к методу...Andnor wrote:Кстати, часть этого метода — это вычисление квадрата очередной итерации корня.

И как это облегчает работу с арифмометром в дополнение ко всему тому, что я уже выше изложил?

iLavr
-
- Fanat
- Posts: 80
- Joined: 01 Jan 2023 11:37
Re: Приближённое вычисление математических функций для кальк
Да я же выше написал как, но ладно приведу ещё один пример.
Полный квадрат двухзначного числа, но неизвестно какого, t=4489 (сгенерировал командой echo $[(RANDOM/200)**2] в консоли).
Формула следующей итерации: r:=(r^2+t)/(2*r)
Начальное значение r=60 получаем, разбив число на группы по две цифры: 44'89, по таблице умножения 6*6=36, 7*7=49 и ноль от одной группы.
60²=3600, то есть не 4489. Складываем: 8089 и делим на 60*2=120. Получается 67 целых и 49 в остатке.
67²=4489. Всё, точный ответ получен за одну итерацию алгоритма.
А если складывать нечётные числа, то нужно было бы сложить 67 чисел:
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 3, 7, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133
С другой стороны, можно конечно это оптимизировать, и использовать чуть более сложный алгоритм. Взять начальное значение 60 найденное тем же способом, что и выше и, соответственно, начинать складывать с 60*2+1=121, то есть в итоге нужно будет считать 3600+121+123+125+127+129+131+133. В таком случе можно обойтись от 0 до 9 итераций на каждую следующую цифру. С таким уточнением в принципе алгоритм имеет право на существование, хотя он всё равно сходится медленнее метода Герона.
Ещё можно попробовать не складывать нечётные числа, а вычитать их из целевого числа, тогда уже получится что-то похожее на алгоритм деления, но надо иметь арифмометр, чтобы попробовать и отработать.
Но почему я тут один привожу примеры и думаю? У кого арифмометр есть — может попробуете?
Полный квадрат двухзначного числа, но неизвестно какого, t=4489 (сгенерировал командой echo $[(RANDOM/200)**2] в консоли).
Формула следующей итерации: r:=(r^2+t)/(2*r)
Начальное значение r=60 получаем, разбив число на группы по две цифры: 44'89, по таблице умножения 6*6=36, 7*7=49 и ноль от одной группы.
60²=3600, то есть не 4489. Складываем: 8089 и делим на 60*2=120. Получается 67 целых и 49 в остатке.
67²=4489. Всё, точный ответ получен за одну итерацию алгоритма.
А если складывать нечётные числа, то нужно было бы сложить 67 чисел:
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 3, 7, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133
С другой стороны, можно конечно это оптимизировать, и использовать чуть более сложный алгоритм. Взять начальное значение 60 найденное тем же способом, что и выше и, соответственно, начинать складывать с 60*2+1=121, то есть в итоге нужно будет считать 3600+121+123+125+127+129+131+133. В таком случе можно обойтись от 0 до 9 итераций на каждую следующую цифру. С таким уточнением в принципе алгоритм имеет право на существование, хотя он всё равно сходится медленнее метода Герона.
Ещё можно попробовать не складывать нечётные числа, а вычитать их из целевого числа, тогда уже получится что-то похожее на алгоритм деления, но надо иметь арифмометр, чтобы попробовать и отработать.
Но почему я тут один привожу примеры и думаю? У кого арифмометр есть — может попробуете?
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
Потому что все остальные люди видят, что формулы с делением, возведением в квадрат и умножением,Andnor wrote:Полный квадрат двухзначного числа, но неизвестно какого, t=4489 (сгенерировал командой echo $[(RANDOM/200)**2] в консоли).
Формула следующей итерации: r:=(r^2+t)/(2*r)
Но почему я тут один привожу примеры и думаю? У кого арифмометр есть — может попробуете?
для выполнения на механическом арифмометре сложнЫ, и поэтому никто на эту глупость тратить время
не считает нужным.
Лишь только люди, у которых мозг безнадёжно отформатирован Паскалем, упрямо не желают понять,
что этот алгоритм для механического арифмометра сложен, о чём тут уже неоднократно написано.
iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
Я вижу, что вы безнадёжны, и неспособны даже прочитать, что вам здесь пишут:Andnor wrote:Ещё можно попробовать не складывать нечётные числа, а вычитать их из целевого числа, тогда уже получится что-то похожее на алгоритм деления, но надо иметь арифмометр, чтобы попробовать и отработать.

По длительности метод полностью аналогичен сложению.Lavr wrote:Есть и обратный его вариант:Метод вычетов нечётного числа (арифметический способ). Алгоритм извлечения квадратного корня: Вычитать нечётные числа по порядку, пока остаток не станет меньше следующего вычитаемого числа или равен нулю. Подсчитать количество выполненных действий – это число есть целая часть числа извлекаемого квадратного корня.
Пример 1: вычислить √9
1. 9 − 1 = 8;
2. 8 − 3 = 5;
3. 5 − 5 = 0.
Итого: Выполнено 3 действия
Формула нечётных чисел z=2n+1, где n - целое число.
iLavr
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Приближённое вычисление математических функций для кальк
Смягчил акценты...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
Да в принципе уже давно всё понятно... просто вижу я, что человек практически не замечает,Shaos wrote:Смягчил акценты...
что тут пишут, и фактически беседует сам с собой...

Я думаю, что практически здесь всё можно разрешить следующим опытом:
Надо взять арифмометр и случайного человека без высшего образования.
Сказать ему: попробуй вычислить корень из числа, к примеру 79 с помощью арифмометра.
Есть 2 пути:
1. Складывай числа 1 + 3 + 5 + 7 ... и т.д., пока не достигнешь этого числа.
Выставляешь эти числа на колёсах и крутишь ручку. На счётчике будет значение корня.
2. Этот путь, как нас убеждают, более простой и быстрый:
Деление осуществляют вот так:Andnor wrote:Придумай первое приближение к корню.
Формула следующей итерации: r:=(r^2+t)/(2*r)
Начальное значение r=60 получаем, разбив число на группы по две цифры: 44'89, по таблице умножения 6*6=36, 7*7=49 и ноль от одной группы.
Умножение... ну сам прочитай в инструкции к арифмометру...

Я думаю, что результат опыта будет показателен и однозначен.

iLavr
-
- Fanat
- Posts: 80
- Joined: 01 Jan 2023 11:37
Re: Приближённое вычисление математических функций для кальк
Ну если это смягченное, то что-то Lavr совсем разошелся.Shaos wrote:Смягчил акценты...
Ну серьёзно? Для этого не нужен аримфометр, если считать до целых — будет 8 с чем-то, ближе к 9. Учитывая производную (x²)'=2x, результат будет очень близок к 8.9. Чтобы посчитать до десятых нужно сложить в простейшем варианте 89 чисел, это гораздо дольше чем посчитать в уме!Надо взять арифмометр и случайного человека без высшего образования.
Сказать ему: попробуй вычислить корень из числа, к примеру 79 с помощью арифмометра.
Производные проходят в школе, так что не надо напоминать про "без высшего образования"
Метод со сложением нечётных чисел имеет смысл только с оптимизацией.
В неоптимизированном виде это тоже фигня. Ну почему Lavr никак этого не может понять? Пусть попробует на реальном арифмометре и требуемая точность будет не меньше двух-трёх цифр, а лучше больше, иначе смысла сравнивать вообще нет. Одну значащую цифру проще найти без всякого арифомометра!Метод вычетов нечётного числа (арифметический способ). Алгоритм извлечения квадратного корня: Вычитать нечётные числа по порядку, пока остаток не станет меньше следующего вычитаемого числа или равен нулю.
Корень из девяти так найти можно конечно, но что насчёт корня из хотя бы 24964 ?
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
Кто здесь упёрто не может понять простых и очевидных вещей, так это вы.
Но вы продолжайте... продолжайте этот пустопорожний разговор с сами собой.
Вижу, что ваш, обезображенный Паскалем мозг, захотел уже школьных производных...
Но и без них сложить на арифмометре 1 + 2 + 3 + 5 + 7 ... гораздо проще, что очевидно!
Это очевидно даже ребёнку из детского сада!
Очевидно же, что арифмометр изобрели явно не для вас!

Но вы продолжайте... продолжайте этот пустопорожний разговор с сами собой.
Вижу, что ваш, обезображенный Паскалем мозг, захотел уже школьных производных...

Но и без них сложить на арифмометре 1 + 2 + 3 + 5 + 7 ... гораздо проще, что очевидно!

Это очевидно даже ребёнку из детского сада!

Да вам вообще он не нужен! Возьмите бумагу, карандашик, попишите формулы, умножьте в уме.Andnor wrote:Одну значащую цифру проще найти без всякого арифомометра!
Очевидно же, что арифмометр изобрели явно не для вас!

iLavr
-
- Fanat
- Posts: 80
- Joined: 01 Jan 2023 11:37
Re: Приближённое вычисление математических функций для кальк
Арифомометр позволяет в несколько раз ускорить вычисления, но ничего принципиально нового не даёт. Сложение, вычитание, умножение и деление на арифмометре почти полностью аналогично таким же действиям в столбик. Просто немного быстрее и бумагу не тратит.Да вам вообще он не нужен! Возьмите бумагу, карандашик, попишите формулы, умножьте в уме.
Очевидно же, что арифмометр изобрели явно не для вас!
А мне вот почему-то очевидно, что складывать сотни маленьких чисел на арифмометре — это долгая и монотонная работа. Хотя может мозгов и требует меньше чем что-то другое.Но и без них сложить на арифмометре 1 + 2 + 3 + 5 + 7 ... гораздо проще, что очевидно!
Это очевидно даже ребёнку из детского сада!
Ну да, мне тоже малость надоело. Вот почему бы вам не прекратить переливать из пустого в порожнее, а попробовать взять арифомометр и сравнить оба метода, засекая время? Нет, надо зачем-то повторять одни и те же аргументы, на которые мне только и остаётся что отвечать теми же контраргументами.Кто здесь упёрто не может понять простых и очевидных вещей, так это вы.
Но вы продолжайте... продолжайте этот пустопорожний разговор с сами собой.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Приближённое вычисление математических функций для кальк
Наконец-то до вас дошло основное преимущество арифмомера и прочих калькуляторов - бумаги, мозгов и формул не требует!Andnor wrote:Сложение, вычитание, умножение и деление на арифмометре почти полностью аналогично таким же действиям в столбик. Просто немного быстрее и бумагу не тратит.А мне вот почему-то очевидно, что складывать сотни маленьких чисел на арифмометре — это долгая и монотонная работа. Хотя может мозгов и требует меньше чем что-то другое.Но и без них сложить на арифмометре 1 + 2 + 3 + 5 + 7 ... гораздо проще, что очевидно!
Это очевидно даже ребёнку из детского сада!

И хотя моей целью не было популяризаторство, я уверен теперь, что в экстренных случаях и критических
ситуациях все теперь запомнили - самый простой способ извлечения квадратного корня, это
складывать 1 + 2 + 3 + 5 + 7 ... пока не достигнем подкоренного числа!

iLavr