Нас всегда учили доверять расчётам. Именно они положены в основу практически всего, что есть вокруг – строения, транспорт, лекарства и многое другое. Однако мы не задумываемся, насколько они точны.
Многие используемые зависимости так или иначе постулированы (законы физики и химии), другие известны только по эмпирическим закономерностям или весьма грубым приближениям. Многие или даже большая часть уравнений, используемые в настоящее время в научных и прикладных расчётах, не имеют аналитического решения и только так или иначе аппроксимируются (начиная с полного уравнения Навье-Стокса). Для решения многих конкретных задач разработаны специальные численные методы, для которых, опять же, можно рассчитать приближение и погрешность.
Другая проблема, гораздо более серьёзная, как мне кажется – усложнение программного обеспечения для расчётов. Используя все эти методы, формулы и так далее, мы не знаем, или знаем очень условно, как они считаются на самом деле. Как реализованы математические библиотеки приложений, обычно никто даже не думает, поскольку это обычно считается "с машинной точностью". Но как оценить эту "машинную точность" – неизвестно. Ведь речь обычно идёт не расчётах, которые можно проверить на бумажке, а о тех расчётах, которые длятся сутки и недели.
А теперь - пара простых примеров последнего:
- Я и многие мои знакомые сталкивались с тем, что у самого обычного Excel (особенно, последних версий) случаются ошибки, в первую очередь, связанные с округлением. Часто это ошибки во втором-третьем знаке. Казалось бы, ничего страшного. Но, допустим, делается ошибка в сколько-то копеек в начислении зарплаты у сотрудников конторы, рублей на закупке техники, переходит на уровень организации и так далее. Легко прикинуть, что за год может «наползти» некая, пусть и небольшая, но значимая сумма.
- Пример, который послужил причиной написания текста. Код по тяжёлому физико-механическому моделированию, с плавлением вещества и так далее. Компилируется на двух разных (специально заведённых) операционных системах (Debian и Fedora) одним и тем же компилятором. Но на Fedora перемножение матриц проходит успешно, а на Debian – нет. И, пока это явная ошибка, её возможно поправить. Накопившуюся погрешность в числах отловить практически невозможно. И оценить, иначе как «согласно здравому смыслу» - тоже практически никак.
А теперь главный вопрос: где правильная математика? И кто может гарантировать истинность расчётов? Не уравнений, положенных в основу, но простейших операций с цифрами? В книгах 60-х и 70-х прошлого века эта был отдельный важный раздел, сейчас же я подобного в книгах по программированию не видел.
Естественно, это не призыв возвращаться к бумажке и карандашу, но повод задуматься о том, как и что мы считаем.
Многие используемые зависимости так или иначе постулированы (законы физики и химии), другие известны только по эмпирическим закономерностям или весьма грубым приближениям. Многие или даже большая часть уравнений, используемые в настоящее время в научных и прикладных расчётах, не имеют аналитического решения и только так или иначе аппроксимируются (начиная с полного уравнения Навье-Стокса). Для решения многих конкретных задач разработаны специальные численные методы, для которых, опять же, можно рассчитать приближение и погрешность.
Другая проблема, гораздо более серьёзная, как мне кажется – усложнение программного обеспечения для расчётов. Используя все эти методы, формулы и так далее, мы не знаем, или знаем очень условно, как они считаются на самом деле. Как реализованы математические библиотеки приложений, обычно никто даже не думает, поскольку это обычно считается "с машинной точностью". Но как оценить эту "машинную точность" – неизвестно. Ведь речь обычно идёт не расчётах, которые можно проверить на бумажке, а о тех расчётах, которые длятся сутки и недели.
А теперь - пара простых примеров последнего:
- Я и многие мои знакомые сталкивались с тем, что у самого обычного Excel (особенно, последних версий) случаются ошибки, в первую очередь, связанные с округлением. Часто это ошибки во втором-третьем знаке. Казалось бы, ничего страшного. Но, допустим, делается ошибка в сколько-то копеек в начислении зарплаты у сотрудников конторы, рублей на закупке техники, переходит на уровень организации и так далее. Легко прикинуть, что за год может «наползти» некая, пусть и небольшая, но значимая сумма.
- Пример, который послужил причиной написания текста. Код по тяжёлому физико-механическому моделированию, с плавлением вещества и так далее. Компилируется на двух разных (специально заведённых) операционных системах (Debian и Fedora) одним и тем же компилятором. Но на Fedora перемножение матриц проходит успешно, а на Debian – нет. И, пока это явная ошибка, её возможно поправить. Накопившуюся погрешность в числах отловить практически невозможно. И оценить, иначе как «согласно здравому смыслу» - тоже практически никак.
А теперь главный вопрос: где правильная математика? И кто может гарантировать истинность расчётов? Не уравнений, положенных в основу, но простейших операций с цифрами? В книгах 60-х и 70-х прошлого века эта был отдельный важный раздел, сейчас же я подобного в книгах по программированию не видел.
Естественно, это не призыв возвращаться к бумажке и карандашу, но повод задуматься о том, как и что мы считаем.
0
У записи 1 лайков,
0 репостов.
0 репостов.
Эту запись оставил(а) на своей стене Илья Фомин