nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 00:00



Reply to topic  [ 58 posts ]  Go to page Previous  1, 2, 3, 4
Приближённое вычисление математических функций для калькулей 
Author Message
Fanat

Joined: 01 Jan 2023 11:37
Posts: 80
Reply with quote
У меня к сожалению нет арифмометра, хотя я даже искал в антикварке и по объявлениям как-то давно. Как им пользоваться знаю, в кабинете информатики в школе он был, и я прочитал в своё время как на нём считать и пробовал воспроизвести несколько операций, когда учитель разрешила мне после уроков с ним позаниматься. Ничего сложного в делении нету. Примерно так же как умножение, только на два оборота ручки на разряд больше.


23 Feb 2023 18:53
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Andnor wrote:
Ничего сложного в делении нету. Примерно так же как умножение, только на два оборота ручки на разряд больше.
А никто и не сказал, что там что-то супер-сложное... :roll:

Просто алгоритм с нечетными требует лишь две операции - выставить очередное число и крутануть ручку.
С этим алгоритмом справится, не побоюсь этого слова, - любой дурак.

В случае алгоритма с делением промежуточные результаты придётся удерживать на бумажке, ибо регистров
памяти у арифмометра нет, и хотя бы 4 раза (по вашим словам) выполнить операцию деления вот по таким
правилам, которые я показываю в третий раз:

Image

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

Вы говорите, что ряд быстро сходится, и ответ возможен на 4-й итерации. А будет ли он точным корнем?
Я в этом весьма сомневаюсь.

Приближенные методы с рядами хороши на ЭВМ, поскольку предполагают ответ с заданной точностью.
Как обеспечить заданную точность на арифмометре однозначно сказать трудно, особенно "для любого дурака".
Он же не знает ответа заранее, и не знает насколько приемлемо он к нему приблизился.
А, собственно, арифмометры и прочие калькуляторы для того и придумали, чтобы пользователь получал
удовлетворяющий его результат, не шибко вникая в процесс вычислений.

_________________
iLavr


24 Feb 2023 06:55
Profile
Fanat

Joined: 01 Jan 2023 11:37
Posts: 80
Reply with quote
Кстати, часть этого метода — это вычисление квадрата очередной итерации корня. Если число — точный квадрат, то будет сразу видно, что результат совпадает и можно закончить раньше. например уже на третьей итерации.


25 Feb 2023 04:03
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Andnor wrote:
Кстати, часть этого метода — это вычисление квадрата очередной итерации корня.

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

_________________
iLavr


25 Feb 2023 12:48
Profile
Fanat

Joined: 01 Jan 2023 11:37
Posts: 80
Reply with quote
Да я же выше написал как, но ладно приведу ещё один пример.
Полный квадрат двухзначного числа, но неизвестно какого, 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 итераций на каждую следующую цифру. С таким уточнением в принципе алгоритм имеет право на существование, хотя он всё равно сходится медленнее метода Герона.

Ещё можно попробовать не складывать нечётные числа, а вычитать их из целевого числа, тогда уже получится что-то похожее на алгоритм деления, но надо иметь арифмометр, чтобы попробовать и отработать.

Но почему я тут один привожу примеры и думаю? У кого арифмометр есть — может попробуете?


26 Feb 2023 19:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Andnor wrote:
Полный квадрат двухзначного числа, но неизвестно какого, t=4489 (сгенерировал командой echo $[(RANDOM/200)**2] в консоли).
Формула следующей итерации: r:=(r^2+t)/(2*r)
Но почему я тут один привожу примеры и думаю? У кого арифмометр есть — может попробуете?

Потому что все остальные люди видят, что формулы с делением, возведением в квадрат и умножением,
для выполнения на механическом арифмометре сложнЫ, и поэтому никто на эту глупость тратить время
не считает нужным.
Лишь только люди, у которых мозг безнадёжно отформатирован Паскалем, упрямо не желают понять,
что этот алгоритм для механического арифмометра сложен, о чём тут уже неоднократно написано.

_________________
iLavr


27 Feb 2023 06:49
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Andnor wrote:
Ещё можно попробовать не складывать нечётные числа, а вычитать их из целевого числа, тогда уже получится что-то похожее на алгоритм деления, но надо иметь арифмометр, чтобы попробовать и отработать.

