
- •14. Оценка точности.
- •19. Оценка точности.
- •Часть 1. Преобразование координат по способу гельмерта
- •14. Оценка точности:
- •Часть 2. Аффинное преобразование координат
- •Часть 3. Билинейное преобразование координат
- •Часть 4. Сравнение искажений в трех преобразованиях
- •1. Вариантность.
- •10. Вывод
- •2. Вариантность.
- •2. Вариантность.
- •2. Вариантность.
- •Тема1: Создание регулярной сети отметок
- •Тема2: Построение горизонталей
Часть 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. В отчете должно быть в таком порядке: