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

окончательно получим

(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.1

Блок-схема процедуры «Gaus»:

Рис. 4.2 Блок-схема процедуры «Gaus»

4.5 Текст программы

Файл исходных данных

1 -1 1 -3

2 18 0 5

1 5 2 6

0 1 1 2

15 83 18 8

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 sistemy lineinygh algebraicheskigh uravneniy');

Writeln('(kolichestvo uravneniy 4)');

Writeln('Sistema uravneniy:');

Writeln(t,'Reshenie sistemy lineinygh algebraicheskigh uravneniy');

Writeln(t,'(kolichestvo uravneniy 4)');

Writeln(t,'Sistema uravneniy:');

For i:=1 to 4 do

Begin

For j:=1 to 4 do

Write(t,a[i,j]:6:1,'x[',j,'] ');

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,'x[',j,'] ');

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,'Vector X:');

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 Результаты работы программы

Рис.4.3 Результат работы программы

Reshenie sistemy lineinygh algebraicheskigh uravneniy

(kolichestvo uravneniy 4)

Sistema uravneniy:

1.0x[1] -1.0x[2] 1.0x[3] -3.0x[4] 15.0

2.0x[1] 18.0x[2] 0.0x[3] 5.0x[4] 83.0

1.0x[1] 5.0x[2] 2.0x[3] 6.0x[4] 18.0

0.0x[1] 1.0x[2] 1.0x[3] 2.0x[4] 8.0

Вектор Х:

-7.671 7.063 12.456 -5.759

4.7 Проверка в MS Excel

Рис.4.4 Проверка в MS Excel

Рис.4.5 Лист Excel в режиме отображения формул

4.8 Проверка в MathCad

Рис.4.6 Проверка методом Гаусса

Рис.4.7 Проверка методом Крамера

Рис.4.8 Проверка методом приведения матрицы к треугольному виду

Рис.4.9 Проверка с использованием обратной матрицы

4.9 Анализ результатов

На рис. 4.5 - 4.10 Выполнена проверка решения системы линейных алгебраических уравнений разными методами. Сравнивая полученные результаты с результатами работы программы и ее проверки в табличном редакторе MS Excel, можно сделать вывод о правильности работы программы и правильности выбора алгоритма решения поставленной задачи.

Заключение

В ходе выполнения курсовой работы было выполнено четыре задания: три типовые геодезические задачи («Обратная геодезическая задача», «Прямая угловая засечка», «Обратная геодезическая засечка»), и одна математическая задача «Решение системы линейных алгебраических уравнений методом Гаусса». Поставленные задачи решались с помощью языка программирования Turbo Pascal с последующей проверкой в математическом пакете MathCad 14.0 и табличном процессоре MS Excel 2007. Судя по полученным результатам и их проверки можно удостовериться в правильности работы предложенных программ.

Страница:  1  2  3  4  5  6  7  8  9 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы