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

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

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

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

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

textual
Листинг программы
  1. uses
  2.   crt;
  3.  
  4. const
  5.   e = 0.000001; { точность вычислений }
  6. var
  7.  
  8.   a,a1: array[1..10, 1..10] of real;
  9.   b,b1: array[1..10] of real;
  10.   x: array[1..10] of real;
  11.   n, i, j, k: integer;z, r, g: real;
  12.  
  13. begin
  14.   clrscr;
  15.   n:=3;
  16.  
  17.   A[1, 1] := 1.54; A[1, 2] := 1.70; A[1, 3] := 1.62;
  18.   A[2, 1] := 3.69; A[2, 2] := 3.73; A[2, 3] := 3.59;
  19.   A[3, 1] := 2.45; A[3, 2] := 2.43; A[3, 3] := 2.25;
  20.   b[1] := -1.97; b[2] := -3.74; b[3] := -2.26;
  21.  
  22.   writeln('Матрица A: ');
  23.   for i := 1 to n do
  24.   begin
  25.     for j := 1 to n do
  26.     begin
  27.       write(a[i,j]:5:2);
  28.       a1[i,j]:=a[i,j];
  29.     end;
  30.      writeln;
  31.      end;
  32.    writeln;
  33.     Writeln('Матрица B: ');
  34.    for i:=1 to n do
  35.     writeln(b[i]);
  36.   for k := 1 to n do { прямой ход Гаусса }
  37.   begin
  38.     for j := k + 1 to n do
  39.     begin
  40.       r := a[j, k] / a[k, k];
  41.       for i := k to n do
  42.       begin
  43.         a[j, i] := a[j, i] - r * a[k, i];
  44.       end;
  45.       b[j] := b[j] - r * b[k];
  46.     end;
  47.   end;
  48.   for k := n downto 1 do { обратный ход Гаусса }
  49.   begin
  50.     r := 0;
  51.     for j := k + 1 to n do
  52.     begin
  53.       g := a[k, j] * x[j];
  54.       r := r + g;
  55.     end;
  56.     x[k] := (b[k] - r) / a[k, k];
  57.   end;
  58.   writeln('Корни системы:');
  59.   for i := 1 to n do
  60.     write('x[', i, ']=', x[i]:0:2, '   ');
  61. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы