Бурбаки - это попытка расширить математический инструментарий. Что можно только приветствовать. Математика не всегда может быть приложена к реальности именно из-за невозможности задать присвоения каких то параметров каким то переменным. В этом случае делается заход с другим инструментом и все повторяется.
Но, к сожалению, человек слишком привязан к традиционным основам математической логики. В которой есть десятичное исчисление и четыре арифметических действия. Математика могла быть совершенно другой, то что мы изучаем - это условность.
Например - какой была бы математика, если бы вместо четырех базовых действий (сложение, вычитание, умножение, деление) мы руководствовались исключительно двумя - "слоделение" и "вымножение"?
Она бы упростилась? Нет конечно! Математика усложнилась бы неимоверно! Простые бухгалтерские балансы превратились бы в простыни с формулами на десятки страниц!
Так вот и с нынешней математикой. Мы ужасаемся видам формул в тригонометрии, множествах, пределах и других видах анализа. А может быть нам просто не хватает еще четырех базовых арифметических действий? А может быть нам не хватает каких то других цифр исчисления? Это нужно исследовать.
1. Ну, то есть, говоря языком программирования, это порождение юзерских произвольных функций, написанных конкретным математиком или программистом?..
Ближе к дискретной математике...
***
2. Я вот хотел спросить - что человечеству и программистам делать с самой распространённой ошибкой округления заодно:
Σ(≈A) <> ≈(ΣA)
(или словами - сумма округлений чисел множества А не всегда равна округлению суммы чисел того же множества... от перестановки функций результат меняется)...
Хуже всего, когда бухгалтерские накладные подгонять на копейку приходится суммированием коррекции - не сходятся т.н. вертикальная и горизонтальная суммы при отображении накладной в двух валютах сразу... Эта копейка (у нас в Латвии - евроцент) как мельчайшая брызга стреляет вовнутрь сумм и механизма всей программы и постепенно накапливается как погрешность...
Математически выход все суммы считать с 16-ю-18-ю знаками после запятой... Только все компьютеры (чтоб не тормозили при подсчётах) и программы так модернизировать миллиарды стоит!
Единственный способ избавиться от ошибок накопления округлений - это производить вычисления без округлений.
Округление должно быть последней математической операцией с результатом. При этом конечно возникают коллизии при сопоставлении суммы - и промежуточных значений - те и другие показаны в округлении и сумма округленных не будет вязаться с итогом. Что делать? Объяснять это тем, что вычисления идут с неокругленными значениями, что правильнее.
Я работаю с инженерными вычислениями в тригонометрии, где округления могут приводить к огромным ошибкам и там сталкиваюсь с форматами данных, имеющими жесткие ограничения по точности. И лучший вариант дает Decimal, в котором всего четыре знака после запятой, зато очень много слева от нее. Работаю с числами, умноженными на 10к. Приходится использовать округление, но как минимум на четыре знака вправо от требуемого по точности результата.
У нас, программистов 1С (на 1С), округление неизбежно: сумма по строке документа и сумма по документу должны быть с двумя знаками после запятой, т.к. копейки (евроценты) не делятся. Копейки вынуждают к такой дискретности.
в бухгалтерской математике нужно или отказываться от практики округления до целых копеек в промежуточных вычислениях (что правильнее) - либо создавать свою "альтернативную" бухгалтерскую математику с отдельно описываемыми процедурами в отношении неизбежных расхождений. В последнем случае почти гарантированы злоупотребления с огромным количеством транзакций в рознице.
Программу не один программист создаёт... Тебе дают уже сделанную гигантскую конфигурацию, что сложнее Боинга и Шаттла, в которой все копейки подсчитаны с дискретностью до двух знаков... Переделать хотя бы одну программму - работа командой в несколько лет... Не говоря уже, если считать с большой точностью, наши процессоры начнут тормозить!
Ну это общая проблема человечества - эволюция приводит к необходимости революции.
Вот у России сегодня есть шанец очиститься от исторических наслоений при переходе на собственные компьютеры и собственную "эко-систему". И тут очень кстати появляется "искусственный интеллект", который пока бесконечно далек от реального разума, но уже способен терпеливо искать оптимальное решение.
Бурбаки - это попытка расширить математический инструментарий. Что можно только приветствовать. Математика не всегда может быть приложена к реальности именно из-за невозможности задать присвоения каких то параметров каким то переменным. В этом случае делается заход с другим инструментом и все повторяется.
Но, к сожалению, человек слишком привязан к традиционным основам математической логики. В которой есть десятичное исчисление и четыре арифметических действия. Математика могла быть совершенно другой, то что мы изучаем - это условность.
Например - какой была бы математика, если бы вместо четырех базовых действий (сложение, вычитание, умножение, деление) мы руководствовались исключительно двумя - "слоделение" и "вымножение"?
Она бы упростилась? Нет конечно! Математика усложнилась бы неимоверно! Простые бухгалтерские балансы превратились бы в простыни с формулами на десятки страниц!
Так вот и с нынешней математикой. Мы ужасаемся видам формул в тригонометрии, множествах, пределах и других видах анализа. А может быть нам просто не хватает еще четырех базовых арифметических действий? А может быть нам не хватает каких то других цифр исчисления? Это нужно исследовать.
Reply
1. Ну, то есть, говоря языком программирования, это порождение юзерских произвольных функций, написанных конкретным математиком или программистом?..
Ближе к дискретной математике...
***
2. Я вот хотел спросить - что человечеству и программистам делать с самой распространённой ошибкой округления заодно:
Σ(≈A) <> ≈(ΣA)
(или словами - сумма округлений чисел множества А не всегда равна округлению суммы чисел того же множества... от перестановки функций результат меняется)...
Хуже всего, когда бухгалтерские накладные подгонять на копейку приходится суммированием коррекции - не сходятся т.н. вертикальная и горизонтальная суммы при отображении накладной в двух валютах сразу... Эта копейка (у нас в Латвии - евроцент) как мельчайшая брызга стреляет вовнутрь сумм и механизма всей программы и постепенно накапливается как погрешность...
Математически выход все суммы считать с 16-ю-18-ю знаками после запятой... Только все компьютеры (чтоб не тормозили при подсчётах) и программы так модернизировать миллиарды стоит!
Reply
Единственный способ избавиться от ошибок накопления округлений - это производить вычисления без округлений.
Округление должно быть последней математической операцией с результатом. При этом конечно возникают коллизии при сопоставлении суммы - и промежуточных значений - те и другие показаны в округлении и сумма округленных не будет вязаться с итогом. Что делать? Объяснять это тем, что вычисления идут с неокругленными значениями, что правильнее.
Я работаю с инженерными вычислениями в тригонометрии, где округления могут приводить к огромным ошибкам и там сталкиваюсь с форматами данных, имеющими жесткие ограничения по точности. И лучший вариант дает Decimal, в котором всего четыре знака после запятой, зато очень много слева от нее. Работаю с числами, умноженными на 10к. Приходится использовать округление, но как минимум на четыре знака вправо от требуемого по точности результата.
Reply
У нас, программистов 1С (на 1С), округление неизбежно: сумма по строке документа и сумма по документу должны быть с двумя знаками после запятой, т.к. копейки (евроценты) не делятся. Копейки вынуждают к такой дискретности.
Reply
в бухгалтерской математике нужно или отказываться от практики округления до целых копеек в промежуточных вычислениях (что правильнее) - либо создавать свою "альтернативную" бухгалтерскую математику с отдельно описываемыми процедурами в отношении неизбежных расхождений. В последнем случае почти гарантированы злоупотребления с огромным количеством транзакций в рознице.
Reply
Программу не один программист создаёт... Тебе дают уже сделанную гигантскую конфигурацию, что сложнее Боинга и Шаттла, в которой все копейки подсчитаны с дискретностью до двух знаков... Переделать хотя бы одну программму - работа командой в несколько лет... Не говоря уже, если считать с большой точностью, наши процессоры начнут тормозить!
Reply
Ну это общая проблема человечества - эволюция приводит к необходимости революции.
Вот у России сегодня есть шанец очиститься от исторических наслоений при переходе на собственные компьютеры и собственную "эко-систему". И тут очень кстати появляется "искусственный интеллект", который пока бесконечно далек от реального разума, но уже способен терпеливо искать оптимальное решение.
Reply
Проблемы ошибок человечества изложил в шуточной взрослой сказке:
Reply
Leave a comment