8.Вопрос точности вычислений
При реализации многих численных методов точность вычислений зависит от числа шагов. Однако за какое именно число шагов будет достигнута приемлемая точность, заранее сказать трудно и желательно, чтобы программа сама определяла, когда следует остановиться.
Например, синус можно разложить в так называемый ряд Тейлора:
Чем большее количество членов ряда будет просуммировано, тем точнее будет вычислен синус. Пусть требуется вычислить до 5-го знака после запятой. То есть приемлемая погрешность . Для этого достаточно суммировать члены ряда до тех пор, пока очередной член ряда не окажется меньше 10-5.
eps:=1e-5; readln(x); p:=x; s:=x; n:=2; while abs(p)>eps do {Условие выхода: очередной член ряда по модулю меньше eps} begin p:=-p*x*x/(n*(n+1)); {Вычисление очередного члена ряда} s:=s+p; n:=n+2; end; writeln('sin(x) = ', s); |
Если вычисления производятся в соответствии с рекуррентными соотношениями, то еще один способ поставить связанное с точностью условие прекращения вычислений заключается в следующем. Вычисления прекращаются, если изменение вычисляемой величины на очередном шаге меньше заданной величины:
Также условие можно наложить на относительное изменение:
- 1.Необходимые (основные) свойства моделей. Основные типы уравнении в математическом моделировании
- 2.Прямая задача в моделировании
- 3.Обратная задача в моделировании
- 4.Численное интегрирование
- 5.Подгонка или аппроксимация; метод наименьших квадратов
- 6.Конечно-разностные системы. Одноименная конечно разносная система
- 7.Конечно-разностные системы. Двумерная конечно-разностная схема
- 8.Вопрос точности вычислений
- 1. Переменные; сложные структуры простых элементов
- 2.Массивы
- 4.Цикл с предусловием
- 5.Функции/процедуры
- 7.Вещественный тип данных
- 8.Стоковый тип данных