бесплано рефераты

Разделы

рефераты   Главная
рефераты   Искусство и культура
рефераты   Кибернетика
рефераты   Метрология
рефераты   Микроэкономика
рефераты   Мировая экономика МЭО
рефераты   РЦБ ценные бумаги
рефераты   САПР
рефераты   ТГП
рефераты   Теория вероятностей
рефераты   ТММ
рефераты   Автомобиль и дорога
рефераты   Компьютерные сети
рефераты   Конституционное право
      зарубежныйх стран
рефераты   Конституционное право
      России
рефераты   Краткое содержание
      произведений
рефераты   Криминалистика и
      криминология
рефераты   Военное дело и
      гражданская оборона
рефераты   География и экономическая
      география
рефераты   Геология гидрология и
      геодезия
рефераты   Спорт и туризм
рефераты   Рефераты Физика
рефераты   Физкультура и спорт
рефераты   Философия
рефераты   Финансы
рефераты   Фотография
рефераты   Музыка
рефераты   Авиация и космонавтика
рефераты   Наука и техника
рефераты   Кулинария
рефераты   Культурология
рефераты   Краеведение и этнография
рефераты   Религия и мифология
рефераты   Медицина
рефераты   Сексология
рефераты   Информатика
      программирование
 
 
 

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

          Writeln(t2,'IV четверть');

          Writeln('Direkcionnii ygol raven(v radianax):');

          Writeln(t2,'Дирекционный угол равен(в радианах):');

          Writeln(A:6:3);

          Writeln(t2,A:6:3);

          End;

 end;

Begin

ClrScr;

Assign (t1,'in.txt');

Assign (t2,'out.txt');

Reset (t1);

Rewrite (t2);

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

         Readln(t1);

         Readln(t1);

         Readln(t1,x1);

         Readln(t1);

         Readln(t1,y1);

         Readln(t1);

         Readln(t1);

         Readln(t1,GB1P1);

         Readln(t1);

         Readln(t1,MB1P1);

         Readln(t1);

         Readln(t1,SB1P1);

         Readln(t1);

         Readln(t1);

         Readln(t1);

         Readln(t1,x2);

         Readln(t1);

         Readln(t1,y2);

         Readln(t1);

         Readln(t1);

         Readln(t1,GB1P2);

         Readln(t1);

         Readln(t1,MB1P2);

         Readln(t1);

         Readln(t1,SB1P2);

         Readln(t1);

         Readln(t1);

         Readln(t1,GB2P2);

         Readln(t1);

         Readln(t1,MB2P2);

         Readln(t1);

         Readln(t1,SB2P2);

         Readln(t1);

         Readln(t1);

         Readln(t1);

         Readln(t1,x3);

         Readln(t1);

         Readln(t1,y3);

         Readln(t1);

         Readln(t1);

         Readln(t1,GB2P3);

         Readln(t1);

         Readln(t1,MB2P3);

         Readln(t1);

         Readln(t1,SB2P3);

 Begin

{определение приращений координат}

Prir (y1,y2,Dy12);

Prir (x1,x2,Dx12);

Prir (y2,y3,Dy23);

Prir (x2,x3,Dx23);

{проведение контроля полученных значений}

         Writeln('Prirasheniya');{вывод на экран надписи "Приращения"}

         Writeln(t2,'Приращения');{вывод в фаил надписи "Приращения"}

         Writeln('Po oci X dly 1-2');{вывод на экран надписи "По оси X"}

         Writeln(t2,'По оси X для 1-2');{вывод в фаил надписи "По оси X"}

         Writeln(Dx12:6:2);{вывод значения для X на экран}

         Writeln(t2,Dx12:6:2);{вывод значения для X в фаил}

         Writeln('Po oci Y dly 1-2');{вывод на экран надписи "По оси Y"}

         Writeln(t2,'По оси Y для 1-2');{вывод в фаил надписи "По оси Y"}

         Writeln(Dy12:6:2);{вывод значения для Y на экран}

         Writeln(t2,Dy12:6:2);{вывод значения для Y в фаил}

         Writeln('Po oci X dly 2-3');{вывод на экран надписи "По оси X"}

         Writeln(t2,'По оси X для 2-3');{вывод в фаил надписи "По оси X"}

         Writeln(Dx23:6:2);{вывод значения для X на экран}

         Writeln(t2,Dx23:6:2);{вывод значения для X в фаил}

         Writeln('Po oci Y dly 2-3');{вывод на экран надписи "По оси Y"}

         Writeln(t2,'По оси Y для 2-3');{вывод в фаил надписи "По оси Y"}

         Writeln(Dy23:6:2);{вывод значения для Y на экран}

         Writeln(t2,Dy23:6:2);{вывод значения для Y в фаил}

 End;

 Begin

{нахождение величины румбов}

Rymb (Dx12,Dy12,R12);

Rymb (Dx23,Dy23,R23);

{проведение контроля полученных значений}

         Writeln('Rymb 1-2');{вывод на экран надписи "Румб"}

         Writeln(t2,'Румб 1-2');{вывод в фаил надписи "Румб"}

         Writeln(R12:6:6);{вывод значения на экран}

         Writeln(t2,R12:6:6);{вывод значения в фаил}

         Writeln('Rymb 2-3');{вывод на экран надписи "Румб"}

         Writeln(t2,'Румб 2-3');{вывод в фаил надписи "Румб"}

         Writeln(R23:6:6);{вывод значения на экран}

         Writeln(t2,R23:6:6);{вывод значения в фаил}

 End;

 Begin

         Writeln('Dly 1-2');

         Writeln(t2,'Для 1-2');

         Analiz (Dx12,Dy12,R12,Alfa12);

          Writeln('Dly 2-3');

          Writeln(t2,'Для 2-3');

          Analiz (Dx23,Dy23,R23,Alfa23);

 End;

 Begin

{перевод дирекционного угла в градусную меру}

Gradyc (Alfa12,AlfaGr12,AlfaMi12,AlfaS12);

Gradyc (Alfa23,AlfaGr23,AlfaMi23,AlfaS23);

                            {вывод полученных дирекционных углов}

                            Writeln('Direkcionnii ygol 1-2 raven:');

                            Writeln(t2,'Дирекционный угол 1-2 равен:');

                            Writeln(AlfaGr12:6:0,' gradycov',AlfaMi12:6:0,' minyt',AlfaS12:6:0,' sekynd');

                            Writeln(t2,AlfaGr12:6:0,' градусов',AlfaMi12:6:0,' минут',AlfaS12:6:0,' секунд');

Writeln('Direkcionnii ygol 2-3 raven:');

Writeln(t2,'Дирекционный угол 2-3 равен:');

Writeln(AlfaGr23:6:0,' gradycov',AlfaMi23:6:0,' minyt',AlfaS23:6:0,' sekynd');

Writeln(t2,AlfaGr23:6:0,' градусов',AlfaMi23:6:0,' минут',AlfaS23:6:0,' секунд');

 End;

Begin

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

RB1P1:=(((Pi)/180)*(GB1P1+(MB1P1/60)+(SB1P1/3600)));

RB1P2:=(((Pi)/180)*(GB1P2+(MB1P2/60)+(SB1P2/3600)));

RB2P2:=(((Pi)/180)*(GB2P2+(MB2P2/60)+(SB2P2/3600)));

RB2P3:=(((Pi)/180)*(GB2P3+(MB2P3/60)+(SB2P3/3600)));

xP12:=x1+(((y2-y1)*sin(RB2P2))/(sin(Alfa12)*sin(RB1P1+RB2P2)))*cos(Alfa12-RB1P1);

yP12:=y1+(((y2-y1)*sin(RB2P2))/(sin(Alfa12)*sin(RB1P1+RB2P2)))*sin(Alfa12-RB1P1);

xP23:=x2+(((y3-y2)*sin(RB2P3))/(sin(Alfa23)*sin(RB1P2+RB2P3)))*cos(Alfa23-RB1P2);

yP23:=y2+(((y3-y2)*sin(RB2P3))/(sin(Alfa23)*sin(RB1P2+RB2P3)))*sin(Alfa23-RB1P2);

                            Writeln('koordinaty iskomogo pynkta');

                            Writeln(t2,'Координаты искомого пункта');

                            Writeln('x1-2=');

                            Writeln(t2,'x1-2=');

                            Writeln(xP12:6:2);

                            Writeln(t2,xP12:6:2);

                            Writeln('y1-2=');

                            Writeln(t2,'y1-2=');

                            Writeln(yP12:6:2);

                            Writeln(t2,yP12:6:2);

         Writeln('x2-3=');

                            Writeln(t2,'x2-3=');

                            Writeln(xP23:6:2);

                            Writeln(t2,xP23:6:2);

                            Writeln('y2-3=');

                            Writeln(t2,'y2-3=');

                            Writeln(yP23:6:2);

                            Writeln(t2,yP23:6:2);

srX:=(xP12+xP23)/2;

srY:=(yP12+yP23)/2;

                            Writeln('Srednee X');

                            Writeln(t2,'Среднее X');

                            Writeln(srX:6:2);

                            Writeln(t2,srX:6:2);

                            Writeln('Srednee Y');

                            Writeln(t2,'Среднее Y');

                            Writeln(srY:6:2);

                            Writeln(t2,srY:6:2);

Writeln('chtenie iz faila "in.txt", zapic v "out.txt"');

End;

Close (t1);

Close (t2);

Readkey;

End.

2.6. Содержание фаила «in.txt»

Пункт №1:

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

5935.51

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

5441.24

Горизонтальный угол B1:

Градусы

98

Минуты

4

Секунды

30

-------------------------------

Пункт №2:

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

5687.41

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

5172.76

Горизонтальный угол B1:

Градусы

63

Минуты

0

Секунды

12

Горизонтальный угол B2:

Градусы

41

Минуты

54

Секунды

46

-------------------------------

Пункт №3:

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

5142.93

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

5460.08

Горизонтальный угол B2:

Градусы

54

Минуты

19

Секунды

48

-------------------------------

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

Рис.2.3 Результаты в Turbo Pascal.

Содержание фаила «rezultat.txt»

Приращения

По оси X для 1-2

-248.10

По оси Y для 1-2

-268.48

По оси X для 2-3

-544.48

По оси Y для 2-3

287.32

Румб 1-2

0.824829

Румб 2-3

0.485558

Для 1-2

III четверть

Дирекционный угол равен(в радианах):

 3.966

Для 2-3

II четверть

Дирекционный угол равен(в радианах):

 2.656

Дирекционный угол 1-2 равен:

 227 градусов 15 минут 33 секунд

Дирекционный угол 2-3 равен:

 152 градусов 10 минут 46 секунд

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

x1-2=

5695.54

y1-2=

5735.63

x2-3=

5695.50

y2-3=

5735.70

Среднее X

5695.52

Среднее Y

5735.67


2.8 Табличные вычисления в MS Excel

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


Рис. 2.5 Проверка в MS Excel в режиме отображения формул.


2.9 Вычисления в MathCad

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


2.10 Анализ

Таким образом, задача №2 (прямая угловая засечка) была решена с помощью языка программирования Turbo Pascal и затем была проверена с помощью табличного процессора Microsoft Excel 2007 и MathCad 14. Результаты решений совпали, что говорит о правильности выбранного алгоритма решения задачи.


3. Обратная геодезическая засечка

 

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

На плоскости задана система точек  с известными координатами (xi, yi ). При использовании обратной геодезической засечки теодолит располагают непосредственно на точке Р , координаты которой требуется определить. На точки с известными координатами (их должно быть не менее трех) устанавливают визирные цели, после чего измеряют горизонтальные углы  (рис.3.1).

 P

 

 

 A1

 A2 

 A3

 Рис. 3.1. Схема обратной геодезической засечки

 

Для однозначного определения координат точки Р достаточно рассмотреть два треугольника, однако в этом случае решение задачи является бесконтрольным. Инструкции по проведению геодезических измерений требуют включать, как минимум, четыре точки с известными координатами и определять координаты вставляемой точки, соответственно, по трем или более треугольникам.

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

