на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Использование современной компьютерной техники и программного обеспечения для решения прикладных задач в области геодезических измерений
p align="center"> 3.4 Блок-схема алгоритма

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

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

Пункт #1(Хутор)

Направление({Градусы}пробел{Минуты}пробел{Секунды}):

0 0 0

Координата X:

11327.11

Координата Y:

9315.82

Пункт #2(Крутик)

Направление({Градусы}пробел{Минуты}пробел{Секунды}):

75 46 14

Координата X:

11588.28

Координата Y:

11619.02

Пункт #3(Юрьево)

Направление({Градусы}пробел{Минуты}пробел{Секунды}):

168 7 51

Координата X:

8901.34

Координата Y:

11230.33

Пункт #4(Локно)

Направление({Градусы}пробел{Минуты}пробел{Секунды}):

278 52 25

Координата X:

9054.58

Координата Y:

7892.42

Program Zadacha3;

Uses CRT;

Var

g1,m1,s1,g2,m2,s2,g3,m3,s3,g4,m4,s4:integer; {описание используемых переменных}

x1,y1,x2,y2,x3,y3,x4,y4,vm1,vn1,vm2,vn2:real;

ra1,ra2,ra3,ra4,yg21,yg32,yg43,ct21,ct32,ct43:real;

Fi1,Fi2,Fi3,Fi4,De1,De2,De3,De4:real;

kipX1,kipX2,CredX,kipY1,kipY2,CredY:real;

t1,t2:text;

Begin

ClrScr; {очистка экрана}

Assign (t1,'data.txt'); {связывание переменной с именем файла}

Assign (t2,'result.txt'); {связывание переменной с именем файла}

Reset (t1); {обозначения файла для чтения}

Rewrite (t2); {обозначения файла для записи}

{чтение из фаила исходных значений}

Readln(t1);

Readln(t1);

Readln(t1,g1,m1,s1);

Readln(t1);

Readln(t1,x1);

Readln(t1);

Readln(t1,y1);

Readln(t1);

Readln(t1);

Readln(t1,g2,m2,s2);

Readln(t1);

Readln(t1,x2);

Readln(t1);

Readln(t1,y2);

Readln(t1);

Readln(t1);

Readln(t1,g3,m3,s3);

Readln(t1);

Readln(t1,x3);

Readln(t1);

Readln(t1,y3);

Readln(t1);

Readln(t1);

Readln(t1,g4,m4,s4);

Readln(t1);

Readln(t1,x4);

Readln(t1);

Readln(t1,y4);

Begin

{Данные в радианах}

ra1:=((Pi)/180)*(g1+(m1/60)+(s1/3600));

ra2:=((Pi)/180)*(g2+(m2/60)+(s2/3600));

ra3:=((Pi)/180)*(g3+(m3/60)+(s3/3600));

ra4:=((Pi)/180)*(g4+(m4/60)+(s4/3600));

End;

Writeln(t2); Writeln(t2); Writeln(t2); Writeln(t2,'Reshenie:'); Writeln(t2);

Writeln('Reshenie:');

Writeln(t2,'Napravlenie 1 v radianah:',ra1:6:2,';'); {вывод значений на экран и в файл}

Writeln(t2,'Napravlenie 2 v radianah:',ra2:6:2,';');

Writeln(t2,'Napravlenie 3 v radianah:',ra3:6:2,';');

Writeln(t2,'Napravlenie 4 v radianah:',ra4:6:2,' .');

Writeln('Napravlenie 1 v radianah:',ra1:6:2,';');

Writeln('Napravlenie 2 v radianah:',ra2:6:2,';');

Writeln('Napravlenie 3 v radianah:',ra3:6:2,';');

Writeln('Napravlenie 4 v radianah:',ra4:6:2,' .');

Begin

{Углы}

yg21:=ra2-ra1;

yg32:=ra3-ra2;

yg43:=ra4-ra3;

End;

Writeln(t2);

Writeln(t2,'ugol 2-1 (v radianah)=',yg21:6:2,';'); {вывод значений на экран и в файл}

Writeln(t2,'ugol 3-2 (v radianah)=',yg32:6:2,';');

Writeln(t2,'ugol 4-3 (v radianah)=',yg43:6:2,' .');

Writeln;

Writeln('ugol 2-1 (v radianah)=',yg21:6:2,';');

Writeln('ugol 3-2 (v radianah)=',yg32:6:2,';');

Writeln('ugol 4-3 (v radianah)=',yg43:6:2,' .');

Begin

{Котангенсы углов}

ct21:=(cos(yg21)/sin(yg21));

ct32:=(cos(yg32)/sin(yg32));

ct43:=(cos(yg43)/sin(yg43));

End;

Writeln(t2);

Writeln(t2,'kotangens ugla 2-1 =',ct21:6:2,';'); {вывод значений на экран и в файл}

Writeln(t2,'kotangens ugla 3-2 =',ct32:6:2,';');

Writeln(t2,'kotangens ugla 4-3 =',ct43:6:2,' .');

Writeln;

Writeln('kotangens ugla 2-1 =',ct21:6:2,';');

Writeln('kotangens ugla 3-2 =',ct32:6:2,';');

Writeln('kotangens ugla 4-3 =',ct43:6:2,' .');

Begin

{Вспомогательные величины}

vm1:=y1*ct21+y2*(-(ct21)-(ct32))+y3*ct32+x1-x3;

vm2:=y2*ct32+y3*(-(ct32)-(ct43))+y4*ct43+x2-x4;

vn1:=x1*ct21+x2*(-(ct21)-(ct32))+x3*ct32-y1+y3;

vn2:=x2*ct32+x3*(-(ct32)-(ct43))+x4*ct43-y2+y4;

End;

Writeln(t2);

Writeln(t2,'Vspomogatelnayaя velichina m1 = ',vm1:6:2,';'); {вывод значений на экран и в файл}

Writeln(t2,'Vspomogatelnayaя velichina n1 = ',vn1:6:2,';');

Writeln(t2,'Vspomogatelnayaя velichina m2 = ',vm2:6:2,';');

Writeln(t2,'Vspomogatelnayaя velichina n2 = ',vn2:6:2,' .');

Writeln;

Writeln('Vspomogatelnayaя velichina m1 = ',vm1:6:2,';');

Writeln('Vspomogatelnayaя velichina n1 = ',vn1:6:2,';');

Writeln('Vspomogatelnayaя velichina m2 = ',vm2:6:2,';');

Writeln('Vspomogatelnayaя velichina n2 = ',vn2:6:2,' .');

Begin

Fi1:=arctan(vm1/vn1);

Fi2:=(sin(Fi1)/cos(Fi1));

Fi3:=arctan(vm2/vn2);

Fi4:=(sin(Fi3)/cos(Fi3));

De1:=Fi1-yg21;

De2:=(sin(De1)/cos(De1));

De3:=Fi3-yg32;

De4:=(sin(De3)/cos(De3));

End;

Writeln(t2);

Writeln(t2,'Фи 1 = ',Fi1:6:2,'; Делта 1 = ',De1:6:2,';'); {вывод значений на экран и в файл}

Writeln(t2,'Фи 2 = ',Fi2:6:2,'; Делта 2 = ',De2:6:2,';');

Writeln(t2,'Фи 3 = ',Fi3:6:2,'; Делта 3 = ',De3:6:2,';');

Writeln(t2,'Фи 4 = ',Fi4:6:2,'; Делта 4 = ',De4:6:2,' .');

Writeln;

Writeln('Фи 1 = ',Fi1:6:2,'; Делта 1 = ',De1:6:2,';');

Writeln('Фи 2 = ',Fi2:6:2,'; Делта 2 = ',De2:6:2,';');

Writeln('Фи 3 = ',Fi3:6:2,'; Делта 3 = ',De3:6:2,';');

Writeln('Фи 4 = ',Fi4:6:2,'; Делта 4 = ',De4:6:2,' .');

Begin

{Координаты искомого пункта}

kipX1:=(x1*De2-x2*Fi2+y2-y1)/(De2-Fi2);

kipX2:=(x2*De4-x3*Fi4+y3-y2)/(De4-Fi4);

{Среднее для X}

CredX:=(kipX1+kipX2)/2;

kipY1:=(kipX1-x2)*Fi2+y2;

kipY2:=(kipX2-x3)*Fi4+y3;

{Среднее для Y}

CredY:=(kipY1+kipY2)/2;

End;

Writeln(t2);

Writeln(t2,'Координата X искомого пункта 1: ',kipX1:6:2,';'); {вывод значений на экран и в файл}

Writeln(t2,'Координата X искомого пункта 2: ',kipX2:6:2,';');

Writeln(t2,' Среднее значение X: ',CredX:6:2,';');

Writeln(t2,'Координата Y искомого пункта 1: ',kipY1:6:2,';');

Writeln(t2,'Координата Y искомого пункта 2: ',kipY2:6:2,';');

Writeln(t2,' Среднее значение Y: ',CredY:6:2,' .');

Writeln;

Writeln('Координата X искомого пункта 1: ',kipX1:6:2,';');

Writeln('Координата X искомого пункта 2: ',kipX2:6:2,';');

Writeln(' Среднее значение X: ',CredX:6:2,';');

Writeln('Координата Y искомого пункта 1: ',kipY1:6:2,';');

Writeln('Координата Y искомого пункта 2: ',kipY2:6:2,';');

Writeln(' Среднее значение Y: ',CredY:6:2,' .');

Writeln;Writeln;Writeln;

writeln(t2);writeln(t2);writeln(t2);

writeln('All rights are reserved'); {добавление личной подписи}

writeln('Made by MOISEEV ANDREI GG-09-2');

writeln(t2,'All rights are reserved');

writeln(t2,'Made by MOISEEV ANDREI GG-09-2');

Close (t1);

Close (t2);

Readkey; End.

3.6 Результаты работы программы

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

Reshenie:

Napravlenie 1 v radianah: 0.00;

Napravlenie 2 v radianah: 1.32;

Napravlenie 3 v radianah: 2.93;

Napravlenie 4 v radianah: 4.87 .

ugol 2-1 (v radianah)= 1.32;

ugol 3-2 (v radianah)= 1.61;

ugol 4-3 (v radianah)= 1.93 .

kotangens ugla 2-1 = 0.25;

kotangens ugla 3-2 = -0.04;

kotangens ugla 4-3 = -0.38 .

Vspomogatelnayaя velichina m1 = 1857.73;

Vspomogatelnayaя velichina n1 = 1959.03;

Vspomogatelnayaя velichina m2 = 3781.82;

Vspomogatelnayaя velichina n2 = -3895.39 .

Фи 1 = 0.76; Делта 1 = -0.56;

Фи 2 = 0.95; Делта 2 = -0.63;

Фи 3 = -0.77; Делта 3 = -2.38;

Фи 4 = -0.97; Делта 4 = 0.95 .

Координата X искомого пункта 1: 10026.34;

Координата X искомого пункта 2: 10026.69;

Среднее значение X: 10026.51;

Координата Y искомого пункта 1: 10137.84;

Координата Y искомого пункта 2: 10137.79;

Среднее значение Y: 10137.82 .

All rights are reserved

Made by MOISEEV ANDREI GG-09-2

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

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

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

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

Рис. 3.7 Проведение промежуточных расчетов

3.8 Проверка в MathCad

Рис.3.8 Проверка в MathCad

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

Сравнивая результаты работы программы с проверкой в табличном редакторе Excel и математическом пакете MathCad, можно удостовериться в правильности работы программы и выборе алгоритма ее работы.

4. Решение СЛАУ методом Гаусса

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

Рассмотрим один из наиболее известных и широко применяемых прямых методов решения систем линейных уравнений. Обычно этот метод называют методом исключения или методом Гаусса.

Чтобы проиллюстрировать этот метод, рассмотрим сначала систему из трех уравнений с тремя неизвестными:

(4.1)

В такой системе по крайней мере один из коэффициентов ,,должен быть отличен от нуля, иначе бы мы имели бы дело в этих трех уравнениях только с двумя неизвестными. Если , то можно переставить уравнения так, чтобы коэффициент при в первом уравнении был отличен от нуля. Очевидно, что перестановка уравнений оставляет систему неизменной: ее решение остается прежним.

Теперь введем множитель .

Умножим первое уравнение системы (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 Блок-схема алгоритма

Блок-схема процедуры «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. Информатика: Программа и методические указания по выполнению курсовой работы для студентов специальности "Маркшейдерское дело" дневной формы обучения / Санкт-Петербургский горный ин-т. Сост.: А.П. Кондрашов, Т.Р. Косовцева, В.В. Петров, - СПб, 2004 . 51 с.

2. Информатика. Учебник. Под редакцией Н.В. Макаровой. М., 2001.

3. Правила оформления курсовых и квалификационных работ / Санкт-Петербургский горный ин-т. Сост. И.О. Онушкина, П.Г. Талалай, - СПб, 2004, 50 стр.

4. Информатика. Работа в пакете MathCad. / СПГГИ(ТУ), Сост. О.Г. Быкова, СПб, 2005, 46 стр.

5. Ян Белицкий Turbo Pascal с графикой для персональных компьютеров. М.:1991г.

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.