program SolveLinearSystem;
uses
SysUtils;
type
TMatrix = array[1..4, 1..4] of Real;
TVector = array[1..4] of Real;
function SolveSystem(A: TMatrix; b: TVector; var x: TVector): Boolean;
var
i, j, k: Integer;
factor, sum: Real;
begin
// Метод Гаусса
for k := 1 to 3 do
begin
for i := k + 1 to 4 do
begin
factor := A[i, k] / A[k, k];
for j := k to 4 do
A[i, j] := A[i, j] - factor * A[k, j];
b[i] := b[i] - factor * b[k];
end;
end;
// Зворотний хід
x[4] := b[4] / A[4, 4];
for i := 3 downto 1 do
begin
sum := 0;
for j := i + 1 to 4 do
sum := sum + A[i, j] * x[j];
x[i] := (b[i] - sum) / A[i, i];
end;
SolveSystem := True;
end;
var
A: TMatrix;
b, x: TVector;
i: Integer;
begin
// Заповнення матриці A та вектора b
A[1, 1] := 17.3; A[1, 2] := -18.89; A[1, 3] := -1.59; A[1, 4] := 0;
A[2, 1] := 0; A[2, 2] := 1.59; A[2, 3] := 5.89; A[2, 4] := 3.6;
A[3, 1] := 10.4; A[3, 2] := 27.7; A[3, 3] := -4.3; A[3, 4] := 0;
A[4, 1] := 27.7; A[4, 2] := 10.4; A[4, 3] := 0; A[4, 4] := 3.6;
b[1] := 11.9; b[2] := 4.61; b[3] := -21.1; b[4] := -0.1;
// Розв'язання системи
if SolveSystem(A, b, x) then
begin
Writeln('Розв''язок системи:');
for i := 1 to 4 do
Writeln('x[', i, '] = ', x[i]:0:3); // Виведення з трьома знаками після коми
end
else
Writeln('Система не має розв''язку.');
Readln; // Затримка консолі
end.
cHJvZ3JhbSBTb2x2ZUxpbmVhclN5c3RlbTsKCnVzZXMKICBTeXNVdGlsczsKCnR5cGUKICBUTWF0cml4ID0gYXJyYXlbMS4uNCwgMS4uNF0gb2YgUmVhbDsKICBUVmVjdG9yID0gYXJyYXlbMS4uNF0gb2YgUmVhbDsKCmZ1bmN0aW9uIFNvbHZlU3lzdGVtKEE6IFRNYXRyaXg7IGI6IFRWZWN0b3I7IHZhciB4OiBUVmVjdG9yKTogQm9vbGVhbjsKdmFyCiAgaSwgaiwgazogSW50ZWdlcjsKICBmYWN0b3IsIHN1bTogUmVhbDsKYmVnaW4KICAvLyDQnNC10YLQvtC0INCT0LDRg9GB0YHQsAogIGZvciBrIDo9IDEgdG8gMyBkbwogIGJlZ2luCiAgICBmb3IgaSA6PSBrICsgMSB0byA0IGRvCiAgICBiZWdpbgogICAgICBmYWN0b3IgOj0gQVtpLCBrXSAvIEFbaywga107CiAgICAgIGZvciBqIDo9IGsgdG8gNCBkbwogICAgICAgIEFbaSwgal0gOj0gQVtpLCBqXSAtIGZhY3RvciAqIEFbaywgal07CiAgICAgIGJbaV0gOj0gYltpXSAtIGZhY3RvciAqIGJba107CiAgICBlbmQ7CiAgZW5kOwoKICAvLyDQl9Cy0L7RgNC+0YLQvdC40Lkg0YXRltC0CiAgeFs0XSA6PSBiWzRdIC8gQVs0LCA0XTsKICBmb3IgaSA6PSAzIGRvd250byAxIGRvCiAgYmVnaW4KICAgIHN1bSA6PSAwOwogICAgZm9yIGogOj0gaSArIDEgdG8gNCBkbwogICAgICBzdW0gOj0gc3VtICsgQVtpLCBqXSAqIHhbal07CiAgICB4W2ldIDo9IChiW2ldIC0gc3VtKSAvIEFbaSwgaV07CiAgZW5kOwoKICBTb2x2ZVN5c3RlbSA6PSBUcnVlOwplbmQ7Cgp2YXIKICBBOiBUTWF0cml4OwogIGIsIHg6IFRWZWN0b3I7CiAgaTogSW50ZWdlcjsKCmJlZ2luCiAgLy8g0JfQsNC/0L7QstC90LXQvdC90Y8g0LzQsNGC0YDQuNGG0ZYgQSDRgtCwINCy0LXQutGC0L7RgNCwIGIKICBBWzEsIDFdIDo9IDE3LjM7IEFbMSwgMl0gOj0gLTE4Ljg5OyBBWzEsIDNdIDo9IC0xLjU5OyBBWzEsIDRdIDo9IDA7CiAgQVsyLCAxXSA6PSAwOyBBWzIsIDJdIDo9IDEuNTk7IEFbMiwgM10gOj0gNS44OTsgQVsyLCA0XSA6PSAzLjY7CiAgQVszLCAxXSA6PSAxMC40OyBBWzMsIDJdIDo9IDI3Ljc7IEFbMywgM10gOj0gLTQuMzsgQVszLCA0XSA6PSAwOwogIEFbNCwgMV0gOj0gMjcuNzsgQVs0LCAyXSA6PSAxMC40OyBBWzQsIDNdIDo9IDA7IEFbNCwgNF0gOj0gMy42OwoKICBiWzFdIDo9IDExLjk7IGJbMl0gOj0gNC42MTsgYlszXSA6PSAtMjEuMTsgYls0XSA6PSAtMC4xOwoKICAvLyDQoNC+0LfQsifRj9C30LDQvdC90Y8g0YHQuNGB0YLQtdC80LgKICBpZiBTb2x2ZVN5c3RlbShBLCBiLCB4KSB0aGVuCiAgYmVnaW4KICAgIFdyaXRlbG4oJ9Cg0L7Qt9CyJyfRj9C30L7QuiDRgdC40YHRgtC10LzQuDonKTsKICAgIGZvciBpIDo9IDEgdG8gNCBkbwogICAgICBXcml0ZWxuKCd4WycsIGksICddID0gJywgeFtpXTowOjMpOyAvLyDQktC40LLQtdC00LXQvdC90Y8g0Lcg0YLRgNGM0L7QvNCwINC30L3QsNC60LDQvNC4INC/0ZbRgdC70Y8g0LrQvtC80LgKICBlbmQKICBlbHNlCiAgICBXcml0ZWxuKCfQodC40YHRgtC10LzQsCDQvdC1INC80LDRlCDRgNC+0LfQsicn0Y/Qt9C60YMuJyk7CgogIFJlYWRsbjsgLy8g0JfQsNGC0YDQuNC80LrQsCDQutC+0L3RgdC+0LvRlgplbmQu