program LinearSystemSolver;
uses
SysUtils;
type
TMatrix = array[1..6, 1..7] of Double; // 6x7 матрица (6 уравнений с 7 коэффициентами)
TVector = array[1..6] of Double; // Вектор из 6 элементов
procedure SolveLinearSystem(var Matrix: TMatrix; var Solution: TVector);
var
i, j, k, m: Integer;
Temp: Double;
begin
// Метод Гаусса с выбором главного элемента
for k := 1 to 6 do
begin
// Выбор главного элемента
m := k;
for i := k + 1 to 6 do
if Abs(Matrix[i, k]) > Abs(Matrix[m, k]) then
m := i;
// Перестановка строк
if m <> k then
for j := k to 7 do
begin
Temp := Matrix[k, j];
Matrix[k, j] := Matrix[m, j];
Matrix[m, j] := Temp;
end;
// Исключение переменной
for i := k + 1 to 6 do
begin
if Matrix[k, k] = 0 then
begin
Writeln('Ошибка: деление на ноль в строке ', k);
Exit; // Завершить выполнение процедуры при ошибке деления на ноль.
end;
Temp := Matrix[i, k] / Matrix[k, k];
for j := k to 7 do
Matrix[i, j] := Matrix[i, j] - Temp * Matrix[k, j];
end;
end;
// Обратный ход
for i := 6 downto 1 do
begin
Solution[i] := Matrix[i, 7];
for j := i + 1 to 6 do
Solution[i] := Solution[i] - Matrix[i, j] * Solution[j];
if Matrix[i, i] = 0 then
begin
Writeln('Ошибка: деление на ноль при обратном ходе для строки ', i);
Exit; // Завершить выполнение процедуры при ошибке деления на ноль.
end;
Solution[i] := Solution[i] / Matrix[i, i];
end;
end;
var
A: TMatrix;
B: TVector;
i,j: Integer;
begin
// Пример заполнения матрицы (замените на ваши данные)
A[1][1] := 2; A[1][2] := -1; A[1][3] := -2; A[1][4] := -3; A[1][5] := -4; A[1][6] := -5; A[1][7] := -10;
A[2][1] := -3; A[2][2] := -2; A[2][3] := -3; A[2][4] := -4; A[2][5] := -5; A[2][6] := -6; A[2][7] := -12;
A[3][1] := -4; A[3][2] := -3; A[3][3] := -4; A[3][4] := -5; A[3][5] := -6; A[3][6] := -7; A[3][7] := -14;
A[4][1] := -5; A[4][2] := -4; A[4][3] := -5; A[4][4] := -6; A[4][5] := -7; A[4][6] := -8; A[4][7] := -16;
A[5][1] := -6; A[5][2] := -5; A[5][3]:=0.0 ;A [5 ][4]:=0.0 ;A [5 ][5]:=0.0 ;A [5 ][6]:=0.0 ;A [5 ][7]:=0.0 ;
A [6 ][1]:=0.0 ;A [6 ][2]:=0.0 ;A [6 ][3]:=0.0 ;A [6 ][4]:=0.0 ;A [6 ][5]:=0.0 ;A [6 ][6]:=0.0 ;A [6 ][7]:=0.0 ;
SolveLinearSystem(A,B);
Writeln('Решение системы уравнений:');
for i:=1 to Length(B) do
Writeln('x',i,' = ', B[i]:0:2);
end.
cHJvZ3JhbSBMaW5lYXJTeXN0ZW1Tb2x2ZXI7Cgp1c2VzCiAgU3lzVXRpbHM7Cgp0eXBlCiAgVE1hdHJpeCA9IGFycmF5WzEuLjYsIDEuLjddIG9mIERvdWJsZTsgLy8gNng3INC80LDRgtGA0LjRhtCwICg2INGD0YDQsNCy0L3QtdC90LjQuSDRgSA3INC60L7RjdGE0YTQuNGG0LjQtdC90YLQsNC80LgpCiAgVFZlY3RvciA9IGFycmF5WzEuLjZdIG9mIERvdWJsZTsgICAgICAgLy8g0JLQtdC60YLQvtGAINC40LcgNiDRjdC70LXQvNC10L3RgtC+0LIKCnByb2NlZHVyZSBTb2x2ZUxpbmVhclN5c3RlbSh2YXIgTWF0cml4OiBUTWF0cml4OyB2YXIgU29sdXRpb246IFRWZWN0b3IpOwp2YXIKICBpLCBqLCBrLCBtOiBJbnRlZ2VyOwogIFRlbXA6IERvdWJsZTsKYmVnaW4KICAvLyDQnNC10YLQvtC0INCT0LDRg9GB0YHQsCDRgSDQstGL0LHQvtGA0L7QvCDQs9C70LDQstC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAKICBmb3IgayA6PSAxIHRvIDYgZG8KICBiZWdpbgogICAgLy8g0JLRi9Cx0L7RgCDQs9C70LDQstC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAKICAgIG0gOj0gazsKICAgIGZvciBpIDo9IGsgKyAxIHRvIDYgZG8KICAgICAgaWYgQWJzKE1hdHJpeFtpLCBrXSkgPiBBYnMoTWF0cml4W20sIGtdKSB0aGVuCiAgICAgICAgbSA6PSBpOwoKICAgIC8vINCf0LXRgNC10YHRgtCw0L3QvtCy0LrQsCDRgdGC0YDQvtC6CiAgICBpZiBtIDw+IGsgdGhlbgogICAgICBmb3IgaiA6PSBrIHRvIDcgZG8KICAgICAgYmVnaW4KICAgICAgICBUZW1wIDo9IE1hdHJpeFtrLCBqXTsKICAgICAgICBNYXRyaXhbaywgal0gOj0gTWF0cml4W20sIGpdOwogICAgICAgIE1hdHJpeFttLCBqXSA6PSBUZW1wOwogICAgICBlbmQ7CgogICAgLy8g0JjRgdC60LvRjtGH0LXQvdC40LUg0L/QtdGA0LXQvNC10L3QvdC+0LkKICAgIGZvciBpIDo9IGsgKyAxIHRvIDYgZG8KICAgIGJlZ2luCiAgICAgIGlmIE1hdHJpeFtrLCBrXSA9IDAgdGhlbiAKICAgICAgYmVnaW4KICAgICAgICBXcml0ZWxuKCfQntGI0LjQsdC60LA6INC00LXQu9C10L3QuNC1INC90LAg0L3QvtC70Ywg0LIg0YHRgtGA0L7QutC1ICcsIGspOwogICAgICAgIEV4aXQ7IC8vINCX0LDQstC10YDRiNC40YLRjCDQstGL0L/QvtC70L3QtdC90LjQtSDQv9GA0L7RhtC10LTRg9GA0Ysg0L/RgNC4INC+0YjQuNCx0LrQtSDQtNC10LvQtdC90LjRjyDQvdCwINC90L7Qu9GMLgogICAgICBlbmQ7CgogICAgICBUZW1wIDo9IE1hdHJpeFtpLCBrXSAvIE1hdHJpeFtrLCBrXTsKICAgICAgZm9yIGogOj0gayB0byA3IGRvCiAgICAgICAgTWF0cml4W2ksIGpdIDo9IE1hdHJpeFtpLCBqXSAtIFRlbXAgKiBNYXRyaXhbaywgal07CiAgICBlbmQ7CiAgZW5kOwoKICAvLyDQntCx0YDQsNGC0L3Ri9C5INGF0L7QtAogIGZvciBpIDo9IDYgZG93bnRvIDEgZG8KICBiZWdpbgogICAgU29sdXRpb25baV0gOj0gTWF0cml4W2ksIDddOwogICAgZm9yIGogOj0gaSArIDEgdG8gNiBkbwogICAgICBTb2x1dGlvbltpXSA6PSBTb2x1dGlvbltpXSAtIE1hdHJpeFtpLCBqXSAqIFNvbHV0aW9uW2pdOwoKICAgIGlmIE1hdHJpeFtpLCBpXSA9IDAgdGhlbiAKICAgIGJlZ2luCiAgICAgIFdyaXRlbG4oJ9Ce0YjQuNCx0LrQsDog0LTQtdC70LXQvdC40LUg0L3QsCDQvdC+0LvRjCDQv9GA0Lgg0L7QsdGA0LDRgtC90L7QvCDRhdC+0LTQtSDQtNC70Y8g0YHRgtGA0L7QutC4ICcsIGkpOwogICAgICBFeGl0OyAvLyDQl9Cw0LLQtdGA0YjQuNGC0Ywg0LLRi9C/0L7Qu9C90LXQvdC40LUg0L/RgNC+0YbQtdC00YPRgNGLINC/0YDQuCDQvtGI0LjQsdC60LUg0LTQtdC70LXQvdC40Y8g0L3QsCDQvdC+0LvRjC4KICAgIGVuZDsKCiAgICBTb2x1dGlvbltpXSA6PSBTb2x1dGlvbltpXSAvIE1hdHJpeFtpLCBpXTsKICBlbmQ7CmVuZDsKCnZhciAKICAgQTogVE1hdHJpeDsKICAgQjogVFZlY3RvcjsKICAgaSxqOiBJbnRlZ2VyOwoKYmVnaW4gCiAgIC8vINCf0YDQuNC80LXRgCDQt9Cw0L/QvtC70L3QtdC90LjRjyDQvNCw0YLRgNC40YbRiyAo0LfQsNC80LXQvdC40YLQtSDQvdCwINCy0LDRiNC4INC00LDQvdC90YvQtSkKICAgQVsxXVsxXSA6PSAyOyBBWzFdWzJdIDo9IC0xOyBBWzFdWzNdIDo9IC0yOyBBWzFdWzRdIDo9IC0zOyBBWzFdWzVdIDo9IC00OyBBWzFdWzZdIDo9IC01OyBBWzFdWzddIDo9IC0xMDsKICAgQVsyXVsxXSA6PSAtMzsgQVsyXVsyXSA6PSAtMjsgQVsyXVszXSA6PSAtMzsgQVsyXVs0XSA6PSAtNDsgQVsyXVs1XSA6PSAtNTsgQVsyXVs2XSA6PSAtNjsgQVsyXVs3XSA6PSAtMTI7CiAgIEFbM11bMV0gOj0gLTQ7IEFbM11bMl0gOj0gLTM7IEFbM11bM10gOj0gLTQ7IEFbM11bNF0gOj0gLTU7IEFbM11bNV0gOj0gLTY7IEFbM11bNl0gOj0gLTc7IEFbM11bN10gOj0gLTE0OwogICBBWzRdWzFdIDo9IC01OyBBWzRdWzJdIDo9IC00OyBBWzRdWzNdIDo9IC01OyBBWzRdWzRdIDo9IC02OyBBWzRdWzVdIDo9IC03OyBBWzRdWzZdIDo9IC04OyBBWzRdWzddIDo9IC0xNjsKICAgQVs1XVsxXSA6PSAtNjsgQVs1XVsyXSA6PSAtNTsgQVs1XVszXTo9MC4wIDtBIFs1IF1bNF06PTAuMCA7QSBbNSBdWzVdOj0wLjAgO0EgWzUgXVs2XTo9MC4wIDtBIFs1IF1bN106PTAuMCA7CiAgIEEgWzYgXVsxXTo9MC4wIDtBIFs2IF1bMl06PTAuMCA7QSBbNiBdWzNdOj0wLjAgO0EgWzYgXVs0XTo9MC4wIDtBIFs2IF1bNV06PTAuMCA7QSBbNiBdWzZdOj0wLjAgO0EgWzYgXVs3XTo9MC4wIDsKCiAgIFNvbHZlTGluZWFyU3lzdGVtKEEsQik7CgogICBXcml0ZWxuKCfQoNC10YjQtdC90LjQtSDRgdC40YHRgtC10LzRiyDRg9GA0LDQstC90LXQvdC40Lk6Jyk7CiAgIGZvciBpOj0xIHRvIExlbmd0aChCKSBkbyAKICAgICBXcml0ZWxuKCd4JyxpLCcgPSAnLCBCW2ldOjA6Mik7CmVuZC4=