6CAD-CAE-23 Упорядочение (Материалы к лекциям)

2017-06-17СтудИзба

Описание файла

Файл "6CAD-CAE-23 Упорядочение " внутри архива находится в папке "Материалы к лекциям". Документ из архива "Материалы к лекциям", который расположен в категории "". Всё это находится в предмете "cad-cae-системы" из 6 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "cae-cad системы" в общих файлах.

Онлайн просмотр документа "6CAD-CAE-23 Упорядочение "

Текст из документа "6CAD-CAE-23 Упорядочение "

47

Столярчук В.А. “CAD/CAE - системы”. Материалы к лекциям. Лекции №23

Лекция № 23

11. Алгоритмы упорядочения разреженных матриц

Оглавление

11.1. Особенности решения матричных уравнений. 2

11.2. Проблема упорядочения 9

11.3. Матрицы и графы 17

11.4. Методы упорядочения матриц и сопутствующие алгоритмы. 22

11.4.1.Ленточные методы 22

11.4.2. Профильные методы. 29

11.4.3. Универсальные разреженные методы. 39

11.4.4. Определение начального узла 42

11.5. Сравнение методов упорядочения матриц. 46

Общие сведения о матрицах.

А + В = В + А

АВ≠ВА;

АВ=С;

Транспонированная матрица АТ получается отражением матрицы А относительно её диагонали, т.е. .

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

Единичная матрица обязательно квадратная. IA = AI.

Обратная матрица А-1 есть такая матрица, для которой выполняется равенство А-1А=1. Не всякая матрица имеет обратную. Действительно, произведение АВ может быть равным нулю, даже если А или В не были нулевым матрицами

.

Если матрица имеет обратную, то о ней говорят, что она не вырожденная.

Следующие высказывания эквивалентны:

матрица А – невырожденная;

обратная матрица А-1 существует;

столбцы матрицы А линейно независимы;

строки матрицы А линейно независимы;

равенство Ах = 0 означает, что х = 0.

Задача решения линейных уравнений состоит в нахождении такого

Вектора х по данной матрице А и данному вектору b, для которого выполняется равенство Ах = b.

Если матрица невырожденная (тем самым А – квадратная), то эта задача всегда имеет единственное решение для любого b.

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

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

Система уравнений называется однородной, если правая часть равна нулю, например, Ах = 0.

11.1. Особенности решения матричных уравнений.

Алгоритм Гауссова исключения.

Система уравнений, которую надо решить есть Ах = b.

Матрица А записывается в виде A = LU, где L и U нижняя и верхняя треугольные матрицы. Тогда:

LUx = b , которое преобразуется в , после чего решаются два уравнения с треугольными матрицами.

В алгоритме Гауса процесс исключения состоит из n-1 шагов

А(K+1) = L(K)A(K)

и начинается с матрицы А(1)

Элементы матрицы А(K+1) находятся по формуле:

aij(K+1)=aij(K) - Кп, где Кп = aiK(K) aKi(K)/ aKK(K) ;

Конечным результатом исключения является верхняя треугольная матрица U=A(U) , а весь процесс эквивалентен вычислению треугольного разложения:

A = LU, где L = Ln , Ln-1, .......L2, L1 , а U = А(n+1)

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

LUx = b , которое преобразуется в , после чего производится обратная подстановка. Повторим: U и L - верхняя и нижняя треугольные матрицы.

Ясно, что вычисления упростятся, если одна или более из величин формулы процесса факторизации

aij(K+1)=aij(K) - aiK(K) aKi(K) / aKK(K), входящих в правую часть, будут равны нулю. Отметим этот немаловажный факт.

Представим алгоритм Гаусса на каком-либо языке программирования в компактной форме. Алгоритм Гаусса строит верхнюю треугольную матрицу U и матрицу множителей L на месте матрицы А, так, что элементы матрицы А не сохраняются.

Исключение Гаусса с частичным выбором ведущего элемента

для решения системы Ах=b

Цикл по столбцам А

For K=1 to U-1 do

Поиск максимального по модулю элемента в столбце

imax = индекс строки такой, чтоajmax,K= maxaiK i K

Проверка на нуль ведущего элемента (на вырожденность)

BUFFER - машинно-зависимая константа, оценивающая величину ошибок округления

IFajmax,K BUFFER, то перейти на конец цикла К.

Перестановка строк с индексами К и IMAX

