Решение систем линейных уравнений методом Гаусса с выбором максимального элемента

Исходная матрица ai,j может в общем случае иметь на диагонали нулевые элементы. Поэтому, для применения базовой процедуры приведения к треугольному виду (***), матрицу нужно преобразовать так, чтобы на диагонали стояли ненулевые элементы.

Так, для элемента a1,1

Решение систем линейных уравнений методом Гаусса с выбором максимального элемента - student2.ru

находим в области i≥1, j≥1 максимальный по модулю элемент a(imax, jmax) и совершаем перестановку строк:

imax меняется с первой строкой местами, то есть строка с номером imax становится первой строкой, а первая строка становится строкой с номером imax.

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

При перестановке строк необходимо переставить и элементы вектора b:

x=b(jmax)

b(jmax)=b(1)

b(1)=1

При перестановке столбцов переставляются векторы решений:

Решение систем линейных уравнений методом Гаусса с выбором максимального элемента - student2.ru x(jmax) x(1)

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

Введем вектора:

ni(n)=(1, 2, 3, …, n) – начальный порядок строк,

nj(n)=(1, 2, 3, …, n) начальный порядок столбцов.

Решение систем линейных уравнений методом Гаусса с выбором максимального элемента - student2.ru jmax 1

nj(1)=jmax

nj(jmax)=1

Так, если jmax =4 до перестановки nj (1, 2, 3, 4, 5, 6), после перестановки nj (4, 2, 3, 1, 5, 6).

В алгебре используется понятие характеристической функции матрицы. Характеристическая функция F(C) для матрицы A получается следующим образом:

F(C) = Det |A-E*C|,

здесь Det|A-E*C| определитель разности матрицы A и единичной матрицы E умноженной на неизвестную переменную величину C – аргумент характеристической функции. Так, например, для матрицы

Решение систем линейных уравнений методом Гаусса с выбором максимального элемента - student2.ru

характеристическая функция записывается следующим образом:

Решение систем линейных уравнений методом Гаусса с выбором максимального элемента - student2.ru

В данном случае, для матрицы 3x3 характеристическая функция представляет собой полином степени 3 и может иметь один или три действительных корня. Корни характеристического уравнения

F(C) = 0

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

Пример программного кода метода Гаусса с выбором максимального элемента на языке VFP:

PROCEDURE гаусс

LPARAMETERS a2,b2,x,n

DIMENSION a2(n,n),b2(n),x(n)

LOCAL ARRAY x1(n),ix(i),a(n,n),b(n)

LOCAL i,j,k,l,m,im,jm,i1,j1,aa,s

* задаем рабочую матрицу и рабочие правые части

FOR i=1 TO n

b(i)=b2(i)

ENDFOR

FOR i=1 TO n

FOR j=1 TO n

a(i,j)=a2(i,j)

ENDFOR

ENDFOR

* массив для хранения номеров элементов вектора решений X

FOR i=1 TO n

ix(i)=i

x(i)=0

x1(i)=0

ENDFOR

FOR k=1 TO n-1

* ищем индексы максимального элемента в матрице k x k

im=k

jm=k

max_a=ABS(a(im,jm))

FOR i1 = k TO n

FOR j1 = k TO n

IF ABS(a(i1,j1))>max_a

max_a=ABS(a(i1,j1))

im=i1

jm=j1

ENDIF

ENDFOR

ENDFOR

* переставляем строки k и im

FOR l=k TO n

aa=a(k,l)

a(k,l)=a(im,l)

a(im,l)=aa

ENDFOR

aa=b(k)

b(k)=b(im)

b(im)=aa

* переставляем столбцы k и jm

FOR l=1 TO n

aa=a(l,k)

a(l,k)=a(l,jm)

a(l,jm)=aa

ENDFOR

* переставляем номера k и jm компонент вектора решений X

aa=ix(k)

ix(k)=ix(jm)

ix(jm)=aa

* приводим к треугольному виду

FOR l=k+1 TO n

p=a(l,k)/a(k,k)

FOR m=k TO n

a(l,m)=a(l,m)-a(k,m)*p

ENDFOR

b(l)=b(l)-b(k)*p

ENDFOR

ENDFOR

* вычисляем x

FOR k=n TO 1 STEP -1

s=0

FOR l=k+1 TO n

s=s+a(k,l)*x1(l)

ENDFOR

x1(k)= (b(k)-s)/a(k,k)

ENDFOR

FOR i=1 TO n

x(ix(i))=x1(i)

ENDFOR

ENDPROC

Контрольные вопросы

1. Дать определение системы линейных уравнений.

2. Дать определение вырожденной матрицы.

3. Привести алгоритм метода Гаусса.

4. Привести алгоритм метода Гаусса с выбором максимального элемента.

5. Привести алгоритм приведения матрицы к треугольному виду.

6. Привести алгоритм определения вектора решения системы линейных уравнений, приведенной к треугольному виду (обратный ход метода Гаусса).

7. Дать определение совместности системы линейных уравнений методом Гаусса.

8. Привести алгоритм табуляции характеристической функции.

Задания

Используя метод Гаусса, решить систему линейных уравнений с точностью до 0,0001.

1.

3,21x1 – 4,25x2 + 2,13x3 = 5,06;

7,09x1 + 1,17x2 – 2,23x3 = 4,75;

0,43x1 – 1,4x2 – 0,62x3 = – 1,05.

2.

0,42x1 – 1,13x2 + 7,05x3 = 6,15;

1,14x1 – 2,15x2 + 5,11x3 = – 4,16;

– 0,71x1 + 0,81x2 – 0,02x3 = – 0,17.

3.

2,5x1 – 3,12x2 – 4,03x3 = – 7,5;

0,61x1 + 0,71x2 – 0,05x3 = 0,44;

– 1,03x1 – 2,05x2 + 0,877x3 = – 1,16.

4.

7,09x1 + 1,17x2 – 2,23x3 = – 4,75;

0,43x1 – 1,4x2 – 0,62x3 = –1,05;

3,21x1 – 4,25x2 + 2,13x3 = 5,06.

5.

1,14x1 – 2,15x2 – 5,11x3= – 4,16;

– 0,71x1 + 0,81x2 – 0,02x3 = – 0,17;

0,42x1 – 1,13x2 + 7,05x3 = 6,15.

6.

0,61x1 + 0,71x2 – 0,05x3 = 0,44;

– 1,03x1 – 2,05x2 + 0,87x3 = – 1,16;

2,5x1 – 3,12x2 – 5,03x3 = – 7,5.

7.

3,11x1 – 1,66x2 – 0,60x3 = – 0.92;

– 1,65x1 + 3,51x2 – 0,78x3 = 2,57;

0,60x1 + 0,78x2 – 1,87x3 = 1,65.

8.

0,10x1 + 12x2 – 0,13x3 = 0,10;

0,12x1 + 0,71x2 + 0,15x3 = 0,26;

– 0,13x1 + 0,15x2 + 0,63x3 = 0,38.

9.

0,71x1 + 0,10x2 + 0,12x3 = 0,29;

0,10x1 + 0,34x2 – 0,04x3 = 0,32;

0,12x1 – 0,04x2 + 0,10x3 = – 0,10.

10.

0,34x1 – 0,04x2 + 0,10x3 = 0,33;

– 0,04x1 + 0,10x2 + 0,12x3 = – 0,05;

0,10x1 + 0,12x2 + 0,71x3 = 0,28.

11.

0,12x1 – 0,43x2 + 0,14x3 = –0,17;

–0,07x1 + 0,34x2 + 0,72x3 = 0,62;

1,18x1 – 0,08x2 – 0,25x3 = 1,12.

12.

1,17x1 + 0,53x2 – 0,84x3 = 1,15;

0,64x1 – 0,72x2 – 0,43x3 = 0,15;

0,32x1 + 0,43x2 – 0,93x3 = –0,48.

13.

0,66x1 – 1,44x2 – 0,18x3 = 1,83;

0,48x1 – 0,24x2 + 0,37x3 = – 0,84;

0,86x1 + 0,43x2 + 0,64x3 = 0,64.

14.

0,82x1 + 0,43x2 – 0,57x3 = 0,48;

–0,35x1 + 1,12x2 – 0,48x3 = 0,52;

0,48x1 + 0,23x2+0,37x3 = 1,44.

15.

1,6x1 + 0,12x2 + 0,57x3 = 0,18;

0,38x1 + 0,25x2 – 54x3 = 0,63;

0,28x1 + 0,46x2 – 1,12x3 = 0,88.

16.

1,16x1 + 1,3x2 – 1,14x3 = 0,43;

0,83x1 – 0,48x2 – 2,44x3 = –0,15;

2x1 – 0,16x2 + 1,3x3 = 1,5.

17.

0,10x1 – 0,04x2 – 0,13x3 = – 0,15;

– 0,04x1 + 0,34x2+0,05x3 = 0,31;

–0,13x1 + 0,05x2 + 0,63x3 = 0,37.

18.

0,63x1 + 0,05x2 + 0,15x3 = 0,34;

0,05x1 + 0,34x2 + 0,10x3 = 0,32;

0,15x1 + 0,10x2 + 0,71x3 = 0,42.

19.

1,20x1 – 0,20x2 + 0,30x3 = –0,60;

– 0,20x1 + 1,60x2 – 0,10x3 = 0,30;

– 0,30x1 + 0,10x2 – 1,5x3 = 0,40.

20.

0,30x1 + 1,20x2 – 0,20x3 = –0,60;

– 0,10x1 – 0,20x2 + 1,60x3 = 0,30;

–1,50x1 – 0,30x2 + 0,10x3 = 40.

21.

0,20x1 + 0,44x2 + 0,81x3 = 0,74;

0,58x1 – 0,29x2 + 0,05x3 = 0,02;

0,05x1 + 0,34x2 + 0,10x3 = 0,32.

22.

6,36x1 + 11,75x2 + 10x3 = –41,70;

7,42x1 + 19,03x2 + 11,75x3 = –49,49;

5,77x1 + 7,42x2 + 6,36x3 = –27,67.

23.

0,40x1 + 0,11x2 + 0,18x3 = 0,47;

0,28x1 – 0,59x2 + 0,03x3 = 0,01;

0,02x1 + 0,24x2 + 0,10x3 = 0,22.

24.

0,18x1 + 0,25x2 – 0,44x3 = 1,15;

0,42x1 – 0,35x2 + 1,12x3 = 0,86;

1,14x1 + 0,12x2 – 0,83x3 = 0,68.

25.

1,2x1 + 0,18x2 – 0,42x3 = 1,5;

0,44x1 + 0,36x2 + 0,12x3 = 1,16;

0,36x1 – 0,42x2 – 0,22x3 = 0,15.

26.

0,64x1 – 0,43x2 + 0,57x3 = 0,43;

0,56x1 + 0,12x2 – 0,27x3 = 0,88;

0,63x1 – 0,83x2 + 0,43x3 = – 0,12.

27.

1,60x1 + 2,18x2 – 0,72x3 = 1,15;

0,43x1 – 0,16x2 + 0,53x3 = 0,83;

0,34x1 + 0,57x2 – 0,83x3 = – 0,42.

28.

0,8x1 – 0,13x2 + 0,63x3 = 1,15;

0,42x1 + 0,57x2 + 0,32x3 = 0,84;

0,54x1 + 0,62x2 – 0,32x3 =0,25



Наши рекомендации