ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.09.2025
Просмотров: 1199
Скачиваний: 0
СОДЕРЖАНИЕ
Л.В. Маркова, е.А. Корчевская,
Глава 1 Элементы теории погрешностей п 1.1 Источники погрешностей
П 1.2 Вычисление абсолютной и относительной погрешностей
П 1.4 Вычисление погрешностей арифметических операций
П 1.5 Оценка погрешности по способу границ
Глава 2 объектно-ориентированный подход к программированию методов линейной алгебры
П 2.1 Создание матричной иерархии классов
П 2.2 Создание иерархии классов вычислительных методов алгебры
Глава 3 решение систем линейных алгебраических уравнений
П 3.1 Метод Гаусса решения систем линейных алгебраических уравнений
П 3.2 Метод Гаусса с выбором главного элемента для решения систем линейных алгебраических уравнений
П 3.3 Решение системы линейных алгебраических уравнений методом Жордана-Гаусса
П 3.4 Метод квадратного корня для решения систем линейных алгебраических уравнений
П 3.5 Вычисления определителя и нахождения обратной матрицы
П 3.6 Решение системы линейных алгебраических уравнений методом прогонки
П 3.7 Метод простых итераций решения систем линейных алгебраических уравнений
П 3.8 Метод Зейделя решения систем линейных алгебраических уравнений
П 3.9 Итерационные методы вариационного типа решения систем линейных алгебраических уравнений
Глава 4 вычисление собственных значений и собственных векторов матриц
П 4.1 Метод Данилевского для нахождения собственных значений и собственных векторов
П 4.3 qr-алгоритм для нахождения собственных значений матрицы
П 4.4 Метод Якоби для нахождения собственных значений и собственных векторов
П р и л о ж е н и я Приложение 1 Основные сведения о матрицах
Зафиксируем
,
,
и вычислим
G(1.222, 2.33, 4.61, 6.72) = 1.960553,
G(1.218, 2.33, 4.61, 6.72) = 1.963309.
Видно, что с возрастанием a1 убывает функция G.
Найдем границы G:
ВГ(G) = G(НГ(а1), ВГ(а2), ВГ(Т1), НГ(Т2)) = 1.984156,
НГ(G) = G(ВГ(а1), НГ(а2), НГ(Т1), ВГ(Т2)) =1.940027.
Видно, что различие в третьей цифре уже существенно.
Округляем НГ – с недостатком, ВГ – с избытком.
ВГ(G) = 1.99,
НГ(G) =1.94.
Тогда
,
.
Лабораторная работа № 1
Цель: изучить правила нахождения погрешностей и область неопределенности результата.
Задание
1. Округляя следующие числа до трех значащих цифр, определить абсолютную и относительную погрешности полученных приближенных чисел:
Варианты заданий
|
1 |
2,1514 |
6 |
-392,85 |
11 |
46,453 |
|
2 |
0,16152 |
7 |
0,1545 |
12 |
0,088748 |
|
3 |
0,01204 |
8 |
0,003922 |
13 |
0,34484 |
|
4 |
1,225 |
9 |
625,55 |
14 |
0,096835 |
|
5 |
-0,0015281 |
10 |
94,525 |
15 |
0,037862 |
2. Определить количество верных цифр в числе, если известна его a) абсолютная, b) относительная погрешности:
Варианты заданий
|
1 |
a) x=0.3941, Δx=0.25*10-2 b) a=1.8921, δa=0.1*10-2 |
2 |
a) x=0.1132, Δx=0.1*10-3 b) a=0.2218, δa=0.2*10-1 |
|
3 |
a) x=38.2543, Δx=0.27*10-2 b) a=22.351, δa=0.1 |
4 |
a) x=293.481, Δx=0.1 b) a=0.02425, δa=0.5*10-2 |
|
5 |
a) x=2.325, Δx=0.1*10-1 b) a=0.000135, δa=0.15 |
6 |
a) x=14.00231, Δx=0.1*10-3 b) a=9.3598, δa=0.1% |
|
7 |
a) x=0.0842, Δx=0.15*10-2 b) a=0.11452, δa=10% |
8 |
a) x=0.00381, Δx=0.1*10-4 b) a=48361, δa=1% |
|
9 |
a) x=-32.285, Δx=0.2*10-2 b) a=592.8, δa=2% |
10 |
a) x=-0.2113, Δx=0.5*10-2 b) a=14.9360, δa=1% |
|
11 |
a) x=8.3445, Δx=0.2*10-2 b) a=46.453, δa=0.15% |
12 |
a) x=0.38725, Δx=4.2*10-4 b) a=5.8425, δa=0.2% |
|
13 |
a) x=-6.4257, Δx=2.4*10-3 b) a=17.2834, δa=0.3% |
14 |
a) x=22.553, Δx=0.1*10-2 b) a=2.8546, δa=0.3% |
|
15 |
a) x=0.75244, Δx=0.1*10-4 b) a=-97041.6, δa=5% |
|
3. Произвести расчет по заданной формуле для приведенных исходных данных. Рассчитать границы, погрешность и значение результата.
Варианты заданий
|
|
где
|
|
|
где
|
|
|
где
|
|
|
где
|
|
|
где
|
|
|
где
|
|
|
где |
|
|
где
|
|
|
где
|
|
|
где
|
|
|
где |
|
|
где
|
|
|
где
|
|
|
где
|
|
|
где |
Глава 2 объектно-ориентированный подход к программированию методов линейной алгебры
Прямые методы линейной алгебры – это методы решения систем линейных алгебраических уравнений (СЛАУ) и методы решения проблемы собственных значений. Известно, что прямые методы теоретически базируются на тех или иных элементарных матричных преобразованиях, которые, в конечном счете, приводят задачу к эквивалентной, но более простой форме, допускающей ее непосредственное решение [21]. Набор таких преобразований сравнительно невелик. Исходя из технологии объектно-ориентированного программирования (ООП) эти преобразования могут быть представлены матричными операциями с объектами особого рода – абстрактными матрицами [21]. Важной методологической составляющей реализации технологии ООП в курсе изучения вычислительных методов алгебры является определение необходимого набора таких матриц и представление их классами единой матричной иерархии, наряду с основными функциональными матрицами. Далее все прямые методы линейной алгебры рассматриваются как композиции матричных преобразований. При этом их программная реализация основывается на организации обобщенного суперкласса вычислительных методов, применимого ко всем конкретным типам задач линейной алгебры.
В рамках предмета «Вычислительные методы алгебры» иерархия матричных классов может выглядеть следующим образом.
AbstractMatrix
Vector
DiagonalMatrix
ThreeDiagonalMatrix
EMatrix
SwapMatrix
SquareMatrix
FrobeniusMatrix
JacobiMatrix
AugmentMatrix
Вершиной матричной иерархии является абстрактный класс «AbstractMatrix», обобщающий свойства всех матриц. Далее иерархия продолжается тремя основными классами: «Vector» (Вектор), «SquareMatrix» (Квадратная матрица) и «AugmentMatrix»(Расширенная матрица). Эти классы объединяют основные функциональные группы элементарных матриц.
Класс «Vector» представлен тремя основными классами: «DiagonalMatrix» (Диагональная матрица), «ThreeDiagonalMatrix» (Трехдиагональная матрица), «EMatrix» (Единичная матрица),
Класс «DiagonalMatrix» определяет группу диагональных матриц, содержащих ненулевые элементы только на главной диагонали. На основе класса диагональных матриц строится класс «ThreeDiagonalMatrix» – трехдиагональных матриц.
Класс «EMatrix» представляет традиционный математический объект – единичную матрицу. Данный тип матрицы достаточно часто используется в вычислительной математике для представления более сложных матричных типов. В группе матриц «EMatrix» отдельно рассматривается класс матриц перестановок «SwapMatrix». Этот класс определяет элементарную перестановку пары столбцов или пары строк. Данный матричный класс соответствует преобразованиям переупорядочения столбцов и строк в основной матрице, которые обычно применяются в методах выбора главного элемента.
Класс «SquareMatrix» реализует семейство элементарных квадратных матриц. В рамках этого класса выделяют две группы – класс «FrobeniusMatrix» (Матрица Фробениуса), класс «JacobiMatrix» (Матрица Якоби). Эти классы необходимы для решения задач на собственные значения.
Класс «AugmentMatrix» представляет собой группу расширенных матриц.
Создание конкретного матричного класса в рамках ООП подхода сводится к реализации набора операций с элементарными матрицами [1; 21]. Этот набор определяется родительским классом «AbstractMatrix». Для основных матричных объектов виртуально определяются необходимые операции – получения и установки значения элемента, подсчета количества строк и столбцов матрицы, сложение, вычитание, умножение матриц. Операции матричного умножения определяются в двух вариантах, которые соответствуют левостороннему и правостороннему умножению.
Значительная часть операций непосредственно реализуется в верхних матричных классах. Тем не менее, переопределение их в конкретных классах с учетом частных математических свойств, особенностей конкретных структур данных позволяет при необходимости добиться наибольшей эффективности программного кода.
Представленная выше классификация элементарных матриц определяет базовый набор матричных преобразований, участвующих в методах линейной алгебры. Описанная классификация не является минимальной. Для более экономичной работы с памятью и эффективной организации вычислений целесообразно определять некоторые самостоятельные классы, соответствующие целым композициям тех или иных элементарных преобразований. Использование классов такого рода позволяет избежать затрат на избыточное хранение эквивалентных данных и оптимизировать сами процедуры матричных преобразований.
Другая возможность экономии памяти при проведении и хранении необходимых матричных преобразований состоит в размещении их непосредственно на месте основной матрицы. Техника in-рlасе размещения применяется при процедурной реализации матричных факторизаций. При объектной реализации следует предусмотреть специальные классы элементарных матриц в рамках единой иерархии, которые через ссылку на основную матрицу определяют методы доступа к ее сегментам, хранящим элементы преобразования [15; 21].
Для эффективного применения ООП необходимо также сами методы линейной алгебры рассматривать как реализацию объектов соответствующих классов в их целостной объектной классификации [21]. При этом классификация объектно-ориентированного подхода должна следовать классификации задач линейной алгебры, т.к. результатом решения различных постановок являются объекты разных типов, и это должно отражаться в спецификациях алгоритмических классов. Кроме того, в классификации желательно отразить деление алгоритмов на прямые и итерационные, поскольку принципы их организации существенно отличаются, а это неизбежно приводит к различиям в их программной реализации.
,
,
,
,
,
,
,
,
,