Решение системы линейных уравнений методом Гаусса - Pascal

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Помогите решить две как мне сказали простых задачи. Нужен код. и результат. Буду очень благодарен. Задание 2. Решение системы линейных уравнений методом Гаусса
           1.54 1.70 1.62                                             -1.97
Матрица А= 3.69 3.73 3.59                                  Матрица В= -3.74
           2.45 2.43 2.25                                             -2.26

Решение задачи: «Решение системы линейных уравнений методом Гаусса»

textual
Листинг программы
uses
  crt;
 
const
  e = 0.000001; { точность вычислений }
var
 
  a,a1: array[1..10, 1..10] of real;
  b,b1: array[1..10] of real;
  x: array[1..10] of real;
  n, i, j, k: integer;z, r, g: real;
 
begin
  clrscr;
  n:=3;
 
  A[1, 1] := 1.54; A[1, 2] := 1.70; A[1, 3] := 1.62;
  A[2, 1] := 3.69; A[2, 2] := 3.73; A[2, 3] := 3.59;
  A[3, 1] := 2.45; A[3, 2] := 2.43; A[3, 3] := 2.25;
  b[1] := -1.97; b[2] := -3.74; b[3] := -2.26;
 
  writeln('Матрица A: ');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      write(a[i,j]:5:2);
      a1[i,j]:=a[i,j];
    end;
     writeln;
     end;
   writeln;
    Writeln('Матрица B: ');
   for i:=1 to n do
    writeln(b[i]);
  for k := 1 to n do { прямой ход Гаусса }
  begin
    for j := k + 1 to n do
    begin
      r := a[j, k] / a[k, k];
      for i := k to n do
      begin
        a[j, i] := a[j, i] - r * a[k, i];
      end;
      b[j] := b[j] - r * b[k];
    end;
  end;
  for k := n downto 1 do { обратный ход Гаусса }
  begin
    r := 0;
    for j := k + 1 to n do
    begin
      g := a[k, j] * x[j];
      r := r + g;
    end;
    x[k] := (b[k] - r) / a[k, k];
  end;
  writeln('Корни системы:');
  for i := 1 to n do
    write('x[', i, ']=', x[i]:0:2, '   ');
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • a, a1: двумерные массивы размером 10x10 заполненные действительными числами.
    • b, b1: одномерные массивы размером 10, заполненные действительными числами.
    • x: одномерный массив размером 10, заполненный действительными числами.
    • n, i, j, k: целочисленные переменные.
    • z, r, g: действительные переменные.
  2. Заполнение матрицы A и вектора b начальными значениями.
  3. Вывод матрицы A на экран:
    • Происходит двойной цикл для обхода элементов матрицы A и их вывода на экран. Значения матрицы A сохраняются в матрицу a1.
  4. Вывод вектора b на экран.
  5. Прямой ход метода Гаусса:
    • Прямой ход метода Гаусса выполняется через цикл, в котором происходит вычитание строки матрицы A из следующих строк для обнуления коэффициентов под главной диагональю. Также происходит соответствующее изменение элементов вектора b.
  6. Обратный ход метода Гаусса:
    • Обратный ход метода Гаусса выполняется через цикл, в котором вычисляются значения корней системы уравнений. Значения корней сохраняются в массив x.
  7. Вывод корней системы уравнений.
    • Выводятся на экран значения корней системы уравнений в формате x[i]=значение.

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы