Файл: Маркова Вычислит методы алгебры Практикум.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.09.2025

Просмотров: 1169

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Л.В. Маркова, е.А. Корчевская,

С о д е р ж а н и е

П р е д и с л о в и е

Глава 1 Элементы теории погрешностей п 1.1 Источники погрешностей

П 1.2 Вычисление абсолютной и относительной погрешностей

П 1.3 Округление чисел

П 1.4 Вычисление погрешностей арифметических операций

П 1.5 Оценка погрешности по способу границ

Лабораторная работа № 1

Задание

Глава 2 объектно-ориентированный подход к программированию методов линейной алгебры

П 2.1 Создание матричной иерархии классов

Лабораторная работа № 2

Задание

П 2.2 Создание иерархии классов вычислительных методов алгебры

Лабораторная работа № 3

Задание

Глава 3 решение систем линейных алгебраических уравнений

П 3.1 Метод Гаусса решения систем линейных алгебраических уравнений

Лабораторная работа № 4

Задание

П 3.2 Метод Гаусса с выбором главного элемента для решения систем линейных алгебраических уравнений

Лабораторная работа № 5

Задание

П 3.3 Решение системы линейных алгебраических уравнений методом Жордана-Гаусса

Лабораторная работа № 6

Задание

П 3.4 Метод квадратного корня для решения систем линейных алгебраических уравнений

Лабораторная работа № 7

Задание

П 3.5 Вычисления определителя и нахождения обратной матрицы

Лабораторная работа № 8

Задание

П 3.6 Решение системы линейных алгебраических уравнений методом прогонки

Лабораторная работа № 9

Задание

П 3.7 Метод простых итераций решения систем линейных алгебраических уравнений

Лабораторная работа № 10

Задание

П 3.8 Метод Зейделя решения систем линейных алгебраических уравнений

Лабораторная работа № 11

Задание

П 3.9 Итерационные методы вариационного типа решения систем линейных алгебраических уравнений

Лабораторная работа № 12

Задание

Глава 4 вычисление собственных значений и собственных векторов матриц

П 4.1 Метод Данилевского для нахождения собственных значений и собственных векторов

Лабораторная работа № 13

Задание

П 4.2 Итерационный степенной метод нахождения наибольшего по модулю собственного значения и соответствующего собственного вектора

Лабораторная работа № 14

Задание

П 4.3 qr-алгоритм для нахождения собственных значений матрицы

Лабораторная работа № 15

Задание

П 4.4 Метод Якоби для нахождения собственных значений и собственных векторов

Лабораторная работа № 16

Задание

П р и л о ж е н и я Приложение 1 Основные сведения о матрицах

Функции MathCad

Л и т е р а т у р а

Красоткина вычислительные методы алгебры. Практикум

2 10038, Г. Витебск, Московский проспект, 33.

П 3.7 Метод простых итераций решения систем линейных алгебраических уравнений

Рассмотрим метод простых итераций [19]. Имеем систему линейных алгебраических уравнений

(1)

или в матричном виде . (2)

Приведем систему (1) к эквивалентному виду

(3)

или в матричной форме

,(4)

где , , .

Такое приведение может быть выполнено различными способами.

Итерационную последовательность векторов

(5)

называют методом простых итераций. Вектор начального приближения выбирается произвольно. В качестве начального приближения вектора неизвестных можно также принимать вектор правых частей: , т.е. .

В качестве критерия сходимости метода простых итераций имеет место следующее утверждение [20]:

Для того чтобы метод простой итерации сходился при любом начальном приближении , необходимо и достаточно, чтобы , где  все собственные значения матрицы В. Метод будет сходиться также в случае

, (6)

так как , где  первая или вторая норма матрицы.


Таким образом выбор матрицы В для системы (5) метода простой итерации должен подчиняться требованиям сходимости и не может быть совсем произвольным.

Если матрица А имеет диагональное преобладание, т.е. ее элементы удовлетворяют неравенствам

(7)

то в качестве матрицы В можно задать матрицу с элементами

(8)

В этом случае систему (1) в эквивалентном виде (3) можно записать следующим образом:

(9)

т.е.

,

Описанная модификация метода простой итерации, связанная с делением уравнений на диагональные элементы матрицы системы, называется методом Якоби [10].

Если ,то для метода простых итераций известна оценка погрешности [18]:

, (10)

где  точное решение.

Выход из итерационного процесса осуществляется по результатам выполнения неравенства

, (11)

где  заданная точность, которую необходимо достигнуть при решении исходной задачи и . Заменив (11) более простым условием и используя понятие первой нормы вектора, получим условие прерывания итерационного процесса в виде

.(12)

Пример 1. Методом простых итераций решить систему линейных уравнений с точностью , приведя ее к виду, удобному для итераций.


Решение:

Очевидно, что матрица этой системы не удовлетворяет условиям диагонального преобладания. Переставим уравнения местами так, чтобы выполнялось условие преобладания диагональных элементов.

Преобразуем эту систему к эквивалентному виду (5). Для этого выразим из первого уравнения , из второго , из третьего , получаем

Имеем

, .

Заметим, что , следовательно, условие сходимости выполнено.

Зададим вектор начального приближения .

Выполним расчеты по формуле (6)

На первой итерации имеем систему

.

Условие окончания итерационного процесса не выполняется, значит продолжаем процесс. На второй итерации получаем систему

.

Условие окончания итерационного процесса не выполняется, продолжаем итерировать до требуемой точности.

На пятой итерации требуемая точность достигнута

.

Пример 2. Описать алгоритм метода простой итерации на языке программирования С++.

При описании алгоритма используются объекты и методы классов «SquareMatrix», «Vector».


void IterationMethods :: simpleIterationMethod(SquareMatrix A, Vector f, double tochnost){

/* Создание вспомогательной матрицы В, векторов g, x1 и вектора решений x */

SquareMatrix B = SquareMatrix(A.getRowCount());

Vector g = Vector(A.getColCount());

Vector x = Vector(A.getColCount());

Vector x1 = Vector(A.getColCount());

/* Получение канонического вида системы: X = BX + g, т.е. матрицы В и g */

for (int i = 0; i < A.getRowCount(); i++){

for (int j = 0; j < A.getColCount(); j++){

if ( i == j){

B.setElement(i, j, 0);

}

if (i != j){

B.setElement(i,j,-A.getElement(i,j)/A.getElement(i, i));

}

}

g.setElement(i, f.getElement(i)/A.getElement(i, i));

}

/* Построение итерационной последовательности и вычисление значения вектора на текущей итерации по формуле X(k+1) = BX(k) + g */

.................................................

/*Вывод вектора решений*/

}

Данный алгоритм основан на матричном представлении метода простой итерации. Однако можно обойтись без построения матрицы В и вектора g, воспользовавшись непосредственно формулами (10) для описания итерационного процесса. Это позволит сэкономить вычислительные ресурсы.


Лабораторная работа № 10

Цель: изучить метод простых итераций решения систем линейных алгебраических уравнений.

Задание

1. В классе «Итерационные методы решения СЛАУ» («IterationMethods») реализуйте метод простых итераций («simpleIterationMethod»). Для реализации методов используйте объекты и методы матричных классов «SquareMatrix», «Vector».

2. Решите систему линейных алгебраических уравнений методом простых итераций () в соответствии с вариантом.

3. Решите те же задачи, используя пакет для математических вычислений.

4. Сравните результат выполнения п. 2 с решением, полученным в п. 3.

Варианты заданий

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16