Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
В таких случаях подразумеваются некоторые границы, внутри которых эта величина должна находиться, что-либо вроде 2.0 ± 0.0001 сек.
Иногда подразумевается, что если для экспериментального результата не указаны его возможные границы, то результат имеет точность половины единицы младшего разряда. Поэтому если дано, что некая длина равна 5.63см, то это следует понимать так, что эта длина не меньше 5.625 и не больше 5.635 см. Однако это правило не всегда соблюдается; поэтому, когда границы точности результата важны, их следует указать в явном виде, например 5.63 ± 0.005 см.
Независимо от количества значащих цифр в какой-либо величине, в ней может содержаться порой какая-нибудь грубая ошибка. Грубые ошибки могут возникнуть от опечаток, от ошибочного отсчета показаний прибора, хотя встречаются иногда и такие ошибки, возникновение которых связано с некорректной постановкой задачи или с неполным пониманием некоторых физических законов.
Многие числа нельзя представить точно ограниченным числом значащих цифр. Если в вычислениях используется число ?, то оно может быть представлено в виде 3.14, или 3.14159265, или 3.141592653589793, в зависимости от того, какая точность требуется в данном вычислении.
В любом случае, однако, невозможно представить ? точно, так как ? является иррациональным числом и не может быть представлено конечным числом знаков. Даже обыкновенные дроби очень часто нельзя представить с помощью конечного числа десятичных знаков, как 1/3, которую можно представить только в виде периодической дроби.
Часто случается так, что дроби, которые являются конечными в одной системе счисления, становятся бесконечными в другой системе счисления. Например, дробь 1/10 явно имеет конечное десятичное представление 0.1, но, будучи переведена в двоичную систему счисления, становится бесконечной дробью 0.000110011001100.... Вычисляя сумму десяти чисел, каждое из которых будет представлять собой двоичное приближение к десятичной 0.1, мы в сумме не получим точно 1. Известно, что начинающие программисты иногда приходят в замешательство, сталкиваясь впервые с такими «чудесами». Трудность эта неизбежна, но легко преодолима.
Ошибки ограничения
Те ошибки, которые содержатся в исходной информации, определяют точность результата вычислений независимо от того, каким методом эти вычисления проводятся. Два других типа ошибок - ошибки ограничения и ошибки округления - определяются теми численными методами, которые были использованы для решения задачи.
Общеизвестный ряд Тейлора для синуса
может использоваться для вычисления синуса любого угла x, выраженного в радианах, хотя, как уже мы убедились, это далеко не лучший способ вычисления синуса угла.
Конечно, невозможно использовать все члены ряда для вычислений, так как ряд бесконечен; вычисления ограничиваются конечным числом членов: например, до х7 или х9. Отброшенные члены ряда (а их число бесконечно) вносят некоторую ошибку в результат вычислений.
Эта ошибка называется ошибкой ограничения, так как она возникает в
результате ограничения бесконечного математического процесса.
Очень многие процессы, используемые при вычислениях, являются бесконечными, так что анализ ошибок ограничения очень важен.
Ошибки округления
Даже если предположить, что исходная информация не содержит никаких ошибок и все вычислительные процессы конечны и не приводят к ошибкам ограничения, то все равно в этом случае присутствует третий тип ошибок - ошибки округления. Предположим, что вычисления проводятся на машине, в которой каждое число представляется пятью значащими цифрами, и что необходимо сложить два числа 9.2654 и 7.1625, причем эти два числа являются точными. Сумма их равна 16.4279, она содержит шесть значащих цифр и не помещается в разрядной сетке нашей гипотетической машины. Поэтому шестизначный результат будет округлен до 16.428, и при этом возникает ошибка округления. Так как все вычислительные машины всегда работают с конечным количеством значащих цифр, то потребность в округлении возникает всегда.
Вопросы округления относятся только к действительным числам. При выполнении арифметических операций с целыми числами потребность в округлении не возникает. Сумма, разность и произведение целых чисел сами являются целыми числами; если результат слишком велик, то это свидетельствует об ошибке в программе и результат при этом не округляется.
Частное от деления двух целых чисел не всегда является целым числом, но, деление двух целых чисел всегда выполняется таким образом, что дробная часть просто игнорируется. Кроме того, в подавляющем большинстве научных и инженерных расчетов деление целых чисел вообще не используется.
Поскольку будет рассматриваться округление действительных чисел, необходимо вспомнить форму их записи и договориться о некоторых условностях. Напомним, что действительное число можно представить в виде дроби, которую часто также называют мантиссой, умноженной на целую степень 10, называемую порядком. Например:
7392 = 0.7392-104
32.46 = 0.3246-102
0.0001627 = 0.1627![]()
![]()
Действительное число называется нормализованным, если первая значащая цифра мантиссы не равна нулю. В дальнейшем мы будем предполагать, что все действительные числа нормализованы.
Если обозначить мантиссу действительного числа х через f, а его порядок через е, то в общей форме число запишется следующим образом:
x =
.
Величина f не может быть меньше 1/10, так как все числа должны быть нормализованными; эта величина не может также быть больше 1, так как мантисса должна быть правильной дробью.
Результат выполнения арифметической операции в общем случае состоит из двух частей: старшей и младшей.
Например, предположим, что необходимо сложить два действительных числа и что в ячейке памяти вычислительной машины мантисса может представляться четырьмя значащими цифрами, а порядок — одной цифрой:
0.1624·103 (= 162.4),
0.1769·101 (= 1.769).
В любом компьютере автоматически выравниваются порядки действительных чисел при сложении и вычитании. Это означает, что порядки сначала сравниваются, а затем мантисса меньшего по абсолютной величине числа сдвигается вправо на столько разрядов, сколько необходимо для того, чтобы порядки стали одинаковыми.
В нашем случае получается следующий результат:
0.1624 ·103
0.001769 ·103
Другими словами, мантисса числа с меньшим порядком сдвигается вправо на число разрядов, равное разности между порядками. Теперь можно непосредственно сложить две мантиссы.
Очевидно, что сумма будет иметь больше четырех значащих цифр в мантиссе. Результат до округления можно представить в виде суммы двух действительных чисел:
0.1624·103
0.001769 ·103
0.164169·103 = 0.1641 ·103 + 0.6900·![]()
![]()
Любая из четырех арифметических операций даст в результате число, которое можно представить в виде двух аналогичных слагаемых.
Если принять, что компьютер оперирует с t значащими цифрами, а максимальный порядок складываемых или вычитаемых чисел равен е, то в общем виде перед округлением результат арифметической операции можно записать так:
![]()
Здесь
имеет t значащих цифр. Диапазон возможных значений
, как мы условились, лежит между 0.1 и 1.0 (0.1 <
< 1.0). Для
это не так, потому что
может и не быть нормализованным числом; В частности,
может сказаться равным нулю. Для
диапазон возможных значений составляет 0 <
< 1.0.
Возникают два вопроса первостепенной важности: согласно каким правилам следует учитывать величину gy при изменении fy и какова максимально возможная ошибка округления величины у для каждого из таких правил?
Обычно «округление» означает, что с величиной fv производится какое-то действие, зависящее от величины gy. В общем случае необходимо рассматривать и такую возможность, когда никакого действия не производится, т. е, когда gv просто отбрасывается. Соответствующий метод округления называется отбрасыванием младших разрядов.
Очень большое число трансляторов любого языка и, в частности, ФОРТРАН, организовано таким образом, что рабочие программы, составленные с их помощью, используют правило отбрасывания gy.
Этот способ округления вносит большие ошибки, чем обычное округление (так называемое симметричное округление). С другой стороны, если использовать обычное правило округления при выполнении каждой арифметической операции даже там, где в нем не никакой необходимости, то это приводит к неоправданным затратам машинного времени. Поэтому многие составители программ-трансляторов резонно решили, что уменьшение точности, вызванное отбрасыванием, достаточно мало и не перевешивает тех выгод, которые приобретаются в результате упрощения рабочих программ и экономии машинного времени.
Довольно легко определить максимально возможную относительную ошибку для случая отбрасывания gy. Maксимальная ошибка возникает тогда, когда gy велико, a fy мало. Максимально возможное значение gy равно 1.0, минимально возможное значение fy равно 0.1.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |


