var a: array[1..3, 1..3] of real; // коэффициенты системы b: array[1..3] of real; // правая часть системы x, y, z: real; // решение системы i, j:integer;
procedure GaussianElimination; var i, j, k: integer; factor: real; begin // Приведение к ступенчатому виду for i := 1 to 2 do begin for j := i + 1 to 3 do begin factor := a[j, i] / a[i, i]; for k := i to 3 do a[j, k] := a[j, k] - factor * a[i, k]; b[j] := b[j] - factor * b[i]; end; end;
// Обратное подставление z := b[3] / a[3, 3]; y := (b[2] - a[2, 3] * z) / a[2, 2]; x := (b[1] - a[1, 2] * y - a[1, 3] * z) / a[1, 1]; end;
begin // Введите коэффициенты и правую часть системы writeln('Введите коэффициенты системы уравнений:'); for i := 1 to 3 do begin for j := 1 to 3 do begin write('a[', i, ',', j, ']: '); readln(a[i, j]); end; write('b[', i, ']: '); readln(b[i]); end;
Это программа, которая решает систему уравнений с 3 неизвестными.
for i := 1 to 2 do begin for j := i + 1 to 3 do begin factor := a[j, i] / a[i, i]; for k := i to 3 do a[j, k] := a[j, k] - factor * a[i, k]; b[j] := b[j] - factor * b[i]; end; end;
// Обратное подставление z := b[3] / a[3, 3]; y := (b[2] - a[2, 3] * z) / a[2, 2]; x := (b[1] - a[1, 2] * y - a[1, 3] * z) / a[1, 1]; end;
я знаю как работает метод Гаусса, но как его реализовать в паскале не знаю. В данном коде написана реализация метода Гаусса можете объяснить как это работает?
Это программа, которая решает систему уравнений с 3 неизвестными.
я знаю как работает метод Гаусса, но как его реализовать в паскале не знаю. В данном коде написана реализация метода Гаусса можете объяснить как это работает?