Смекни!
smekni.com

Точные методы численного решения систем линейных алгебраических уравнений (стр. 2 из 3)

Имеем:


;

;

;

;

.

Переходим к заполнению второго столбца раздела II, начиная со второй строки. Пользуясь формулами, определяем

:

;

;

.

Далее определяя по формулам, заполняем вторую сетку для раздела II:

Затем переходим к третьему столбцу, вычисляя его элементы

и
по формулам и т.д., пока не будет заполнена вся таблица раздела II. Таким образом, заполнение раздела II происходит способом “елочки”: столбец - строка, столбец - строка и т.д.

В разделе Ш, пользуясь формулами, определяем

и
.

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

I
3 1 -1 2 6 11
I
-5 1 3 -4 -12 -17
I
2 0 1 -1 1 3
I
1 -5 3 -3 3 -1
II
│1
3│1 0.333333 -0.333333 0.666667 2 3.666667
II
│1
-5 2.666667│1 0.5 -0.25 -0.75 0.5
II
│1
2 -0.666667 2│1 -1.25 -1.75 -2
II
│1
1 -5.333333 6 2.5│1 3 4
III
2 1
III
-0.75 -1
III y3
-1.75 2
III y4
3 3

3. Практическая реализация метода Халецкого

3.1 Программа на языке Pascal

program kursovaya;

uses crt;

const sizemat=10;

type mattype=array[1..sizemat,1..sizemat] of double;

mattype1=array[1..sizemat] of double;

{Процедура для вывода матрицы на экран}

procedure writemat (var a:mattype; n,m:byte);

var i,j:byte;

begin

writeln;

for i:=1 to n do

begin

for j:=1 to m do

write(a[i,j]:7:3,' ');

writeln

end;

end;

{Процедура для ввода значений элементов матрицы}

procedure inputmat (var a:mattype;var d:mattype1; var n:byte);

var i,j:byte;

begin

writeln;

write ('Введите размер матрицы = ');

readln(n);

writeln;

writeln('Введите матрицу:');

writeln;

for i:=1 to n do

for j:=1 to n do

read (a[i,j]);

writeln;

writeln('Введите свободные коэффициенты:');

writeln;

for i:=1 to n do

readln(d[i]);

writeln;

end;

{Процедура получения двух треугольных матриц, произведение которых равно исходной матрице}

procedure getBnC(var a,b,c:mattype; n:byte);

var k,i,a1,j:byte;

begin

for k:=1 to n do

for i:=1 to n do

begin

if k=i then c[k,i]:=1

else c[k,i]:=0;