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

 

МИНОБРНАУКИ РФ

Федеральное государственное бюджетное образовательное

учреждение высшего профессионального образования

Тульский Государственный Университет











Численные методы

Лабораторная работа №1

«РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ ГАУССА»




Выполнил студент группы 520111: Курилов В.Р.








Тула 2013

Цель работы

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

Теоретические сведения

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



основан на приведении матрицы системы к треугольной. Вычтем из второго уравнения системы (1) первое, умноженное на такое число, чтобы уничтожился коэффициент при . Затем таким же образом вычтем первое уравнение из третьего, четвертого и т.д. Тогда исключатся все коэффициенты первого столбца, лежащие ниже главной диагонали. Затем при помощи второго уравнения исключим из третьего, четвертого и т.д. уравнений коэффициенты второго столбца. Последовательно продолжая этот процесс, исключим из матрицы все коэффициенты, лежащие ниже главной диагонали.

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



Умножим -ю строку на число



и вычтем из -той строки. Первый элемент этой строки обратится в нуль, а остальные изменятся по формулам



Производя вычисления по этим формулам при всех указанных индексах, исключим элементы -го столбца. Будем называть такое исключение циклом процесса. Выполнение всех циклов называется прямым ходом исключения.

После выполнения прямого хода получим треугольную систему



с матрицей



Треугольная система (5) легко решается обратным ходом по формулам



Замечания:

. Исключение по формулам (3)-(4) нельзя проводить, если в ходе расчета на главной диагонали оказался нулевой элемент . Тогда в промежуточной системе (2) перестановкой строк необходимо переместить ненулевой элемент на главную диагональ и продолжить расчет.

. Если элемент на главной диагонали мал, то эта строка умножается на большие числа , что приводит к значительным ошибкам при вычитаниях. Чтобы избежать этого, каждый цикл всегда начинают с перестановки строк. Среди элементов столбца , , находят главный, т.е. наибольший по модулю в -том столбце, и перестановкой строк переводят его на главную диагональ, после чего выполняют исключения. В методе Гаусса с выбором главного элемента погрешность округления обычно невелика. Только для плохо обусловленных систем () устойчивость этого метода оказывается недостаточной.

3. Для контроля расчета полезно найти невязки:



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

Задание

Найти решение системы линейных уравнений с матричными элементами

гаусс уравнение матрица



и свободными членами



где - номер фамилии студента в журнале группы; - последняя цифра номера группы.

Допустимая погрешность . При решении системы использовать метод Гаусса с выбором главного элемента.

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

1)Построение матрицы с элементами, которые вычисляются по формулам в задании.

)Подготовка матрицы к треугольному виду с помощью нахождения элементов главной диагонали.

)Вычисление коэффициентов, на которые необходимо помножить строки для вычитания строк.

)Обнуление элементов лежащих ниже главной диагонали и приведение к треугольному виду.

)Нахождение решения с помощью формул обратного хода.

Текст программы: Delphi 7 program laba1var10;


{$APPTYPE CONSOLE};,i,j,l,h:integer;,k,r:real;:array [1..5,1..6] of real;:array[1..5] of real;:array [1..5,1..6] of real;i:=1 to 5 do beginj:=1 to 5 do begin(i<j) then a[j,i]:=i+j-(10/3)-1;(i=j) then a[j,i]:=i+j+(10/4)+1; //матрица линейного уравнения(i>j) then a[j,i]:=i+j-(10/5)-1;;;:=6;i:=1 to 5 do //столбец свободных членов[i,j]:=3*i+(10/2)+1;i:=1 to 5 do beginj:=1 to 6 do begin(a[i,j]:12:5,' ');;

writeln; //вывод системы уравнений

end;

for j:=1 to 4 do begin //сортировкаi:=j to 4 do beginl:=i to 4 do begin(abs(a[i,j])<abs(a[l+1,j])) then beginq:=1 to 6 do begin:=a[i,q];[i,q]:=a[l+1,q];[l+1,q]:=w;;;;;; j:=1 to 4 do begin //приведение системы к диагональному виду

for i:=1 to 4 do begin(i>=j) then begin (a[i+1,j]<>0) then //если значение элемента не нулевое

begin k:=a[j,j]/a[i+1,j]; //вычисляем коэффициент на который необходимо умножить всю строку

for q:=1 to 6 do a[i+1,q]:=k*a[i+1,q]-a[j,q]; //вычитаем строки;;;;i:=1 to 5 do begin //обнуление нижнего треугольникаj:=1 to 4 do(j<i) then a[i,j]:=0;;i:=1 to 5 do beginj:=1 to 6 do(a[i,j]:12:5,' ');;;i:=1 to 5 do[i,6]:=a[i,6]; //заполнение системы для вычисления X

for i:=5 downto 1 do begin //вычисление Xj:=1 to 5 doj>i then b[i,6]:=b[i,6]-x[j]*a[i,j];[i]:=(b[i,6])/(a[i,i]);;i:=1 to 5 do //вывод на экран('x',i,':=',x[i]:12:5);i:=1 to 5 do beginj:=1 to 5 do begini<j then a[j,i]:=i+j-(10/3)-1;i=j then a[j,i]:=i+j+(10/4)+1;i>j then a[j,i]:=i+j-(10/5)-1;;;

for i:=1 to 5 do begin[i,6]:=a[i,1]*x[1]+a[i,2]*x[2]+a[i,3]*x[3]+a[i,4]*x[4]+a[i,5]*x[5];;;

for i:=1 to 5 do('b',i,':=',a[i,6]:12:5);;.


Работа программы:



МИНОБРНАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Тульский Государственный Универси

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