Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ммм.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
90.18 Кб
Скачать

Часть 3. Билинейное преобразование координат

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Отчет должен содержать такие пункты:

1. Уравнения преобразования:

X = Ao + A1∙U + A2∙V + A3∙U∙V

Y = Bo + B1∙U + B2∙V + B3∙U∙V

Решение состоит в том, чтобы найти коэфф-ты Ai и Bi. При

вычислении Ai и Bi - количество знаков после запятой - 8.

2. Составляем уравнения поправок (их кол-во - 10) для абсцисс:

а. В общем виде:

V(x)i = Ao + A1∙Ui + A2∙Vi + A3∙Ui∙Vi - Xi

б. В числовом виде:

Здесь студент пишет свои 10 уравнений

Решение в MatLab:

% Уравнения поправок: vxi = Ao + A1*Ui + A2*Vi + A3*Ui*Vi - Xi

ed = ones(10,1) % - 10 этажей, один подъезд;

% .* - поэлементное умножение матриц:

W = U.*V

Напишите:

% Матрицу уравнений поправок

% Вектор свободных членов

3. Условие ∑v² = min доставляет 4 норм уранения.

% Матрица нормальных уравнений:

N = A'*A; alfa = det(N) % alfa <> 0 (не нуль)

4. Решение системы

5. Проверка решения системы:

Список поправок

[v] = 0, [vU] = 0, [vV] = 0, [vUV] = 0.

Ф3 = ∑v²

6. Тоже считаем для ординат: Составляем уравнения поправок

для ординат:

а. В общем виде:

V(y)i = Bo + B1∙Ui + B2∙Vi + B3∙Ui∙Vi - Yi

б. В числовом виде:

Здесь студент пишет свои 10 уравнений

7. Условие ∑v² = min доставляет 4 норм уранения:

8. Решение системы

9. Проверка решения системы:

Список поправок

[v] = 0, [vU] = 0, [vV] = 0, [vUV] = 0.

Ф3 = ∑v²

10. Итого ключ перехода от U,V к X,Y:

11. Оценка точности (см конспект лекций)

12. Сравнение оценок с преобразованием по Гельмерту:

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

| Преобразование по Гельмерту | Билинейное преобразование |

|------------------------------|----------------------------|

| Xo= | Ao= |

| A= | A1= |

| B= | A2= |

| Yo= | Bo= |

| A= | B1= |

| B= | B2= |

| ∑vxi² = | ∑vxi² = |

| ∑vyi² = | ∑vyi² = |

| µ = | µ = |

| Масштаб = | |

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

15. Сравнение сумм квадратов поправок: Ф1 > Ф2 > Ф3.

Часть 4. Сравнение искажений в трех преобразованиях

1. Преобразование координат по способу ГЕЛЬМЕРТА

Для вычисления искажений по всем трем преобразованиям

необходимо иметь три точки, координаты которых известны

в обеих СК.

Такими точками удобно взять:

Таблица 1:

Xo = ... Yo = ... Uo = 0 Vo = 0

X1 = ... Y1 = ... U1 = 100 V1 = 0

X2 = ... Y2 = ... U2 = 0 V2 = 100

Таблица 2:

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

|D12-xoy|D12-uov| m |Sxoy|Suov| m^2 |D01-xoy|D01-uov| AL-xoy | AL-uov |

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

| | | | | | | | | | |

Заполните эти две таблицы. При заполнении следуйте

по такой схеме.

Начертите на плане данный треугольник красной шариковой ручкой

и заполните таблицу 1.

Координаты Xo и Yo в этой таблице известны из решения задачи,

а координаты 1 и 2 точек следует вычислить по ключу

используя A и B из вычислений студента.

Далее в таблице 2 следует вычислить:

D12-xoy - расстояние между 1 и 2 точками в СК XOY;

D12-uov - расстояние между 1 и 2 точками в СК UOV.

Эти расстояния вычисляйте по теореме Пифагора.

m = (D12-xoy)/(D12-uov),

этот масштаб точно равен масштабу, вычисленному вами в преобразовании

по Гельмерту.

Затем необходимо вычислить:

Sxoy - площадь треугольника 012 в СК XOY;

Suov - площадь треугольника 012 в СК UOV.

Площадь треугольника удобно вычислить в MatLab через определитель (det):

|Xo Yo 1|

Sтреугол = 0.5∙|X1 Y1 1|

|X2 Y2 1|

Заметим, что искажение длин для преобразования по Гельмерту мы

ожидаем равное масштабу m, а искажение площадей - равное m^2.

Угол 012 в СК UOV равен 45 град.

Угол 012 в СК XOY следует вычислить через площадь треугольника

и расстояний 10 и 12:

Sin(Угла012) = 2∙S/(D10∙D12).

Расстояние 1-2 известно из предыдущих вычислений,

а расстояние 1-0 следует вычислить.

Арксинус вычислить через функцию ASIN.

2. Билинейное преобразование координат.

Здесь также следует заполнить таблицы 1 и 2.

Формулы аналогичны.

3. Аффинное преобразование.

Здесь также слеедует заполнить таблицы 1 и 2.

4. Сравнение искажений:

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

| | И с к а ж е н и я : |

|Преобразование|-----------------------------------------------------|

| | Длин | Площадей | Углов |Прямых линий|Паралл.прямых |

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

| По Гельмерту | |

| Билинейное | |

| Аффиннное. | |

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

Данную таблицу следует заполнять словами Есть, Нет.

Вопросы:

1. В чем состоит условие задачи ?

2. Сколько параметров преобразования в задаче по Гельмертa ?

3. Есть ли линейная связь между этими параметрами ?

4. Как привели к линейной связи между параметрами ?

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

при решении задачи через Topograd и вручную ?

6. Сколько параметров преобразования в билинейном преобразовании ?

7. Почему сумма квад поправок в билинейном преобразовании меньше ?

8. Как свести эту сумму к нулю ?

ЗАДАНИЕ 2. ПОСТРОЕНИЕ ЦМР МЕТОДОМ ТРИАНГУЛИРОВАНИЯ ДАННЫХ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. На листе формата А4 нарисовать карандашем: студентам с четными

номерами по списку - тальвег, а студентам с нечетными номерами -

водораздел. Рельеф занимает полностью лист формата А4 выглядит

в виде шести горизонталей с сечение рельефа 1 метр.

2. Тальвег или водораздел ориентирован на северо-восток - у

студентов, чьи номера зачетных книжек являются четными, и

на юго-восток, если номер зачетной книжки - нечетный.

3. Отметка самой младшей горизонтали численно равна номеру первой

буквы фамилии студента в алфавитном порядке. Например первая буква

в фамилии Молодцов - "М", ее номер в алфавите - 12. Значит младшая

горизонталь имеет отметку 12 м.

4. После вычерчивания горизонталей представить, что студент видит

стереомодель рельефа и набирает пикеты в характерных местах

рельефа. Следует выбрать три пикета вдоль линии тальвега

(водораздела) и четыре пикета по краям чертежа. На основании

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

Всего - 7 пикетов. Каждый пикет подписать -числитель/знаменатель

= номер пикета/отметка пикета, например, 5/12.38.

5. Красной шариковой ручкой показать пунктиром орографическую линию.

6. Начертить систему координат, масштаб - 1:1000. Провести линии

сетки зеленой шариковой ручкой через каждые 5 см. Координаты

начала координат взять из курсовой работы.

7. Для каждого пикета снять его координаты X и Y и заполнить таблицу

"Каталог координат": Номер точки, X, Y, H.

8. Для построения ЦМР необходимо объединить эти пикеты в

треугольники методом Делоне. То есть студент должен моделировать

поведение программы, реализующей алгоритм Делоне.

9. То есть:

1. Выбрать самый южный пикет.

2. Выбрать самый ближайший пикет - данные два пикета образуют

