Использование современной компьютерной техники и программного обеспечения для решения прикладных задач в области геодезических измерений

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

µ уравнение системы (4.1) на и вычтем его из второго уравнения системы. (Первое и второе уравнения берем уже после перестановки, если она была необходима). Результат вычитания равен:

 

 

Так как

,

 

фактически исключается из второго уравнения (именно для достижения такого результата и было выбрано значение ).

Определим теперь новые коэффициенты

 

.

 

Тогда второе уравнение системы приобретает вид

 

(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.2 Постановка задачи

 

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

 

4.3 Исходные данные

 

 

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.9 Вычисления в MathCad