Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика Учебник НГТУ Семестр 2.docx
Скачиваний:
95
Добавлен:
27.03.2015
Размер:
4 Мб
Скачать
☆

28.11. Исключение элементов массивов

← 28.10. Возведение квадратной матрицы в целую...

28.12. Расчет определителя квадратной матрицы →

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

Сначала рассмотрим простой алгоритм исключения из одномерного массива X, содержащего n элементов, элемента с номером r. При таком исключении место элемента Xr должен занять элемент Xr+1, а его место – элемент Xr+2 и т.д. Общее число элементов в массиве уменьшится на единицу. Этот алгоритм представлен на рис. 28.21 а.

На рис. 28.21 б представлен алгоритм исключения из двумерного массива – матрицы строки ir и столбца jr. Принципиально он не отличается от предыдущего, только на одну позицию сдвигаются не отдельные элементы, а строки и столбцы.

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

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

← 28.10. Возведение квадратной матрицы в целую...

28.12. Расчет определителя квадратной матрицы

28.12. Расчет определителя квадратной матрицы

← 28.11. Исключение элементов массивов

28.13. Транспонирование матриц →

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

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

  • Преобразование выполняется за n-1 шагов.

  • На k-том шаге все элементы матрицы, лежащие ниже k-той строки и правее k-того столбца пересчитываются по формуле:

После приведения матрицы к треугольному виду вычисляется произведение диагональных элементов:

Блок-схема алгоритма представлена на рис. 28.23.

Для работы алгоритма при возможных нулевых элементах в главной диагонали (в исходной матрице или полученных при пересчете) рекомендуется использовать процедуру выбора главного элемента. Она заключается в перестановке строк матрицы на каждом шаге ее при-ведения к треугольному виду перед осуществлением пересчета. Отыскивается строка, содержащая в k-том столбце наибольший по абсолютной величине элемент, а затем производится перестановка местами k-той строки и строки с этим наибольшим элементом. Только после этого осуществляется деление на akk. Каждая перестановка меняет знак определителя на противоположный. Над этим вариантом алгоритма также рекомендуем подумать самостоятельно.

← 28.11. Исключение элементов массивов

28.13. Транспонирование матриц →