For j=1 to n переставить aKj и aimax

Перестановка соответствующих правых частей

Переставить bK и bimax

Цикл по строкам

For i=K+1 to U do

Вычисление множителей и запоминание их в столбце К

m=aiK - aiK/aKK

Цикл по элементам строки I

For j=K+1 to N do

aij=aij - m * aKj

Вычисление правой части строки I

bi=bi - m * bK

Конец цикла по i.

Конец цикла по K.

Обратная подстановка

Цикл по строкам в обратном порядке

For i=N to 1 do

Подстановка известных компонент решения в правую часть.

Проверка на нуль ведущего элемента

IF(aij> BUFFER) then xi=r / aij

Проверка на нуль правой части

Присвоить нуль компоненте решения и печать сообщения

Else IFr BUFFER then xi=0

или печать сообщения об ошибке

else печать несовместимая система, А - вырождена.

Конец цикла по i.

Матрицы L и U хранятся на месте матрицы А. Каждый множитель помещен на месте обнуляемого элемента А.

В обычной записи:

a11X1+a12X2+a13X3+...+a1nXn=b1

a21X1+a22X2+a23X3+...+a2nXn=b2

a31X1+a32X2+a33X3+...+a3nXn=b3

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

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

an1X1+an2X2+an3X3+...+annXn=bn

......,

a21X1+a22X2+a23X3+...+a2nXn=b2

a11 X1+a12 X2+a13 X3+...+a1n Xn=b1

Масштабирование и анализ машинного нуля.

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

С математической точки зрения было бы правильно положить BUFFER=0, однако на практике этого сделать нельзя. Числа которые при использовании такой арифметики должны быть нулями, почти наверняка не равны нулю при использовании арифметики с плавающей точкой из-за ошибок округления. Чтобы определить, является ли число нулем, необходимо рассмотреть два вида масштабов:

масштаб представления чисел в исходной задаче и

масштаб представления чисел в машине.

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

Однако это было бы абсолютно неправильным, если все элементы матрицы А имели бы порядок 10(-8). Таким образом целесообразно масштабировать систему так, чтобы все элементы были порядка 1 и тогда было бы правильным считать, что малые числа порядка 1,210(-10) представляют собой помехи из-за ошибок округления.

Существует два естественных способа масштабирования системы Ax=b.

a) Мы можем умножить уравнения на некоторый множитель (например, на 108, если элементы аij имеют порядок 10(-8)) для выравнивания коэффициентов.

b) Мы можем умножить также столбцы матрицы А: это соответствует изменению единиц измерения неизвестных (например, переходу от сантиметров к метру).

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

Например:

К счастью, большинство задач могут быть масштабированы.

Решающим является выбор единиц измерения (они определяют величину изменения масштаба), которые естественны для задачи и которые не искажают соотношений между размерами объектов.

Наиболее простой способ масштабирования состоит в таком умножении каждой строки (уравнения), чтобы наибольший элемент строки был равен 1.

В предположении, что это сделано, перейдем к выбору величины BUFFER.

Если машина имеет t разрядов с основанием b, то в качестве значения BUFFER может быть всего С*b(-t), где С - некоторое небольшое число (3  4) и должно постепенно расти с увеличением порядка матрицы.

Над каждым элементом аij выполняется самое большое 2n2 арифметических операций, поэтому С=n2 - самое большое значение, которое следует рассматривать. Вообще C=n достаточно надежный выбор.

Подведем итоги:

  1. Вычисления более устойчивы (менее чувствительны к изменениям), если все элементы матрицы приблизительно одинаковы.

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

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

  4. Для получения LU - разложения исключением Гаусса требуется порядка операций сложения и умножения.

Отметим дополнительно следующее:

б) формулами процесса факторизации пользуются,

если aiK(K) 0 и aKj(K) 0.

в) новый элемент возникает, если aij(K) =0 , а aij(K+1) 0

Последнее явление называют заполнением.

Но есть ещё одно свойство метода Гаусса. Одной из наиболее простых форм матриц, уменьшающей заполнение при использовании метода Гаусса, является ленточная форма. Обратная подстановка в методе Гаусса не порождает новых ненулевых элементов. Новые ненулевые элементы создаются только при прямом исключении.

Поясним эффект заполнения, возникающий в разложении Гаусса.

Пример 1.

Дана система уравнений.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее