Материал: Паскаль. Метод Гаусса

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.1.4 Структура разрабатываемой программы показана на блок-схемах основной части и вспомогательных модулей

Основная часть программы

Процедура ввода

Функция вычисления

Процедура вывода

2.1.5 Листинг и результат работы программы

Program Metod_Gauss;CRT; maxn = 10;= Real;= Array[1..maxn] of Data;= Array[1..maxn, 1..maxn] of Data;

{ Процедура ввода расширенной матрицы }

Procedure ReadSystem(n: Integer; var a: Matrix; var b: Vector);r, i, j: Integer;:= WhereY;(2, r);('A');i := 1 to n do begin(i*6+2, r);(i);(1, r+i+1);(i:2);;((n+1)*6+2, r);('b');i := 1 to n do beginj := 1 to n do begin(j * 6 + 2, r + i + 1);(a[i, j]);;((n + 1) * 6 + 2, r + i + 1);(b[i]);;;

{ Процедура вывода результатов }WriteX(n :Integer; x: Vector); i: Integer;i := 1 to n do('x', i, ' = ', x[i]);

End;

{ Функция, реализующая метод Гаусса }

Function Gauss(n: Integer; a: Matrix; b: Vector; var x:Vector): Boolean;, l, i, j: Integer;, q, t: Data;k := 1 to n - 1 do begin

{ Ищем строку l с максимальным элементом в k-ом столбце}

m := 0;:= 0;i := k to n doAbs(a[i, k]) > m then begin:= i;:= Abs(a[i, k]);;

{ Если у всех строк от k до n элемент в k-м столбце нулевой,

то система не имеет однозначного решения }

If l = 0 then begin:= false;

Exit;;

{ Меняем местами l-ую и k-ую строки }

If l <> k then beginj := 1 to n do begin:= a[k, j];[k, j] := a[l, j];[l, j] := t;;:= b[k];[k] := b[l];[l] := t;;

{ Преобразуем матрицу }i := k + 1 to n do begin:= a[i, k] / a[k, k];j := 1 to n doj = k then[i, j] := 0[i, j] := a[i, j] - q * a[k, j];[i] := b[i] - q * b[k];;;

{ Вычисляем решение }[n] := b[n] / a[n, n];i := n - 1 downto 1 do begin:= 0;j := 1 to n-i do:= t + a[i, i + j] * x[i + j];[i] := (1 / a[i, i]) * (b[i] - t);;:= true;; n, i: Integer;: Matrix ;, b: Vector;

Begin;('Программа решения СЛАУ по методу Гаусса');;('Введите порядок матрицы системы (макс. 10)');('>');(n);(n > 0) and (n <= maxn);

Writeln;('Введите расширенную матрицу системы');

ReadSystem(n, a, b);;Gauss(n, a, b, x) then begin

Writeln('Результат вычислений по методу Гаусса');(n, x);('Данную систему нельзя решить по методу Гаусса');;.

.1.6 Пример работы программы решения СЛАУ по методу Гаусса

Введите порядок матрицы системы (макс. 10) >4

Введите расширенную матрицу системы1 2 3 b

3 4 -2 11

2 -1 -1 4

3 -2 4 11

Результат вычислений по методу Гаусса= 3= 1= 1

Скриншот 1. Результат работы программы при n = 3

Скриншот 2. Результат работы программы при n = 7

Скриншот 3. Аншлаг при Δ = 2·8 - 4·4 = 0.

Список использованной литературы

1.      Малыхина М.П. Программирование на языке высокого уровня Turbo Pascal. - Спб.: БХВ-Петербург, 2006, 544 с.

.        Немнюгин С.А. Turbo Pascal. - Спб.: Питер, 2002. - 496 с.

.        Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. - М.: Нолидж, 1997. - 616 с.

.        Гусева А.И. Учимся программировать: PASCAL 7.0. Задачи и методы их решения. - М.: Диалог-МИФИ, 1997. - 256 с.

.        Дьяконов В.П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ: Справочник. - М.: Наука. Гл. ред. физ. -мат. лит., 1987. - 240 с.

.        Сапаров В.Е., Максимов Н.А. Системы стандартов в электросвязи и радиоэлектронике: Учебное пособие для вузов. - М. - Радио и связь, 1985. - 248 с.

.        ГОСТ 19.701-90 (ИСО 5807-85). “Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения”/ Cб. ЕСПД. - М.: Изд-во стандартов, 1996. - 157 с.

.        Бахвалов Н., Жидков Н., Кобельков Г. Численные методы. М.: Лаборатория базовых знаний, 2001.632 с.

.        Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вычислений / Пер. с англ. М.: Мир, 1980.177с.

.        Самарский А.А., Гулин А.В. Численные методы: Учебное пособие для ВУЗов. М.: Наука, 1989.432с.

Источник: https://www.bibliofond.ru/view.aspx?id=865673