Определим теперь новые коэффициенты
.Тогда второе уравнение системы приобретает вид
(4.2)Заменим второе из первоначальных уравнений уравнением (4.2) и введем множитель для третьего уравнения
.Умножим первое уравнение на этот множитель и вычтем его из третьего. Коэффициент при снова становится нулевым, и третье уравнение приобретает вид
(4.3)где
Если теперь в исходной системе уравнений (4.1) заменить третье уравнение на (4.3), то новая система выглядит так:
(4.4)Эти новые уравнения полностью эквивалентны исходным уравнениям с тем преимуществом, что
входит только в первое уравнение и не входит ни во второе, ни в третье. Таким образом, два последних уравнения представляют собой систему из двух уравнений с двумя неизвестными; если теперь найти решение этой системы, т.е. определить и , то результат можно подставить в первое уравнение и найти . Иначе говоря, задача сведена к решению системы из двух уравнений с двумя неизвестными.Попытаемся теперь исключить
из двух последних уравнений. Если , то снова мы переставим уравнения так, чтобы было отлично от нуля (если и , то система вырождена и либо вовсе не имеет решения, либо имеет бесчисленное множество решений).Введем новый множитель
.Умножим второе уравнение полученной системы (4.4) на
и вычтем его из третьего. Результат вычитания равенВ силу выбора
.Полагая, что
окончательно получим
(4.5)Третье уравнение полученной системы (4.4) можно заменить уравнением (4.5), после чего система уравнений приобретает следующий вид:
(4.6)Такая система уравнений (4.6) иногда называется треугольной из-за своего внешнего вида.
Для решения необходимо определить
из третьего уравнения системы (4.6), подставить этот результат во второе уравнение и определить . Полученные значения и подставить в первое уравнение и определить . Этот процесс, который обычно называется обратной подстановкой (обратный ход), определяется формулами: (4.7) .Необходимо отметить, если
, то система уравнений вырождена.Теперь можно обобщить этот метод на случай системы из n – уравнений с n-неизвестными. Ниже записана система уравнений, приведенная к треугольному виду (4.8).
(4.8)Формулы для вычисления неизвестных (обратный ход) будут иметь вид:
(4.9)Решение системы линейных алгебраических уравнений методом Гаусса.
4.4 Блок-схема алгоритма
Процедура для решения СЛАУ методом Гаусса
4.5 Текст программы
Program Zadacha6;
Uses CRT;
Type matrix=array [1..10,1..10] of real;
vector=array [1..10] of real;
Var
i,j:integer;
a:matrix;
x,b:vector;
t1,t:text;
Procedure Gaus (Var a:matrix; Var b:vector; x:vector);
Var k,i,j,q:integer;
d:real;
t:text;
Begin
For i:=1 to 4 do
a[i,5]:=B[i];
Assign(t,'reshenie.txt');
Rewrite(t);
Writeln('Reshenie sistemu lineinix algebraicheskix yravnenii');
Writeln('(kolichestvo yravnenii 4)');
Writeln('sistema yravnenii:');
Writeln(t,'Решение системы линейных алгебраических уравнений');
Writeln(t,'(количество уравнений 4)');
Writeln(t,'Система уравнений:');
For i:=1 to 4 do
Begin
For j:=1 to 4 do
Write(t,a[i,j]:6:1);
Writeln(t,b[i]:6:1);
End;
For i:=1 to 4 do
Begin
For j:=1 to 4 do
Write(a[i,j]:6:1);
Writeln(b[i]:6:1);
End;
For i:=1 to 4 do Begin
d:=a[i,i];{Поиск максимума в столбце}
q:=i;
For j:=i to 4 do
If abs(a[j,i])>abs(d) then
Begin
D:=a[j,i];
q:=j;
End;
{Обмен строк}
If i<>q Then
Begin
For j:=i to 5 do
Begin
D:=a[i,j];
a[i,j]:=a[q,j];
a[q,j]:=d;
End;
End;
{Создание строки}
For j:=5 downto i do
a[i,j]:=a[i,j]/a[i,i];
{зануление столбцов, вычисление А}
For k:=i+1 to 4 do
For j:=5 downto i do
a[k,j]:=a[k,j]-a[i,j]*a[k,i];
End;{Обратный ход}
x[4]:=a[4,5];
For i:=4-1 downto 1 do begin
D:=0;
For j:=4 downto i+1 do
d:=d+a[i,j]*x[j];
x[i]:=a[i,5]-d;
end;
Writeln(t,'Вектор Х:');
Writeln('Vector X:');
For i:=1 to 4 do
Write(t, x[i]:5:3,' ');
Writeln(t);
close(t);
Begin
For i:=1 to 4 do
Write(x[i]:5:3,' ');
Writeln;
End;
End;
Begin
Clrscr;
assign(t1,'clay.txt');
reset(t1);
For i:=1 to 4 do
For j:=1 to 4 do
Read(t1,a[i,j]);
For i:=1 to 4 do read(t1,b[i]);
Gaus(a,b,x);
Readkey; End.
4.6 Содержание фаила «clay.txt»
1 -2 2 0
0 2 5 5
7 5 4 9
3 2 1 3
13 29 50 17
{Вводятся коэффициенты ("а" 4х4)}
{Вводятся результаты уравнений ("b" 1х4)}
4.7 Результаты решения
Рис. 4.2 Результаты в Turbo Pascal.
Содержание фаила «reshenie.txt»
Решение системы линейных алгебраических уравнений
(количество уравнений 4)
Система уравнений:
1.0 -2.0 2.0 0.0 13.0
0.0 2.0 5.0 5.0 29.0
7.0 5.0 4.0 9.0 50.0
3.0 2.0 1.0 3.0 17.0
Вектор Х:
3.000 -0.500 4.500 1.500
4.8 Табличные вычисления MS Excel
Рис. 4.3Проверка в MS Excel
Рис. 4.4 Проверка в MS Excel в режиме отображения формул
Рис. 4.5 Проверка в MathCad 14.
Задача №6 (решение системы линейных алгебраических уравнений методом гаусса) была решена с помощью языка программирования Turbo Pascal и затем была проверена с помощью табличного процессора Microsoft Excel 2007 и MathCad. Результаты решений совпали, что говорит о правильности выбранного алгоритма решения задачи.
Таким образом, в данной курсовой работе было решено и оформлено 4 типовые геодезические и одна математическая задачи с помощью языка программирования Turbo Pascal, табличного процессора Excel и MathCad 14.
1) Информатика: Программа и методические указания по выполнению курсовой работы для студентов специальности "Маркшейдерское дело" дневной формы обучения / Санкт-Петербургский горный ин-т. Сост.: А.П. Кондрашов, Т.Р. Косовцева, В.В. Петров, – СПб, 2004 . 51 с.
2) Информатика. Учебник. Под редакцией Н.В. Макаровой. М., 2001.
3) Правила оформления курсовых и квалификационных работ / Санкт-Петербургский горный ин-т. Сост. И.О. Онушкина, П.Г. Талалай, - СПб, 2004, 50 стр.
4) Информатика. Работа в пакете MathCad. / СПГГИ(ТУ), Сост. О.Г. Быкова, СПб, 2005, 46 стр.
5) Ян Белицкий Turbo Pascal с графикой для персональных компьютеров. М.:1991г.