- •Министерство образования и науки Российской Федерации
- •1. Учет погрешностей приближенных вычислений
- •1.1. Источники и классификация погрешностей результата численного решения задачи
- •1.2. Приближенные числа. Абсолютная и относительная погрешности
- •1.2.1. Абсолютная и относительная погрешности
- •1.2.2. Правила записи приближенных чисел
- •1.2.3. Округление
- •1.3. Погрешности арифметических операций над приближенными числами
- •1.4. Особенности машинной арифметики
- •1.4.1. Системы счисления
- •1.4.3. Представление вещественных чисел
- •1.4.4. Арифметические операции над числами с плавающей точкой
- •1.4.5. Удвоенная точность
- •1.4.6. Вычисление машинного эпсилон
- •2. Прямые методы решения систем линейных алгебраических уравнений
- •Постановка задачи
- •2.2. Норма вектора
- •2.3. Скалярное произведение
- •2.4. Абсолютная и относительная погрешность вектора
- •2.5. Сходимость по норме
- •2.6. Норма матрицы
- •2.7. Обусловленность задачи решения системы линейных алгебраических уравнений
- •2.8. Метод Крамера
- •2.9. Матричный метод
- •2.10. Метод Гаусса
- •2.10.1. Схема единственного деления
- •2.10.4. Случай, когда выбор главных элементов не нужен
- •2.10.5. Масштабирование
- •2.12. Решение слау с помощью lu-разложения
- •2.13. Обращение матриц с помощью lu-разложения
- •2.14. Разложение симметричных матриц. Метод Холецкого (метод квадратных корней)
- •2.15. Метод прогонки
- •2.16. Метод исключения Жордана (Гаусса–Жордана)
- •2.17.1. Метод вращений
- •2.17.2. Метод отражений
- •2.18. Итерационное уточнение
- •2.19. Сингулярное разложение матрицы
- •2.19.1. Переопределенная система
- •2.19.2. Сингулярное разложение матрицы
- •2.19.4. Дополнительная информация о сингулярном разложении
- •2.20. Дополнительные замечания
- •3. Итерационные методы
- •3.1. Классические итерационные методы и релаксация
- •3.1.1. Методы Якоби и Гаусса–Зейделя
- •3.1.2. Ускорение сходимости релаксационных методов
- •3.2. Проекционные методы и подпространства Крылова
- •3.2.1. Общий подход к построению проекционных методов
- •3.2.2. Случай одномерных подпространств k и l
- •3.2.3. Два выбора подпространств
- •3.2.4. Подпространства Крылова
- •3.2.5. Базис подпространства Крылова. Ортогонализация Арнольди
- •3.2.6. Биортогонализация Ланцоша
- •3.3. Предобусловливание
- •3.3.1. Виды предобусловливания
- •3.3.2. Выбор структуры разреженности
- •3.4. Методы крыловского типа
- •3.4.1. Метод полной ортогонализации
- •3.4.2. Метод обобщенных минимальных невязок
- •3.4.3. Метод бисопряженных градиентов
- •3.4.4. Свободный от транспонирования метод квази-минимальных невязок
- •3.4.5. Стабилизированный метод бисопряженных градиентов
- •3.4.6. Метод квази-минимальных невязок
- •3.4.7. Квадратичный метод сопряженных градиентов
- •3.4.8. Симметричный случай
- •4. Использование итерационных методов при решении слау с плотной матрицей в анализе проводных антенн
- •4.1. Сравнение итерационных методов без использования предобусловливания
- •4.2. Сравнение итерационных методов при использовании предобусловливания
- •4.3. Оптимизация допуска обнуления при решении слау итерационным методом BiCgStab с предобусловливанием
- •4.4. Ускорение решения слау за счет снижения точности вычисления
- •Сравнение способов предфильтрации
1.4.3. Представление вещественных чисел
В большинстве современных компьютеров для вещественных чисел принята форма представления с плавающей точкой, когда каждое число представляют в виде
-
x = ±(γ1⋅2−1 + γ2⋅2−2 +… + γl⋅2−l)2p.
(1.17)
Здесь γ1, γ2, …, γl − двоичные цифры, p − целое число, называемое двоич-ным порядком.
Число x нормализуется так, чтобы γ1 = 1, и поэтому в памяти компью-тера хранятся только значащие цифры. Число μ = ±(γ1⋅2−1 + γ2⋅2−2 + +… + γl⋅2−l) называется мантиссой числа x. Количество l цифр, которое отводится для записи мантиссы, называемое разрядностью мантиссы, зависит от конструктивных особенностей конкретной вычислительной машины, но всегда является конечным. Порядок также записывают как двоичное целое число p = ±(σlσl−1 … σ 0)2, для хранения которого в ма-шинном слове отводится l + 2 двоичных разрядов.
Поскольку нуль − не нормализуемое число (его нельзя представить в виде (1.17) при γ1 ≠ 0), его для хранения записывают особым способом.
18
Пример 1.14. Представим число x = 20.5 в двоичной системе счисле-ния в нормализованной форме с плавающей точкой. Так как x = = (10100.1)2 (см. пример 1.13), то, перемещая двоичную точку на пять позиций влево, получаем x = (0.101001)2⋅25.
На основании имеющихся сведений о представлении чисел в компью-тере можно сделать ряд важных выводов.
1. В компьютере представимы не все числа, а лишь конечный набор рациональных чисел специального вида. Эти числа образуют представи-мое множество компьютера. Для всех остальных чисел x возможно лишь их приближенное представление с ошибкой, которую принято называть ошибкой представления (или ошибкой округления). Обычно приближен-ное представление числа x в компьютере обозначают как x* = fl(x)1. Если округление производят по дополнению, то граница относительной по-грешности представления равна единице первого отброшенного разряда мантиссы, т.е. δ′(x*) = εM = 2−l (порядок числа влияет на относительную погрешность представления). Если же округление производят усечением, то δ′(x*) = εM = 21−l. Величина εM играет в вычислениях на компьютере фундаментальную роль; ее называют относительной точностью компью-тера, а также машинной точностью (или машинным эпсилон). Всюду в дальнейшем εM − это относительная точность компьютера. Заметим, что значение этой величины определяется разрядностью мантиссы и спосо-бом округления.
Важно с самого начала иметь четкое представление о том, что почти наверняка в представимом множестве чисел компьютера нет числа y, яв-ляющегося решением поставленной задачи. Лучшее, что можно попы-таться сделать, − это найти его представление y* = fl(y) с относительной точностью порядка εM.
Полезно отметить, что среди представленных в компьютере чисел нет не только ни одного иррационального (в том числе и таких важных по-стоянных, как π, е, √2), но и даже такого широко используемого в вычис-лениях числа , как 0.1. Дело в том, что двоичная запись числа 0.1 является бесконечной периодической дробью: 0.1 = (0.0001100110011…)2. Поэто-му это число всегда представляется в компьютере приближенно, с по-грешностью, вызванной необходимостью округления.
2. Диапазон изменения чисел в компьютере ограничен. В самом деле, так как γ1 = 1, то из (1.17) следует, что для мантиссы μ справедливы
1 fl − начальные буквы английского слова floating − «плавающий».
19
оценки 0.5 ≤ |μ| < 1. В то же время для представления в компьютере по-рядка p используется конечное число (l + 1) двоичных цифр и поэтому |p| ≤ p max = 2l+1 − 1. Таким образом, для всех представимых в компьютере чисел x (за исключением нуля) имеем
0 < X0 ≤ |x| < X∞,
где X 0 = 2− ( pmax +1) , X ∞ = 2 pmax . Заметим, что диапазон представления чисел в компьютере всецело определяется разрядностью порядка.
Все числа x, по модулю большие X∞, не представимы в компьютере