Решение систем линейных алгебраических уравнений методом Гаусса
Решение системы линейных уравнений с матричными элементами и свободными членами с использованием метода Гаусса с выбором главного элемента, основанного на приведении матрицы системы к треугольному виду с помощью нахождения элементов главной диагонали.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 10.12.2014 |
Размер файла | 71,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РФ
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
Тульский Государственный Университет
Численные методы
Лабораторная работа №1
«РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ ГАУССА»
Выполнил студент группы 520111: Курилов В.Р.
Тула 2013
Цель работы
Приобретение навыков решения систем линейных алгебраических уравнений методом Гаусса.
Теоретические сведения
Метод Гаусса для произвольной системы линейных алгебраических уравнений
основан на приведении матрицы системы к треугольной. Вычтем из второго уравнения системы (1) первое, умноженное на такое число, чтобы уничтожился коэффициент при . Затем таким же образом вычтем первое уравнение из третьего, четвертого и т.д. Тогда исключатся все коэффициенты первого столбца, лежащие ниже главной диагонали. Затем при помощи второго уравнения исключим из третьего, четвертого и т.д. уравнений коэффициенты второго столбца. Последовательно продолжая этот процесс, исключим из матрицы все коэффициенты, лежащие ниже главной диагонали.
Запишем общие формулы процесса. Пусть проведено исключение коэффициентов из столбца. Тогда остались такие уравнения с ненулевыми коэффициентами ниже главной диагонали:
Умножим -ю строку на число
и вычтем из -той строки. Первый элемент этой строки обратится в нуль, а остальные изменятся по формулам
Производя вычисления по этим формулам при всех указанных индексах, исключим элементы -го столбца. Будем называть такое исключение циклом процесса. Выполнение всех циклов называется прямым ходом исключения.
После выполнения прямого хода получим треугольную систему
с матрицей
Треугольная система (5) легко решается обратным ходом по формулам
Замечания:
1. Исключение по формулам (3)-(4) нельзя проводить, если в ходе расчета на главной диагонали оказался нулевой элемент . Тогда в промежуточной системе (2) перестановкой строк необходимо переместить ненулевой элемент на главную диагональ и продолжить расчет.
2. Если элемент на главной диагонали мал, то эта строка умножается на большие числа , что приводит к значительным ошибкам при вычитаниях. Чтобы избежать этого, каждый цикл всегда начинают с перестановки строк. Среди элементов столбца , , находят главный, т.е. наибольший по модулю в -том столбце, и перестановкой строк переводят его на главную диагональ, после чего выполняют исключения. В методе Гаусса с выбором главного элемента погрешность округления обычно невелика. Только для плохо обусловленных систем () устойчивость этого метода оказывается недостаточной.
3. Для контроля расчета полезно найти невязки:
Если они велики, то это означает грубую ошибку в расчете. Если они малы, а система хорошо обусловлена, то решение найдено достаточно точно. Для плохо обусловленных систем малость невязок не гарантирует хорошей точности решения.
Задание
Найти решение системы линейных уравнений с матричными элементами
гаусс уравнение матрица
и свободными членами
где - номер фамилии студента в журнале группы; - последняя цифра номера группы.
Допустимая погрешность . При решении системы использовать метод Гаусса с выбором главного элемента.
Алгоритм решения:
1) Построение матрицы с элементами, которые вычисляются по формулам в задании.
2) Подготовка матрицы к треугольному виду с помощью нахождения элементов главной диагонали.
3) Вычисление коэффициентов, на которые необходимо помножить строки для вычитания строк.
4) Обнуление элементов лежащих ниже главной диагонали и приведение к треугольному виду.
5) Нахождение решения с помощью формул обратного хода.
Текст программы: Delphi 7 program laba1var10;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
q,i,j,l,h:integer;
w,k,r:real;
a:array [1..5,1..6] of real;
x:array[1..5] of real;
b:array [1..5,1..6] of real;
begin
for i:=1 to 5 do begin
for j:=1 to 5 do begin
if (i<j) then a[j,i]:=i+j-(10/3)-1;
if (i=j) then a[j,i]:=i+j+(10/4)+1; //матрица линейного уравнения
if (i>j) then a[j,i]:=i+j-(10/5)-1;
end;
end;
j:=6;
for i:=1 to 5 do //столбец свободных членов
a[i,j]:=3*i+(10/2)+1;
for i:=1 to 5 do begin
for j:=1 to 6 do begin
write(a[i,j]:12:5,' ');
end;
writeln; //вывод системы уравнений
end;
for j:=1 to 4 do begin //сортировка
for i:=j to 4 do begin
for l:=i to 4 do begin
if (abs(a[i,j])<abs(a[l+1,j])) then begin
for q:=1 to 6 do begin
w:=a[i,q];
a[i,q]:=a[l+1,q];
a[l+1,q]:=w;
end;
end;
end;
end;
end;
for j:=1 to 4 do begin //приведение системы к диагональному виду
for i:=1 to 4 do begin
if (i>=j) then begin
if (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]; //вычитаем строки
end;
end;
end;
end;
for i:=1 to 5 do begin //обнуление нижнего треугольника
for j:=1 to 4 do
if (j<i) then a[i,j]:=0;
end;
for i:=1 to 5 do begin
for j:=1 to 6 do
write(a[i,j]:12:5,' ');
writeln;
end;
for i:=1 to 5 do
b[i,6]:=a[i,6]; //заполнение системы для вычисления X
for i:=5 downto 1 do begin //вычисление X
for j:=1 to 5 do
if j>i then b[i,6]:=b[i,6]-x[j]*a[i,j];
x[i]:=(b[i,6])/(a[i,i]);
end;
for i:=1 to 5 do //вывод на экран
writeln('x',i,':=',x[i]:12:5);
for i:=1 to 5 do begin
for j:=1 to 5 do begin
if i<j then a[j,i]:=i+j-(10/3)-1;
if i=j then a[j,i]:=i+j+(10/4)+1;
if i>j then a[j,i]:=i+j-(10/5)-1;
end;
end;
for i:=1 to 5 do begin
a[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];
end;
writeln;
for i:=1 to 5 do
writeln('b',i,':=',a[i,6]:12:5);
readln;
end.
Работа программы:
Размещено на Allbest.ru
Подобные документы
Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.
курсовая работа [428,9 K], добавлен 25.01.2010Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.
курсовая работа [610,7 K], добавлен 25.06.2012Приведение системы линейных алгебраических уравнений к треугольному виду прямым ходом метода Гаусса. Применение обратного хода метода вращений. Создание алгоритма, блок-схемы и кода программы. Тестовый пример решения уравнения и его проверка в MathCad.
лабораторная работа [164,3 K], добавлен 02.10.2013Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Применение метода Гаусса для решения системы линейный алгебраических уравнений. Алгоритм нахождения максимального по модулю элемента в текущей строке и его перестановки на первое место при помощи матрицы перестановок. Блок-схема и код программы.
лабораторная работа [171,3 K], добавлен 02.10.2013Сферы использования компьютеров, сущность и языки программирования. Применение модифицированного метода Гаусса и расширенной матрицы для решения системы линейных алгебраических уравнений (СЛАУ). Разработка программы, системные требования для ее работы.
курсовая работа [657,1 K], добавлен 09.01.2014Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.
курсовая работа [1,1 M], добавлен 29.08.2010Решение систем алгебраических линейных уравнений методом Гаусса. Вычисление обратной матрицы и определителя. Декомпозиция задачи. Схема взаимодействия интерфейсных форм. Описание процедур и функций. Тестирование разработанного программного продукта.
курсовая работа [1,1 M], добавлен 05.06.2012Решение систем линейных алгебраических уравнений по методу Гаусса. Разработка прикладной программы формирования видеотеки с использованием технологии разработки программ "сверху-вниз". Алгоритм добавления, удаления и корректировки элемента видеотеки.
курсовая работа [305,0 K], добавлен 18.06.2012