Решение системы линейных уравнений методом Гаусса - 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.
Объяснение кода листинга программы
- Объявление переменных:
a
,a1
: двумерные массивы размером 10x10 заполненные действительными числами.b
,b1
: одномерные массивы размером 10, заполненные действительными числами.x
: одномерный массив размером 10, заполненный действительными числами.n
,i
,j
,k
: целочисленные переменные.z
,r
,g
: действительные переменные.
- Заполнение матрицы
A
и вектораb
начальными значениями. - Вывод матрицы
A
на экран:- Происходит двойной цикл для обхода элементов матрицы
A
и их вывода на экран. Значения матрицыA
сохраняются в матрицуa1
.
- Происходит двойной цикл для обхода элементов матрицы
- Вывод вектора
b
на экран. - Прямой ход метода Гаусса:
- Прямой ход метода Гаусса выполняется через цикл, в котором происходит вычитание строки матрицы
A
из следующих строк для обнуления коэффициентов под главной диагональю. Также происходит соответствующее изменение элементов вектораb
.
- Прямой ход метода Гаусса выполняется через цикл, в котором происходит вычитание строки матрицы
- Обратный ход метода Гаусса:
- Обратный ход метода Гаусса выполняется через цикл, в котором вычисляются значения корней системы уравнений. Значения корней сохраняются в массив
x
.
- Обратный ход метода Гаусса выполняется через цикл, в котором вычисляются значения корней системы уравнений. Значения корней сохраняются в массив
- Вывод корней системы уравнений.
- Выводятся на экран значения корней системы уравнений в формате
x[i]=значение
.
- Выводятся на экран значения корней системы уравнений в формате
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д