5. Пользовательский интерфейс программы

Поясним основную схему работы с программой. Прежде всего необходимо задать условие задачи. Определение условия задачи равносильно заданию:

1) матрицы;

2) вектора (правая часть);

3) целого числа — размерности матрицы;

4) двух чисел с плавающей точкой — границ спектра;

5) параметра.

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

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

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

Имеется возможность ввода матрицы (и параметров) из пяти файлов matrix1.dat, …, matrix5.dat.

Формат файлов matrix следующий:

N

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

Здесь N — размерность матрицы;  — элемент матрицы A;  — нижняя граница спектра;  — верхняя граница спектра; t — параметр.

Пользователю предоставляется возможность производить с матрицами следующие действия:

1) умножить текущую матрицу на сопряженную ей;

2) вычислить матрицу, обратную текущей;

3) запомнить текущую матрицу в стеке;

4) заменить текущую матрицу извлеченной из стека;

5) вычислить спектр текущей матрицы.

Редактирование текущей матрицы осуществляется аналогично вводу с клавиатуры, при этом у пользователя не запрашивается размерность матрицы.

В программе предусмотрен стек данных. Элементом стека является структура, состоящая из матрицы, вектора, значений границ спектра и параметра t. В стек помещаются все перечисленные выше текущие данные. Емкость стека ограничена только размером свободной памяти.