первую сторону триангуляции Делоне.

3. Посмотреть из каждого из оставшихся пикетов на первую сторону

и выбрать тот пикет, из которого первая сторона видна под

максимальным углом. Это и есть третья сторона первого

треугольника!

4. От каждой стороны первого треугольника найти третью точку и

т.д.

Количество треугольников равно:

кол-во пикетов - 2 + кол-во внутренних точек.

10. Треугольники следует чертить тонким карандашем. Треугольники

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

11. Используя систему MatLab выполнить триангуляцию Делоне. Для этого

создать M-файл. Ниже приводим примерное содержание M-файла:

% Чтобы очистить "Командное окно": команда clc.

% Очистить Workspace удобно через контекстное меню (правый клик).

hold on;

% Показать линии сетки:

grid on;

% Устанавливаем масштабы для осей X и Y:

axis([0 7 1 8]); % то есть 0 <= X <= 7, а 1 <= Y <= 8

% Подпись осей:

% \it - наклоняет подпись осей:

xlabel('\it Ось X'); ylabel('\it Ось Y');

% axes('XLim',[0 6.5], 'YLim',[0 5.5])

title('Трингуляцию Делоне построил студент Зиборов');

% Каталог координат:

x = [2 1 3 6 5 ];

y = [2 5 7 5 2 ];

% Функция delaunay возвращает триангуляцию в виде строчек,

% в которых содержится перечень точек каждого треугольника:

t = delaunay(x, y)

% Точка с запятой отменяет вывод данных в командное окно.

% Рисую триангуляцию:

triplot(t, x, y)

% Хочу нарисовать еще и кружочки, поэтому hold on (по умолчанию - hold off)

% hold on; % к нарисованному добавлю еще и кружочки:

plot(x, y, 'or'); % o - означает нарисовать кружок, r = red - цвет

% hold off

% Далее следует вручную подписать номер каждой точки на Figure: от 1

% до 7 пользуясь средством "А" Insert Text

% Матрицу t студент должен распечатать и объяснить ее структуру

12. Чертеж, выполненный в MatLab следует распечатать и добавить с отчет

по данной работе.

13. Треугольники не должны пересекать структурные (орографические)

линии, поэтому все треугольники следует просмотреть и если

необходимо, то переназначить стороны триангуляции. Этот процесс

в геоинформатике называют "флип граней" [flip=англ=перекидывать].

Окончательную триангуляцию следует показать черной шариковой

ручкой. При этом и триангуляция Делоне и исправленная

триангуляция должны быть видны на чертеже.

14. Для каждого треугольника найти коэффициенты для линейной модели

H(X,Y) = Ao + A1∙X + A2∙Y.

Для этого в каждом треугольнике составляем систему трех

уравнений. В отчете оформляем решение таким образом:

Первый треугольник:

Например, этот треугольник объединяет 6-ю, 7-ю и 1-ю точки,

значит будем иметь такую систему:

Ao + A1∙X6 + A2∙Y6 = H6

Ao + A1∙X7 + A2∙Y7 = H7

Ao + A1∙X1 + A2∙Y1 = H1

В численном виде эта система будет иметь вид:

Ao + A1∙23.6 + A2∙56.4 = 13.46

Ao + A1∙13.4 + A2∙57.2 = 15.48

Ao + A1∙52.9 + A2∙12.3 = 11.23

Решение системы: Ao=...; A1=...; A2=...

Образец решения этой системы уравнений в MatLab с помощью M-файла:

% Ao + A1*23.6 + A2*56.4 = 13.46

% Ao + A1*13.4 + A2*57.2 = 15.48

% Ao + A1*52.9 + A2*12.3 = 11.23

% Ответ:

% Ao = 23.112068

% A1 = -0.20474225

% A2 = 0.08546367

% N * x = L

N = [ 1 23.6 56.4;

1 13.4 57.2;

1 52.9 12.3 ]

L = [ 13.46; 15.48; 11.23 ]

x = inv(N) * L % inv - взять обратную матрицу

