- •Министерство образования и науки Российской Федерации
- •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. Особенности машинной арифметики
Знание основных особенностей машинной арифметики необходимо для грамотного использования компьютеров при решении поставленных задач. Пользователь, не учитывающий эти особенности, вряд ли может рассчитывать на высокую точность и эффективность вычислений. Нев-нимание к ним часто приводит к неверным результатам. Подчеркнем, что в основе появления вычислительной погрешности лежит сам способ представления чисел в компьютере.
16
1.4.1. Системы счисления
Принятый способ записи чисел состоит в представлении их упорядо-ченным набором цифр. В привычной для нас десятичной позиционной системе счисления вещественное число x представляют последовательно-стью символов, которая начинается со знака (+ или −) и продолжается
цепочкой десятичных цифр αi и βi, разделенных десятичной точкой:
x = ±αn…α1α0.β1β2… βm… (1.15)
Здесь каждой позиции (разряду), которую занимает цифра относительно десятичной точки, отвечает определенная степень числа 10. По существу, равенство (1.15) представляет собой принятое сокращение разложения числа x в сумму по степеням 10:
= ±(αn⋅10n + … + α1⋅101 + α0⋅100 + β1⋅10−1 + β2⋅10−2 +… + βm⋅10−m + …). Пример 1.12. Запись x = 20.5 означает, что x = 2⋅101 + 0⋅100 + 5⋅10−1.
Для представления чисел в компьютере также используют позицион-ные системы счисления, однако основаниями систем служат, как прави-ло, степени числа 2. Это вызвано способом хранения чисел в устройствах памяти компьютера, каждое из которых можно рассматривать как набор однотипных элементов, способных находиться только в одном из двух возможных устойчивых состояний − «включен» или «выключен». Эти состояния интерпретируются как нулевое или единичное значение дво-ичной цифры. Наиболее распространены системы счисления с основани-ем 2 (базисная двоичная система счисления), 8 и 16.
Игнорируя некоторые малосущественные детали, будем считать, что все вычислительные машины работают в двоичной системе счисления. В ней вещественное число x по-прежнему записывается в виде (1.15), одна-ко αi и βi − уже двоичные цифры (0 или 1). В этом случае число x разла-
гается в сумму по степени числа 2:
x = ±(αn⋅2n + … + α1⋅21 + α0⋅20 + β1⋅2−1 + β2⋅2−2 +… + βm⋅2−m + …).
Пример 1.13. Запись x = 20.5 в двоичной системе счисления. Для это-
го разложим его в сумму по степени 2:
x = 1⋅24 + 0⋅23 + 1⋅22 + 0⋅21 + 0⋅20 + 1⋅2−1.
Опуская степени числа 2, получаем x = (10100.1)2. Здесь нижний индекс 2 указывает на основание системы счисления.
Для хранения числа в памяти компьютера отводится поле стандартной длины (машинное слово), в котором число записывают в виде последова-
17
тельности двоичных цифр. По форме представления , способу хранения и реализации арифметических операций существенно различаются два ти-па используемых в компьютерах чисел: целые и вещественные числа.
1.4.2. Представление целых чисел |
|
Целое число n представляют в виде |
|
n = ±(αL⋅2L + … + α1⋅21 + α0⋅20), |
(1.16) |
где L − некоторое стандартное для компьютера целое число, αi − двоич-ные цифры. Всего для хранения числа n отводят s = L + 2 разрядов (один из них для хранения знака).
Из представления (1.16) видно, что максимальное по модулю целое число, представимое в компьютере, есть nmax = 2L + … + 21 + 20 = 2L+1 − 1. Обычно оно не очень велико. Например, при стандартном формате запи-
си целых чисел в компьютерах s = 32 и nmax = 231 − 1 ≈ 2⋅109.
Операции сложения, вычитания и умножения над целыми числами реализованы так, что если результат не превышает по модулю число nmax, то он получается точным . Отметим, однако, следующую неприятную особенность. Если модуль результата превышает nmax, то на компьютере эта ситуация может не доводиться до сведения пользователя, происходит присвоение результату некоторого значения (меньшего nmax по модулю) и вычисления продолжаются далее.