Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 Вычислительная математика практика 01-08.pdf
Скачиваний:
17
Добавлен:
05.06.2015
Размер:
550.13 Кб
Скачать

Теперь нужно перейти к функции finish и полностью ее определить. Сейчас функция просто возвращает 1.

Перед этим нужно описать цикл по количеству переменных (заданным аргументом N), в каждой итерации вычислить абсолютное значение указанной выше разности и сравнить со значением точности, заданным аргументом eps. Если абсолютное значение разности больше eps, функция возвращает ноль (и завершает работу).

После проверки на завершение нужно присвоить значения элементов массива X1 значениями соответствующих элементов массива X (с помощью дополнительного цикла типа for). И это конец функции siters1.

После завершения убеждаемся, что программа вычисляет необходимые значения результата. Если нет, находим и исправляем ошибки.

8.Переходим к функции siters2. Ее разработка очень проста, поскольку практически все уже сделано.

Напомним, что эта функция использует функцию slau, которая вычисляет новое приближение. Следовательно, нужно просто вызвать эту функцию, чтобы рассчитать новое приближение (функция slau передается в функцию siters2 как параметр ef). После этого нужно выполнить проверку на завершение и переприсвоение элементов массивов X1 и X. Фактически это 16 секунд работы. Выполняем и проверяем работу этой функции.

9.Переходим к функции siters3. Ее разработка также проста и вообще это самая простая функция из всех. Она состоит из следующих действий:

- проверка на зацикливание;

- вычисление нового приближения при помощи функции slau (функция slau передается в функцию siters3 как параметр ef);

- проверка на завершение;

- рекурсивный вызов самой себя; при этом параметры X и X1 меняются местами.

Оформляем код, проверяем работу.

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

Варианты СЛАУ

1)

2x1

+

2x2

+ 10x3

= 14

10x1

+

x2

+

x3

=

12

2x1

+ 10x2

+

x3

=

13

Точное решение: x1 = 1, x2 = 1, x3 = 1.

35