Научный подход и ошибки
Прочитав одну интересную научную статью на прошлой неделе, я хотел бы услышать мнение кого-то, кто испытал это или кто "в теме":
Современные процессоры имеют некоторый конечный уровень точности, так какие же процессоры используются, например, в ядерной физике или генетике? Каков их уровень точности, когда мы говорим о числах, таких как 10e-19 (заряд единицы) или 10e-34 (постоянная Планка)?
Взгляните на определение гравитационной постоянной @ Wired.com, разница составляет около 240 x 10e-6. Я немного запутался, какие процессоры они использовали?
1 ответ
Произвольная точность возможна в научных вычислениях. Вы просто платите за это в дополнительной обработке.
Ученый обязан осознавать вычислительные ограничения в своих расчетах и проверять их. Например, небольшие изменения во входных параметрах должны привести к соответственно небольшим изменениям в выходных данных.
Произвольная точность достигается использованием произвольного числа или слов для кодирования числа. Арифметические операции становятся более сложными, так как округление и остатки должны отслеживаться и повторно включаться в вычисления:
http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic
Поддержка высокоточных чисел существует практически на всех языках программирования. Некоторые высокоуровневые инструменты, такие как Mathematica, пытаются выполнить обработку за вас (она оценивает точность, которая вам нужна).
Как правило, эти инструменты полностью независимы от используемого процессора, если этот процессор не делает ошибок: