Top.Mail.Ru
Ответы

Объяснить метод гаусса в паскале

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
 program GaussianElimination; 
 
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; 
 
  // Решение системы 
  GaussianElimination; 
 
  // Вывод решения 
  writeln('Решение системы:'); 
  writeln('x = ', x:0:2; 
  writeln('y = ', y:0:2); 
  writeln('z = ', z:0:2); 
 
  readln; 
   readln; 
end. 
 


Это программа, которая решает систему уравнений с 3 неизвестными.

1234567891011121314151617
 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;  
  


я знаю как работает метод Гаусса, но как его реализовать в паскале не знаю. В данном коде написана реализация метода Гаусса можете объяснить как это работает?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Удаленный ответ Ответ удалён
Аватар пользователя
Мудрец

Просто откройте метод Гаусса (через коэффициенты) и посмотрите. Здесь программа - именно по этому методу.