Я вижу, что вы безнадёжны, и неспособны даже прочитать, что вам здесь пишут: :(
Lavr wrote:
Есть и обратный его вариант:
Quote:
Метод вычетов нечётного числа (арифметический способ). Алгоритм извлечения квадратного корня: Вычитать нечётные числа по порядку, пока остаток не станет меньше следующего вычитаемого числа или равен нулю. Подсчитать количество выполненных действий – это число есть целая часть числа извлекаемого квадратного корня.
Пример 1: вычислить √9
1. 9 − 1 = 8;
2. 8 − 3 = 5;
3. 5 − 5 = 0.
Итого: Выполнено 3 действия

Формула нечётных чисел z=2n+1, где n - целое число.

По длительности метод полностью аналогичен сложению.

_________________
iLavr


27 Feb 2023 06:56
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22517
Location: Silicon Valley
Reply with quote
Смягчил акценты...

_________________
:dj: https://mastodon.social/@Shaos


27 Feb 2023 09:32
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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 и ноль от одной группы.

Деление осуществляют вот так:
Image

Умножение... ну сам прочитай в инструкции к арифмометру... :-?

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

_________________
iLavr


27 Feb 2023 10:09
Profile
Fanat

Joined: 01 Jan 2023 11:37
Posts: 80
Reply with quote
Shaos wrote:
Смягчил акценты...

Ну если это смягченное, то что-то Lavr совсем разошелся.

Quote:
Надо взять арифмометр и случайного человека без высшего образования.
Сказать ему: попробуй вычислить корень из числа, к примеру 79 с помощью арифмометра.

Ну серьёзно? Для этого не нужен аримфометр, если считать до целых — будет 8 с чем-то, ближе к 9. Учитывая производную (x²)'=2x, результат будет очень близок к 8.9. Чтобы посчитать до десятых нужно сложить в простейшем варианте 89 чисел, это гораздо дольше чем посчитать в уме!

Производные проходят в школе, так что не надо напоминать про "без высшего образования"

Метод со сложением нечётных чисел имеет смысл только с оптимизацией.

Quote:
Метод вычетов нечётного числа (арифметический способ). Алгоритм извлечения квадратного корня: Вычитать нечётные числа по порядку, пока остаток не станет меньше следующего вычитаемого числа или равен нулю.

В неоптимизированном виде это тоже фигня. Ну почему Lavr никак этого не может понять? Пусть попробует на реальном арифмометре и требуемая точность будет не меньше двух-трёх цифр, а лучше больше, иначе смысла сравнивать вообще нет. Одну значащую цифру проще найти без всякого арифомометра!

Корень из девяти так найти можно конечно, но что насчёт корня из хотя бы 24964 ?


28 Feb 2023 02:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Кто здесь упёрто не может понять простых и очевидных вещей, так это вы. :(
Но вы продолжайте... продолжайте этот пустопорожний разговор с сами собой.

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

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

Andnor wrote:
Одну значащую цифру проще найти без всякого арифомометра!

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

_________________
iLavr


28 Feb 2023 12:25
Profile
Fanat

Joined: 01 Jan 2023 11:37
Posts: 80
Reply with quote
Quote:
Да вам вообще он не нужен! Возьмите бумагу, карандашик, попишите формулы, умножьте в уме.
Очевидно же, что арифмометр изобрели явно не для вас!


Арифомометр позволяет в несколько раз ускорить вычисления, но ничего принципиально нового не даёт. Сложение, вычитание, умножение и деление на арифмометре почти полностью аналогично таким же действиям в столбик. Просто немного быстрее и бумагу не тратит.

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


А мне вот почему-то очевидно, что складывать сотни маленьких чисел на арифмометре — это долгая и монотонная работа. Хотя может мозгов и требует меньше чем что-то другое.

Quote:
Кто здесь упёрто не может понять простых и очевидных вещей, так это вы. :(
Но вы продолжайте... продолжайте этот пустопорожний разговор с сами собой.

Ну да, мне тоже малость надоело. Вот почему бы вам не прекратить переливать из пустого в порожнее, а попробовать взять арифомометр и сравнить оба метода, засекая время? Нет, надо зачем-то повторять одни и те же аргументы, на которые мне только и остаётся что отвечать теми же контраргументами.


01 Mar 2023 06:19
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Andnor wrote:
Сложение, вычитание, умножение и деление на арифмометре почти полностью аналогично таким же действиям в столбик. Просто немного быстрее и бумагу не тратит.
Quote:
Но и без них сложить на арифмометре 1 + 2 + 3 + 5 + 7 ... гораздо проще, что очевидно! :ebiggrin:
Это очевидно даже ребёнку из детского сада!

А мне вот почему-то очевидно, что складывать сотни маленьких чисел на арифмометре — это долгая и монотонная работа. Хотя может мозгов и требует меньше чем что-то другое.

Наконец-то до вас дошло основное преимущество арифмомера и прочих калькуляторов - бумаги, мозгов и формул не требует! :kruto:

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

_________________
iLavr


05 Mar 2023 20:31
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 58 posts ]  Go to page Previous  1, 2, 3, 4

Who is online

Users browsing this forum: No registered users and 18 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.