Теперь смотрим на чертеж: какие узлы сетки 5 см х 5 см

принадлежат первому треугольнику ? Для этих узлов находим

отметки по формуле:

H(X,Y) = Ao + A1∙X + A2∙Y.

Вычисления отметок узлов приводим здесь.

Второй треугольник:

Выполняем теже вычисления, что и для первого.

И т.д. для каждго треугольника.

15. Далее отметки в узлах регулярной сетки 5 см x 5 см

записываем в таблицу "Отметки узлов":

|Xузла|Yузла|Номер треугольника|Hпл|Hгор|V=Hпл-Hгор|

Нпл - это отметка узла, полученная по формуле плоскости.

Нгор - это отметка узла, полученная по горизонталям.

Затем подписываем каждый узел на плане -

- числитель/знаменатель - числитель - вычисленная отметка

узла, знаменатель - отметка узла, полученная по горизонталям.

16. Сравнение вычисленной отметки каждого узла с отметкой,

полученной интерполированием по горизонталям, сделаем

по средней квадратической ощибке:

Средняя квадратич ошибка µ = КОРЕНЬ{∑V²/(n-1)},

где n - кол-во узлов. Сделайте вывод.

17. В каждом треугольнике вычислить положение горизонталей, которые

определяем как пересечение плоскости треугольника и плоскости

уровня горизонтали. То есть уравнение горизонтали на плоскости,

например, треугольника 1-3-5 состоит из уравнения плосости

треугольника 1-2-3:

H(X,Y) = 18.437 + 0.01234∙X - 0.00362∙Y

и уравнения плоскости уровенной поверхности:

H(X,Y) = 22.

То есть уровня 22-ой горизонтали.

Таким образом, уравнение 22-ой горизонтали на плоскости

треугольника 1-3-5 будет иметь вид:

18.437 + 0.01234∙X - 0.00362∙Y = 22, (1)

а уравнение 23-ей горизонтали на плоскости треугольника

1-3-5 будет иметь такой вид:

18.437 + 0.01234∙X - 0.00362∙Y = 23.

Теперь определим точку пересечения 22-ой горизонтали и стороны

треугольника 1-3. Координаты точки 1: х = 18.6, у = 52.4;

координаты точки 3: х = 33.5, у = 81.7. Отсюда уравнение

прямой 1 - 3 имеет вид:

(X - X1)/(Y - Y1) = (X3 - X1)/(Y3 - Y1)

или

(X - 18.6)∙(81.7 - 52.4) = (Y - 52.4)∙(33.5 - 18.6)

или

(X - 18.6)∙29.3 = (Y - 52.4)∙ 14.9

или

29.3∙X - 18.6 ∙ 29.3 = 14.9∙Y - 52.4 ∙ 14.9

или

29.3∙X - 14.9∙Y = 18.6 ∙ 29.3 - 52.4 ∙ 14.9

Последнее уравнение решаем совместно с уравнением 22-ой

горизонтали, например, в Eureka, и получаем координаты

пересечения 22-ой горизонтали со стороной треугольника 1-3.

Таким образом находим пересечение всех горизонталей co

сторонами всех треугольников и соединяем соответствующие

пересечения красной шариковой ручкой (то есть проводим

горизонтали).

18. Провести горизонтали в треугольниках под линейку красной

шариковой ручкой пользуясь формулой плоскости, проходящей

через этот треугольник.

19. Таким образом, что должно быть на плане ?

1. Горизонтали в карандаше.

2. Пикеты - числитель/знаменатель - в карандаше.

3. Система координат X-Y с подписанными через 1 см

координатами - черной шариковой ручкой, между осями

- 90 град.

4. Орографичекая линия - пунктиром - красная шариковая

ручка.

5. Нумерация треугольников.

6. Линии сетки - числитель\знаменатель - две отметки -

- зеленая шариковая ручка.

7. Красные горизонтали в треугольниках.

20. В отчете должно быть в таком порядке: