Да, есть такая проблема.
Все задачи по характеру своих решений делятся на устойчивые и неустойчивые.
Неустойчивые задачи (с "эффектом бабочки") не решаются численными методами на компьютере, в связи с тем, что любой компьютер работает только с конечным числом знаков после запятой. Это разного рода нелинейные задачи, типа, предсказание погоды, турбулентная динамика, шарик в рулетке, биржевые котировки, задача трёх тел и т. п. Работать с бесконечным числом знаков после запятой компьютеры не могут принципиально, да и иррациональные числа неизвестны с абсолютной точностью.
В устойчивых задачах, где ошибка вычислений нарастает не быстрее экспоненты, точность вычислений можно увеличивать за счет увеличения числа знаков после запятой и увеличения числа итераций. Таким способом можно не только увеличить точность решения, но и заглушить "цифровой шум" ("цифровую температуру").
Техника
Проблемы реализации точных вычислений в IBM PC.
никаких проблем. Плавающая арифметика соответствует стандарту IEEE, так что - никаких сюрпризов. Кстати, суперкомпьютеры в это грешат.
желаете большую точность - пишите библиотеку или используйте многочисленные готовые.
желаете большую точность - пишите библиотеку или используйте многочисленные готовые.
Ну, все проблемы упираются в две вещи - производительность и конечность представления вещественных чисел, обусловленную тем, что IBM PC - это цифровой компьютер, хранящий все данные в виде конечных последовательностей единиц и нулей.
Первая решается более мощным железом, распараллеливанием и более хитрыми алгоритмами. Вторая - использованием либо методов вычислений с оценкой погрешности (например, интервальная арифметика) , либо специальные подмножества чисел (например, рациональные дроби) , либо более "вместительные" ячейки памяти для представления вещественных чисел. Иногда, погрешность можно существенно уменьшить, если изменить алгоритм так, чтобы не возникало операций с числами, сильно отличающихся порядком.
Вообще же проблем как правило особых нет. В большинстве задач хватает т. н. одинарной точности ( в языке С тип float, занимающего 4 байта ), для более менее сложных - двойной точности (double 8 байт) или, для пущей важности 10 байт. Кстати, однажды довелось проводить эксперимент на одной из задач, который показал, что расчет на 8 и 10 байтах дает один и тот же результат. ну, это так, частный случай. .
Ну, а когда этого не хватает, тогда уже начинают извращаться. ))
Первая решается более мощным железом, распараллеливанием и более хитрыми алгоритмами. Вторая - использованием либо методов вычислений с оценкой погрешности (например, интервальная арифметика) , либо специальные подмножества чисел (например, рациональные дроби) , либо более "вместительные" ячейки памяти для представления вещественных чисел. Иногда, погрешность можно существенно уменьшить, если изменить алгоритм так, чтобы не возникало операций с числами, сильно отличающихся порядком.
Вообще же проблем как правило особых нет. В большинстве задач хватает т. н. одинарной точности ( в языке С тип float, занимающего 4 байта ), для более менее сложных - двойной точности (double 8 байт) или, для пущей важности 10 байт. Кстати, однажды довелось проводить эксперимент на одной из задач, который показал, что расчет на 8 и 10 байтах дает один и тот же результат. ну, это так, частный случай. .
Ну, а когда этого не хватает, тогда уже начинают извращаться. ))
Сложность вычислений и квантовые компьютеры
http://elementy.*ru/video?pubid=431220
(без *) онлайн лекция
http://elementy.*ru/video?pubid=431220
(без *) онлайн лекция
Похожие вопросы
- Знатоки скажите мог СССР наладить производство компьютерных процессоров в 80х и создать свой IBM PC?
- Конец света близок? Как считаете ? ( вычисление суперкомпьютера ) Дайте оценку такой технической возможности
- В Советское время были компьютеры IBM. Имею ввиду у обычных граждан?
- Линии, размеры в чертеже - целая вселенная для реализации идей. А что для вас означает чертеж?
- Подскажите алгоритм вычисления квадратного корня столбиком, например числа 2401, 529, 3249
- Самые точные часы в мире
- Вычисления тока зарядки.
- Существует-ли формула для вычисления потребности количества алкоголя к Новогоднему столу?
- Появилась идея. Но я не силен в вычислениях. Предлагаю подумать вместе. Возможно ли выйти в космос на воздушном шаре?
- Что точнее термометр или интернет?