Метод Гаусса для систем линейных алгебраических уравнений

Суть метода Гаусса, его достоинства и недостатки. Алгоритм исключения неизвестных переменных. Запись программы в среде Pascal ABC для реализации данной модели. Нахождение матрицы, обратной к данной. Численное решение СЛАУ в вычислительной технике.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 26.09.2017
Размер файла 152,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Оглавление

Введение

1. Постановка задачи

2. Описание метода

3. Алгоритм решения

4. Код программы

5. Контрольный пример для отладки

6. Описание программы

7. Инструкция

Заключение

Приложение

Введение

Решение систем линейных алгебраических уравнений - одна из основных задач вычислительной линейной алгебры. Методы решения систем линейных уравнений широко используются в задачах математики, экономики, физики, химии и других науках. На практике, они позволяют не делать лишних действий, а записать систему уравнений в более компактной форме и сократить время выполнения задач. Поэтому, будущим специалистам очень важно понять основные методы решения и научиться выбирать оптимальный.

Хотя задача решения системы линейных уравнений сравнительно редко представляет самостоятельный интерес для приложений, от умения эффективно решать такие системы часто зависит сама возможность математического моделирования самых разных процессов с применением ЭВМ.

1. Постановка задачи

Дано: Система линейных алгебраических уравнений.

Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами с помощью метода Гаусса.

2. Описание метода

Существует множество методов решения систем линейных алгебраических уравнений таких как: метод Крамера, решение СЛАУ матричным методом, метод Гаусса.

Метод Гаусса - классический метод решения системы линейных алгебраических уравнений (СЛАУ). Состоит в постепенном понижении порядка системы и исключении неизвестных.

Достоинства метода:

- Менее трудоемкий по сравнению с другими методами

- Позволяет однозначно установить, совместна система или нет, и если совместна найти ее решение

- Позволяет найти максимальное число линейно независимых уравнений - ранг матрицы системы.

Существенные Недостатки: этот метод не позволяет найти общие формулы, выражающие решение системы через ее коэффициенты и свободные члены, которые необходимо иметь при теоретическом исследовании.

Суть метода Гаусса состоит в последовательном исключении неизвестных переменных: сначала исключается X1 из всех уравнений системы, начина со второго, далее исключается X2 из всех уравнений, начиная с третьего, и так далее, пока в последнем уравнении останется только неизвестная переменная Хn. Такой процесс преобразования уравнений системы для последовательного исключения неизвестных переменных называется прямым ходом метод Гаусса. После завершения прямого хода метода Гаусса из последнего уравнения находится Хn, с помощью этого значения из предпоследнего уравнения вычисляется Xn-1,и так далее, из первого находится Х1. Процесс вычисления неизвестных переменных при движении от последнего уравнения системы к первому называется обратным ходом метода Гаусса.

3. Алгоритм решения

1.Кратко опишем алгоритм исключения неизвестных переменных.

Будем считать, что а11?0, так как мы всегда можем этого добиться перестановкой местами уравнений системы. Исключим неизвестную переменнуюx1из всех уравнений системы, начиная со второго. Для этого ко второму уравнению системы прибавим первое, умноженное на- , к третьему уравнению прибавим первое, умноженное на, и так далее, к n-ому уравнению прибавим первое, умноженное на. Система уравнений после таких преобразований примет вид

К такому же результату мы бы пришли, если бы выразилиx1через другие неизвестные переменные в первом уравнении системы и полученное выражение подставили во все остальные уравнения. Таким образом, переменнаяx1исключена из всех уравнений, начиная со второго.

2.Далее действуем аналогично, но лишь с частью полученной системы, которая отмечена на рисунке

Будем считать, что(в противном случае мы переставим местами вторую строку сk-ой, где). Приступаем к исключению неизвестной переменнойx2из всех уравнений, начиная с третьего.

Для этого к третьему уравнению системы прибавим второе, умноженное на, к четвертому уравнению прибавим второе, умноженное на, и так далее, кn-омууравнению прибавим второе, умноженное на. Система уравнений после таких преобразований примет вид

где .

Таким образом, переменнаяx2исключена из всех уравнений, начиная с третьего.

Далее приступаем к исключению неизвестнойx3, при этом действуем аналогично с отмеченной на рисунке частью системы

Так продолжаем прямой ход метода Гаусса пока система не примет вид

С этого момента начинаем обратный ход метода Гаусса: вычисляем xn из последнего уравнения как, с помощью полученного значения xn находим xn-1 из предпоследнего уравнения, и так далее, находим x1 из первого уравнения.

Рис .1

4. Код программы

Программа разработана на языке Turbo Pascal в компьютерной среде Pascal ABC. Код программы представлен в приложении А.

5. Контрольный пример для отладки

Приведем пример решения СЛАУ:

Решение

Запишем матрицу системы и с помощью элементарных преобразований приведем ее к ступенчатому виду:

Выполненные преобразования: (1) Первую и вторую строки поменяли местами. (2) Ко второй строке прибавили первую строку, умноженную на -2. К третьей строке прибавили первую строку, умноженную на -2. К четвертой строке прибавили первую строку, умноженную на -3. (3) К третьей строке прибавили вторую, умноженную на 4. К четвертой строке прибавили вторую, умноженную на -1. (4) У второй строки сменили знак. Четвертую строку разделили на 3 и поместили вместо третьей строки. (5) К четвертой строке прибавили третью строку, умноженную на -5.

Обратный ход:

Ответ:

Решение системы в моей программе:

Рис. 2

Сравнение: Вычисления вручную дают 4 корня уравнения равные: 0; 2; 2; 1. Компьютерная программа при решении той же системы дает аналогичные результаты. В этом вы можете убедиться взглянув на скриншот работы программы представленный выше. Следовательно программа работает правильно, проверенна на конкретном примере.

6. Описание программы

//Описание переменных, функций, процедур. Ссылка на приложение (код программы)

7. Инструкция

Пользоваться программой не так уж и сложно. Сначала до запуска среды Pascal ABC ,в которой будет исполнена программа, нужно в корневую папку с приложением PABCWork вставить текстовый файл inp. В этом файле нужно записать в столбик по порядку данные исходной матрицы, начиная с первого коэффициента и заканчивая коэффициентом b4. Потом достаточно найти Программу и запустить ее, нажав на зеленый треугольник. И все, программа выведет окно с результатами счета.

алгебраический уравнение pascal матрица

Заключение

В данной работе полностью разобран метод Гаусса для систем линейных алгебраических уравнений. Помимо аналитического решения СЛАУ, метод Гаусса также применяется для нахождения матрицы, обратной к данной, определения ранга матрицы, численного решения СЛАУ в вычислительной технике.

Создана функциональная модель решения системы линейных алгебраических уравнений методом Гаусса. Записана программа в среде Pascal ABC для реализации данной функциональной модели. Разобран конкретный пример решения СЛАУ и программа проверенна на данном примере.

Приложение

Код программы

uses crt;

type vec=array[1..4] of real;

mas=array[1..4,1..4] of real;

var a:mas; b,x:vec;

h,s:real;

i,j,k,n:integer;

inp:text;

Begin

Clrscr;

n:=4;

assign(inp,'inp.txt');

reset(inp);

read(inp,a[1,1],a[1,2],a[1,3],a[1,4],a[2,1],a[2,2],a[2,3],a[2,4],a[3,1],a[3,2],a[3,3],a[3,4],a[4,1],a[4,2],a[4,3],a[4,4], b[1],b[2],b[3],b[4]);

close(inp);

writeln('Исходная матрица');

for i:=1 to n do begin

write(i);

for j:=1 to n do

write(a[i,j]:10:5);

writeln(b[i]:10:5) end;

writeln; writeln; writeln;

{исключение переменных}

for i:=1 to n-1 do

for j:=i+1 to n do begin

a[j,i]:=-a[j,i]/a[i,i];

for k:=i+1 to n do

a[j,k]:=a[j,k]+a[j,i]*a[i,k];

b[j]:=b[j]+a[j,i]*b[i] end;

x[n]:=b[n]/a[n,n];

{нахождение корней}

for i:=n-1 downto 1 do begin

h:=b[i];

for j:=i+1 to n do h:=h-x[j]*a[i,j];

x[i]:=h/a[i,i]; end;

writeln('Корни уравнения');

for i:=1 to n do writeln('x(',i,')=',x[i]:10:5);

writeln;

readkey

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.