Для определения координат вставляемой точки предварительно определяем вспомогательные величины n и m.

 (3.1)

 (3.2)

Далее находим углы  и определяем координаты вставляемой точки.

 (3.3)

 (3.4)

 

3.2 Постановка задачи

Обратная геодезическая засечка. Требуется определить координаты точки P по трем точкам с известными координатами и двум известным углам (каждый угол – угол между 2 соседними точками с вершиной в точке P).

 

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

Табл. 3.1.

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

Пункты Направления X Y
Хутор 0 0 0 12480.95 10219.13
Крутик 100 32 56 10241.98 12270.54
Юрьево 192 56 33 8586.56 10552.15
Локно 266 31 50 9655.10 8220.95

3.4. Алгоритм для Turbo Pascal


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


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);

Writeln(t2,'Дано:');

Writeln(t2,'Пункт №1');

Writeln(t2,'Направление: ',g1,' градусов ',m1,' минут ',s1,' секунд;');

Writeln(t2,'X=',x1:6:2,'; Y=',y1:6:2,';');

Writeln(t2,'Пункт №2');

Writeln(t2,'Направление: ',g2,' градусов ',m2,' минут ',s2,' секунд;');

Writeln(t2,'X=',x2:6:2,'; Y=',y2:6:2,';');

Writeln(t2,'Пункт №3');

Writeln(t2,'Направление: ',g3,' градусов ',m3,' минут ',s3,' секунд;');

Writeln(t2,'X=',x3:6:2,' Y=',y3:6:2,';');

Writeln(t2,'Пункт №4');

Writeln(t2,'Направление: ',g4,' градусов ',m4,' минут ',s4,' секунд;');

Writeln(t2,'X=',x4:6:2,'; Y=',y4:6:2,' .');

Writeln('Dano:');

Writeln('Pynkt #1');

Writeln('Hapravlenie: ',g1,' gradysov ',m1,' minyt ',s1,' sekynd;');

Writeln('X=',x1:6:2,'; Y=',y1:6:2,';');

Writeln('Pynkt #2');

Writeln('Hapravlenie: ',g2,' gradysov ',m2,' minyt ',s2,' sekynd;');

Writeln('X=',x2:6:2,'; Y=',y2:6:2,';');

Writeln('Pynkt #3');

Writeln('Hapravlenie: ',g3,' gradysov ',m3,' minyt ',s3,' sekynd;');

Writeln('X=',x3:6:2,' Y=',y3:6:2,';');

Writeln('Pynkt #4');

Writeln('Hapravlenie: ',g4,' gradysov ',m4,' minyt ',s4,' sekynd;');

Writeln('X=',x4:6:2,'; Y=',y4:6:2,' .');

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,'Решение:'); Writeln(t2);

Writeln(t2,'Направление 1 в радианах:',ra1:6:2,';');

Writeln(t2,'Направление 2 в радианах:',ra2:6:2,';');

Writeln(t2,'Направление 3 в радианах:',ra3:6:2,';');

Writeln(t2,'Направление 4 в радианах:',ra4:6:2,' .');

Writeln; Writeln('Reshenie:'); Writeln;

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

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

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

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

Begin

{Углы}

yg21:=ra2-ra1;

yg32:=ra3-ra2;

yg43:=ra4-ra3;

End;

Writeln(t2);

Writeln(t2,'Угол 2-1 (в радианах)=',yg21:6:2,';');

Writeln(t2,'Угол 3-2 (в радианах)=',yg32:6:2,';');

Writeln(t2,'Угол 4-3 (в радианах)=',yg43:6:2,' .');

Writeln;

Writeln('Ygol 2-1 (v radianax)=',yg21:6:2,';');

Writeln('Ygol 3-2 (v radianax)=',yg32:6:2,';');

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

Begin

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

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

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

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

End;

Writeln(t2);

Writeln(t2,'Котангенс угла 2-1 =',ct21:6:2,';');

Writeln(t2,'Котангенс угла 3-2 =',ct32:6:2,';');

