русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Метод Гаусса.


Дата добавления: 2014-11-28; просмотров: 893; Нарушение авторских прав


Напомним метод Гаусса решения системы линейных уравнений Ах=b. Для простоты, будем считать А невырожденной матрицей, и все ее угловые миноры отличны от нуля. Положим , . Матрицу коэффициентов при неизвестных на k-ом шаге обозначим через А(k), правые части уравнений — через b(k), матрицу — через . На k-1 шаге система уравнений имеет вид:

Из предложения о невырожденности угловых миноров А следует .

Итерация метода Гаусса заключается в исключении из всех уравнений, кроме k-го, переменной . Для этого из i-го уравнения, где i=1,…,n, i≠k, вычтем k-ое уравнение, умноженное на . Таким образом, , и , при . Или, что тоже самое , и .

Рациональный вариант метода Гаусса, его трудоемкость

Выразим элементы через элементы исходной системы . Для этого обозначим через минор матрицы , расположенный на пересечении строк и столбцов . На k-ом шаге ко всем строкам матрицы прибавлялись k-ая строка с некоторыми коэффициентами. Следовательно, любой минор, матрицы , содержащий k-ую строку, не изменяется на k-ой итерации алгоритма. Таким образом, каждый минор матрицы , содержащий первые k-строк, совпадает с соответствующим минором матрицы . Обозначим через множество номеров 1,2,…,k. В силу сказанного выше, справедливы равенства , , при i,j>k, и при , j>k. Матрица - диагональная, - верхнетреугольная, - отличается от диагональной матрицы только i-ым столбцом. Во всех случаях, их определитель равен произведению элементов, расположенных на главной диагонали. Тем самым установлены тождества , при i,j>k, и при , j>k. Все элементы матрицы , расположенные в первых k столбцах матрицы и не лежащие на главной диагонали, равны нулю. Следовательно, элементы матрицы , расположенные в первых k столбцах, на k-ой итерации метода Гаусса не изменятся. В частности, , где , и . Подставим полученное равенство в установленные ранее тождества, выведем равенства , при i,j>k, и при , j>k. Преобразуем полученные равенства к виду , при i,j>k, и при , j>k.



Ниже нам понадобится неравенство Адамара для определителя матрицы A

Заметим, что из полученных формул следует, что все промежуточные величины в методе Гаусса, ограничены сверху полиномом от длины входной информации. Пусть элементы — целые числа, не превосходящие по абсолютной величине α. Тогда любой минор k-го порядка этой матрицы, по неравенству Адамара, не превосходит . Таким образом, числитель и знаменатель элементов не превосходит , и длина не больше 2n(log α + log n). Отметим, эти рассуждения верны, если числитель и знаменатель каждого рационального числа сокращать на их наибольший делитель. Число элементарных арифметических операций метода Гаусса . Общая трудоемкость метода получается .

Полностью целочисленный вариант метода Гаусса

Данная трудоемкость получается при использовании рациональной арифметики. Однако, можно обойтись и без использования рациональной арифметики. Отметим, что общий знаменатель i-ой строки матрицы равен при i>k и при i≤k. Помножив каждую строку матрицы на ее общий знаменатель, получим целочисленную матрицу .

Выведем формулы пересчета от матрицы к . Величина равна при i>k, при i=k, и при i<k. Отметим, что . По формулам пересчета от матрицы к выводим, при i>k, при i<k, и . Подставим в эти формулы вместо элементов матрицы их выражение через элементы матрицы получим равенства при , и .

Из вышесказанного вытекает следующий вариант метода Гаусса:

d:=1 {ячейка для хранения }

k:=1 {номер итерации}

F:=true {признак невырожденности матрицы}

while (k<=n) and F do begin

if A[k, k]=0 {проверка ведущей строки}

then begin

i:=k+1;

while (i<=n) and (A [i,k]=0) do i:=i+1;

if i<=n {ведущая строка найдена}

then begin j:=k; {перестановка строк i и k}

while j<=n do begin c:=A[i,j]; A[i,j]:=A[k,j]; A[k,j]:=c; j:=j+1; end;

c:=b[i]; b[i]:=b[k]; b[k]:=c; end

else F:=false; {матрица вырождена}

end;

if F

then begin {k-ая итерация}

i:=1; {номер строки}

while i <=n do begin

if i <>k

then begin

for j:=k+1 to n do A[i,j]:=(A[i,j]xA[k, k]-A[k,j]xA[i,k])/d;

b[i]:=(b[i] x A[k,k] - b[k] x A[i,k])/d.

А[i,k]:=0;

A[i,i]:=A[k,k];

end;

i:=i+1; end;

end;

d:=A[k,k];

k:=k+1;

end;

 

Трудоемкость этого метода, при использовании самого быстрого алгоритма умножения, равна . Выигрыш, по сравнению с предыдущей версией алгоритма, здесь достигается за счет отказа от использования операции взятия наибольшего общего делителя чисел. Отметим, что после работы алгоритма, в ячейке d будет храниться определитель матрицы А. Если в качестве b взять столбцы единичной матрицы, то в качестве решения будут получаться столбцы присоединенной матрицы. Таким образом, трудоемкость нахождения обратной, присоединенной матрицы и определителя равна . Описанный алгоритм легко модифицируется для нахождения общего решения системы линейных уравнений Ах=b в общем случае, когда А — прямоугольная матрица.



<== предыдущая лекция | следующая лекция ==>
Метод Ньютона в p-адической арифметике. | Решение СЛУ над кольцом целых чисел


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.158 сек.