ВУЗ:
Составители:
6
арифметических и логических действий, выполняемых на компьютере и дающих за конечное
число действий решение дискретной задачи. Полученное решение дискретной задачи принимается
за приближенное решение исходной математической задачи.
При решении задачи на компьютере мы всегда получаем не точное решение исходной
задачи, а некоторое приближенное решение. Чем же обусловлена возникающая погрешность?
Можно выделить три основные причины возникновения погрешности при численном решении
исходной математической задачи. Прежде всего, входные данные исходной задачи (начальные и
граничные условия, коэффициенты и правые части уравнений) всегда задаются с некоторой
погрешностью. Погрешность численного метода, обусловленную неточным заданием входных
данных, принято называть неустранимой погрешностью. Далее, при замене исходной задачи
дискретной задачей возникает погрешность, называемая погрешностью дискретизации или
погрешностью метода. Например, заменяя производную u’(x) разностным отношением (u(x+∆x)-
u(x))/∆x, мы допускаем погрешность дискретизации, имеющую при ∆x
→
0 порядок ∆x. Наконец,
конечная разрядность чисел, представляемых в компьютере, приводит к погрешностям
округления, которые могут нарастать в процессе вычислений. Естественно требовать, чтобы
погрешности в задании начальной информации и погрешность, возникающая в результате
дискретизации, были согласованы с погрешностью решения на компьютере дискретной задачи.
Сказанное означает, что основное требование, предъявляемое к вычислительному
алгоритму, – это требование точности. Оно означает, что вычислительный алгоритм должен
давать решение исходной задачи с заданной точностью ε >0 за конечное число Q(ε) действий.
Алгоритм должен быть реализуемым, т.е. обеспечивать решение задачи за допустимое машинное
время или, в силу конечной скорости вычислений на компьютере, – за допустимое число действий.
Для большинства алгоритмов время решения задачи (объем вычислений) Q(ε) возрастает при
повышении точности, т.е. при уменьшении ε. Конечно, можно задать ε настолько малым, что
время счета задачи станет недопустимо большим. Важно знать, что алгоритм дает
принципиальную возможность получить решение задачи с любой точностью. Однако на практике
величину ε выбирают, учитывая требование точности и возможность реализуемости алгоритма на
данном компьютере. Для каждой задачи, алгоритма и машины есть свое характерное значение ε.
Естественно добиваться, чтобы число действий (и тем самым машинное время решения
задачи) Q(ε) было минимальным для данной задачи. Для любой задачи можно предложить много
алгоритмов, дающих одинаковую по порядку (при ε
→
0) точность ε>0, но за разное число
действий Q(ε). Среди этих эквивалентных по порядку точности алгоритмов надо выбрать тот,
который дает решение с затратой наименьшего машинного времени (числа действий Q(ε)). Такие
алгоритмы будем называть оптимальными.
Остановимся еще на одном требовании, предъявляемом к вычислительному алгоритму, а
именно – требовании отсутствия аварийного останова (авоста) компьютера в процессе
вычислений. Следует иметь в виду, что компьютер оперирует с числами, имеющими конечное
число значащих цифр и принадлежащих (по модулю) не всей числовой оси, а некоторому
интервалу (М
0
,М
∞
), М
0
>0, М
∞
<∞, где М
0
– машинный нуль, М
∞
– машинная бесконечность. Если
условие │М│<М
∞
в процессе вычислений нарушается, то происходит аварийный останов
вследствие переполнения разрядной сетки, и вычисления прекращаются. Возможность авоста
зависит как от алгоритма, так и от исходной задачи.
Если решение исходной задачи выражается через очень большие (очень малые) числа
│М│>М
∞
(│М│<М
0
), то, как правило, путем изменения масштабов можно привести задачу к виду,
содержащему только величины, принадлежащие (по модулю) заданному интервалу (М
0
,М
∞
). Часто
возможность авоста может быть устранена путем изменения порядка действий. Поясним это на
простом примере.
Пример 1. Пусть М
∞
=10
р
, М
0
=10
-р
, р=2
n
, n – целое число. Требуется вычислить
произведение чисел 10
p/2
,10
p/4
,10
-p/2
,10
3p/4
,10
-3p/4
.
1-й способ. Перенумеруем числа в порядке убывания: q
1
=10
3p/4
, q
2
=10
p/2
, q
3
=10
p/4
, q
4
=10
-p/2
,
q
5
=10
-3p/4
и образуем произведения S
k+1
=S
k
q
k+1
, S
1
=q
1
. Тогда уже на первом шаге мы получим
авост, т.к. S
2
=q
1
q
2
=10
5p/4
>M
∞
.
2-й способ. Перенумеруем числа в порядке возрастания: q
1
=10
-3p/4
, q
2
=10
-p/2
, q
3
=10
p/4
,
q
4
=10
p/2
, q
5
=10
3p/4
. В этом случае мы получим на первом шаге S
2
= q
1
q
2
=10
-5p/4
<M
0
, т.е. S
2
–
машинный нуль; нулю равны и все последующие произведения S
3
, S
4
, S
5
; таким образом, здесь
происходит полная потеря точности.
6
арифметических и логических действий, выполняемых на компьютере и дающих за конечное
число действий решение дискретной задачи. Полученное решение дискретной задачи принимается
за приближенное решение исходной математической задачи.
При решении задачи на компьютере мы всегда получаем не точное решение исходной
задачи, а некоторое приближенное решение. Чем же обусловлена возникающая погрешность?
Можно выделить три основные причины возникновения погрешности при численном решении
исходной математической задачи. Прежде всего, входные данные исходной задачи (начальные и
граничные условия, коэффициенты и правые части уравнений) всегда задаются с некоторой
погрешностью. Погрешность численного метода, обусловленную неточным заданием входных
данных, принято называть неустранимой погрешностью. Далее, при замене исходной задачи
дискретной задачей возникает погрешность, называемая погрешностью дискретизации или
погрешностью метода. Например, заменяя производную u’(x) разностным отношением (u(x+∆x)-
u(x))/∆x, мы допускаем погрешность дискретизации, имеющую при ∆x → 0 порядок ∆x. Наконец,
конечная разрядность чисел, представляемых в компьютере, приводит к погрешностям
округления, которые могут нарастать в процессе вычислений. Естественно требовать, чтобы
погрешности в задании начальной информации и погрешность, возникающая в результате
дискретизации, были согласованы с погрешностью решения на компьютере дискретной задачи.
Сказанное означает, что основное требование, предъявляемое к вычислительному
алгоритму, – это требование точности. Оно означает, что вычислительный алгоритм должен
давать решение исходной задачи с заданной точностью ε >0 за конечное число Q(ε) действий.
Алгоритм должен быть реализуемым, т.е. обеспечивать решение задачи за допустимое машинное
время или, в силу конечной скорости вычислений на компьютере, – за допустимое число действий.
Для большинства алгоритмов время решения задачи (объем вычислений) Q(ε) возрастает при
повышении точности, т.е. при уменьшении ε. Конечно, можно задать ε настолько малым, что
время счета задачи станет недопустимо большим. Важно знать, что алгоритм дает
принципиальную возможность получить решение задачи с любой точностью. Однако на практике
величину ε выбирают, учитывая требование точности и возможность реализуемости алгоритма на
данном компьютере. Для каждой задачи, алгоритма и машины есть свое характерное значение ε.
Естественно добиваться, чтобы число действий (и тем самым машинное время решения
задачи) Q(ε) было минимальным для данной задачи. Для любой задачи можно предложить много
алгоритмов, дающих одинаковую по порядку (при ε → 0) точность ε>0, но за разное число
действий Q(ε). Среди этих эквивалентных по порядку точности алгоритмов надо выбрать тот,
который дает решение с затратой наименьшего машинного времени (числа действий Q(ε)). Такие
алгоритмы будем называть оптимальными.
Остановимся еще на одном требовании, предъявляемом к вычислительному алгоритму, а
именно – требовании отсутствия аварийного останова (авоста) компьютера в процессе
вычислений. Следует иметь в виду, что компьютер оперирует с числами, имеющими конечное
число значащих цифр и принадлежащих (по модулю) не всей числовой оси, а некоторому
интервалу (М0,М∞), М0>0, М∞<∞, где М0 – машинный нуль, М∞ – машинная бесконечность. Если
условие │М│<М∞ в процессе вычислений нарушается, то происходит аварийный останов
вследствие переполнения разрядной сетки, и вычисления прекращаются. Возможность авоста
зависит как от алгоритма, так и от исходной задачи.
Если решение исходной задачи выражается через очень большие (очень малые) числа
│М│>М∞ (│М│<М0), то, как правило, путем изменения масштабов можно привести задачу к виду,
содержащему только величины, принадлежащие (по модулю) заданному интервалу (М0,М∞). Часто
возможность авоста может быть устранена путем изменения порядка действий. Поясним это на
простом примере.
Пример 1. Пусть М∞=10р, М0=10-р, р=2n, n – целое число. Требуется вычислить
произведение чисел 10p/2,10p/4,10-p/2,103p/4,10-3p/4.
1-й способ. Перенумеруем числа в порядке убывания: q1=103p/4, q2=10p/2, q3=10p/4, q4=10-p/2,
-3p/4
q5=10 и образуем произведения Sk+1=Skqk+1, S1=q1. Тогда уже на первом шаге мы получим
авост, т.к. S2=q1q2=105p/4>M∞.
2-й способ. Перенумеруем числа в порядке возрастания: q1=10-3p/4, q2=10-p/2, q3=10p/4,
q4=10 , q5=103p/4. В этом случае мы получим на первом шаге S2 = q1q2 =10-5p/4Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »
