Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_1(СЛАУ).doc
Скачиваний:
37
Добавлен:
08.11.2019
Размер:
1.43 Mб
Скачать

1.1.6. Точные методы расчёта слау

Для решения систем линейных уравнений предложено множество способов. Знаменитый метод, называемый формулами Крамера, выражает каждую компоненту решения отношением двух определителей. Если попытаться воспользоваться формулами Крамера и решить систему из 30 уравнений, то потребуется вычислить 31 определитель порядка 30. Если делать это «в лоб», то для решения линейной системы понадобиться умножений и приблизительно такое же число сложений. На компьютере с быстродействием 1 миллиард умножений в секунду одна только мультипликативная часть вычисления определителя займёт лет. Всё же у формул Крамера есть одно привлекательное свойство: в них компоненты решения вычисляются независимо друг от друга. По этой причине они могут оказаться вполне применимыми для некоторых специальных типов задач на параллельных компьютерах.

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

.

Наилучший способ решения этой «системы» - деление.

.

Использование «обратной матрицы» привело бы к вычислению

.

Второй способ требует больше арифметики – деление и умножение вместо одного деления – и даёт менее точный результат.

Всё сказанное справедливо и для систем со многими уравнениями.

1.1.6.1. Классический метод Гаусса

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

Пусть необходимо решить СЛАУ (1.2) и пусть (ведущий элемент).

Метод Гаусса или метод последовательного исключения неизвестных основан на приведении матрицы коэффициентов к верхнему треугольному виду. При этом алгоритм решения системы (1.2) следующий.

  1. С помощью двух циклов с управляющими переменными и организуем ввод коэффициентов и .

  2. Проводим прямой ход исключения переменных путём преобразования коэффициентов по формулам:

где , .

В конце этих преобразований получим

.

  1. Организуем обратный ход (последовательное нахождение корней ), проводя вычисления по формулам:

где .

В результате формируется массив неизвестных

.

Пример 1.5

{Прямой ход исключения переменных}

For i:= 1 to N-1 do

For j:= i+1 to N do

begin

a[j,i]:= - a[j,i]/a[i,i];

b[j]:= b[j] + a[j,i]*b[i];

For k:= i+1 to N do

begin

a[j,k]:= a[j,k] + a[j,i]*a[i,k];

end;

end;

{Обратный ход: последовательное нахождение корней }

x[N]:= b[N]/a[N,N];

For i:= N-1 downto 1 do

begin

h:= b[i];

For j:= i+1 to N do

h:= h - x[j] * a[i,j];

x[i]:= h/a[i,i];

end;

Второй вариант программы под Delphi

Procedure Gauss(A:TMatrix; B:TVector; Var X:TVector);

{Классический метод Гаусса}

Var