Решение системы линейных уравнений методом Гаусса - 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]=значение
.
- Выводятся на экран значения корней системы уравнений в формате
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д