Writeln(t2,'Котангенс угла 4-3 =',ct43:6:2,' .');

Writeln;

Writeln('Kotangens ygla 2-1 =',ct21:6:2,';');

Writeln('Kotangens ygla 3-2 =',ct32:6:2,';');

Writeln('Kotangens ygla 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,'Вспомогательная величина m1 = ',vm1:6:2,';');

Writeln(t2,'Вспомогательная величина n1 = ',vn1:6:2,';');

Writeln(t2,'Вспомогательная величина m2 = ',vm2:6:2,';');

Writeln(t2,'Вспомогательная величина 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('Fi 1 = ',Fi1:6:2,'; Delta 1 = ',De1:6:2,';');

Writeln('Fi 2 = ',Fi2:6:2,'; Delta 2 = ',De2:6:2,';');

Writeln('Fi 3 = ',Fi3:6:2,'; Delta 3 = ',De3:6:2,';');

Writeln('Fi 4 = ',Fi4:6:2,'; Delta 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('Koordinata X ickomogo pynkta 1: ',kipX1:6:2,';');

Writeln('Koordinata X ickomogo pynkta 2: ',kipX2:6:2,';');

Writeln(' Srednee znachenie X: ',CredX:6:2,';');

Writeln('Koordinata Y ickomogo pynkta 1: ',kipY1:6:2,';');

Writeln('Koordinata Y ickomogo pynkta 2: ',kipY2:6:2,';');

Writeln(' Srednee znachenie Y: ',CredY:6:2,' .');

Writeln('chtenie iz faila "data.txt", zapic v "result.txt"');

Close (t1);

Close (t2);

Readkey;

End.

3.6 Содержание фаила «data.txt»

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

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

0 0 0

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

10798.58

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

12689.72

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

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

73 15 40

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

8921.43

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

11123.49

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

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

180 17 23

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

9787.11

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

8585.19

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

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

282 28 14

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

12484.41

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

10294.53

-----------------------------------------------------

 

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

 

Рис.3.3 Результаты в Turbo Pascal.

Содержание фаила «result.txt»

Дано:

Пункт №1

Направление: 0 градусов 0 минут 0 секунд;

X=10798.58; Y=12689.72;

Пункт №2

Направление: 73 градусов 15 минут 40 секунд;

X=8921.43; Y=11123.49;

Пункт №3

Направление: 180 градусов 17 минут 23 секунд;

X=9787.11 Y=8585.19;

Пункт №4

Направление: 282 градусов 28 минут 14 секунд;

X=12484.41; Y=10294.53 .

Решение:

Направление 1 в радианах: 0.00;

Направление 2 в радианах: 1.28;

Направление 3 в радианах: 3.15;

Направление 4 в радианах: 4.93 .

Угол 2-1 (в радианах)= 1.28;

Угол 3-2 (в радианах)= 1.87;

Угол 4-3 (в радианах)= 1.78 .

Котангенс угла 2-1 = 0.30;

Котангенс угла 3-2 = -0.31;

Котангенс угла 4-3 = -0.22 .

Вспомогательная величина m1 = 2259.94;

Вспомогательная величина n1 = -3805.11;

Вспомогательная величина m2 = -4709.38;

Вспомогательная величина n2 = -1146.05 .

Фи 1 = -0.54; Делта 1 = -1.81;

Фи 2 = -0.59; Делта 2 = 4.02;

Фи 3 = 1.33; Делта 3 = -0.54;

Фи 4 = 4.11; Делта 4 = -0.59 .


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

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

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

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

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

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

 

3.8 Табличные вычисления MS Excel

 

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

 

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


3.9 Вычисления в MathCad

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


3.10 Анализ

Задачу №3 (обратная геодезическая засечка) была решена с помощью языка программирования Turbo Pascal и проверена с помощью табличного процессора Microsoft Excel 2007 и 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 Блок-схема алгоритма

Овал:       Начало
Блок-схема: данные: a,b

Рис. 4.1

 


Процедура для решения СЛАУ методом Гаусса

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

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

4.10 Анализ

Задача №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г.


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


© 2010 САЙТ РЕФЕРАТОВ