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

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. Транспонирование матриц