No Image

Центр эллипса находится в точке

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

Эллипсом называется геометрическое место точек, сумма расстояний которых до двух данных точек, называемых фокусами, есть величина постоянная (больше расстояния между фокусами).

Обозначим фокусы эллипса через F1 и F2 (рисунок 2.1), а расстояние между ними через 2С

Примем за ось абсцисс прямую, соединяющую фокусы, выбрав на ней положительное направление от F2 к F1; начало координат возьмем в середине отрезка F1F2 между фокусами. Тогда координаты точек F1 и F2 будут, соответственно, (С, 0) и (–С, 0).

Обозначим сумму расстояний точек эллипса от фокусов через 2А. По определению эллипса имеем

Расписав покоординатно данное равенство, после несложных преобразований получим каноническое уравнение эллипса.

Каноническое уравнение эллипса в выбранной системе координат с данными обозначениями имеет вид

(2.4)

Есть следующая задача.

Имеется несколько точек на плоскости, как правило от 6 до 8. Я точно знаю, что они лежат на некотором эллипсе или окружности (с некоторой погрешностью). Мне нужны координаты центра окружности/эллипса. Эта задача уже 100500 раз решена и мне совсем не хочется лепить очередной велосипед. Гугление выдало массу обсуждений задачи и к сожалению ни одной строчки кода.

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

  • Вопрос задан более трёх лет назад
  • 12071 просмотр

мне точность в 1 пиксель хватит выше крыши. К сожалению больше чем примерно 25 точек я достать в любом случае не смогу. В идеале хотелось бы работать с 8 точками. Можно сслыку на статью и код?

P.S. точки довольно таки неплохо распределены по эллипсу/окружности, это должно по идее сильно упростить задачу.

Так в чем же проблема?

Уравнение эллипса известно — Ax 2 + Bxy + Cy 2 + Dx + Ey = 1.
Если выписать его для каждой точки, рассматривая x и y как известные величины, а A,B,C,D,E — как неизвестные, то получится обычная СЛАУ с пятью неизвестными и от 6 до 8 уравнениями.

Если бы координаты точек были заданы точно, это этого было бы достаточно для точного решения. Поскольку точность ограничена — надо найти больше точек и использовать МНК.

Если вы не знаете, как применять МНК к СЛАУ, то проще всего его запомнить в матричной форме:
есть уравнение вида M t = r
его решение методом МНК — это (t = M T M) -1 M T r
осталось реализовать умножение и обращение матриц.

Из первых двух уравнений получаем центр, про третье — забываем.

Сложнее обстоит дело с погрешностью — точных формул я не помню, да и что считать несколько непонятно. Возьмите 25 точек, сделайте из них от 10 до 1000 случайных выборок по 12 точек, и решите задачу для этих выборок, после чего можно найти дисперсию распределения центров.

как вам сказать… Знания лишними не бывают, поэтому если можно, то расскажите.

Но вообще мне надо на java эту проблему решить, а потому мне надо или портировать какой нить код на яву или использовать какую нить библиотеку, которая имеет порт к яве.

А ничего, что ява как бы для вычислений не предназначена?

Отстойные, но довольно быстрые, способы — через решение систем уравнений влоб. Типа, окружность по трем точкам, эллипс по восьми (?) точкам, перебираем комбинации все/случайным образом и усредняем результат. То, что предлагает mayorovp вторым пунктом. Почему отстойные — устойчивость плохая. Именно так мы делаем у себя — способы действительно отстойные и требуют костылей, но действительно быстрые. Разница между реальным центром и найденным таким способом намного меньше пикселя, но костылей действительно много. Например, отбирая треугольник при поиске окружности по 3-м точкам, нужно, чтобы все три точки были из разных четвертей окружности.
Я не рекомендую — кода много, а экономия оправдывает себя только на железе 20 летней давности, когда нужен околорилтайм. Для эллипса по-моему малореально вообще что-либо нормальное получить.

Читайте также:  Как запустить flash player в opera

Универсальный способ — метод наименьших квадратов. То есть заставить компьютер подобрать такие параметры эллипса чтобы разница между эллипсом и нашими точками была минимальной. Лучше критерий сложно придумать — хотя иногда получается не то, что ожидаешь, но это скорее говорит о том, что исходные данные неправильные.

Алгоритм такой:
1. Выбираем подходящее уравнение эллипса.
2. Пишeм целевую функцию (сумма квадратов уравнения для каждой точки исходных данных). По необходимости добавляем к целевой функции дополнительные условия, типа невырождаемости эллипса в гиперболу. Типа, если условие нарушается, устремляем ее в бесконечность.
3. Выбираем минимизатор (градиентный спуск, нормальное уравнение т. д.)
4. Если результаты не устраивают по скорости или качеству, возвращаемся к п. 3 или к п. 1.

По поводу третьего пункта. В России почему-то считается, что МНК — это когда решение идет с помощью нормального уравнения (составляем матрицы и решаем (AtA)^-1*At*x=b без итераций в один присест). Это не так. Минимизировать можно каким угодно способом. Хоть генетическими алгоритмами. Нормальное уравнение хорошо тогда, когда член (AtA)^-1 получается маленькой квадратной матрицей. То есть когда параметров мало, а точек очень много. Систему уравнений для эллипса вообще к виду A*x-b=0 привести служно. Искать соответствующие статьи как это делается мне влом, поэтому я пойду влоб, в качестве минимизатора взяв стандартный матлабовский.

Используя формулы mayorovp.

Коллега, попрошу читать мои комментарии более внимательно, не забыв выспаться.

В России почему-то считается, что МНК — это когда решение идет с помощью нормального уравнения

Между прочим, оправдано считается. Если исходное уравнение — вида A*x-b=0, то нормальное уравнение дает оптимальный результат.

Систему уравнений для эллипса вообще к виду A*x-b=0 привести сложно

Я его к этому виду привел.

Кстати, ваша программа вернет вам случайный результат, поскольку вы взяли ужасную целевую функцию. Она обращается в нуль при A=B=C=F=0 независимо от x0 и y0. Я-то написал такое уравнение, поскольку у меня первые три переменных были уже найденными (константами). А вам надо было, как и мне в первом уравнении, положить F=1.

Понятие о кривых второго порядка

Кривыми второго порядка на плоскости называются линии, определяемые уравнениями, в которых переменные координаты x и y содержатся во второй степени. К ним относятся эллипс, гипербола и парабола.

Общий вид уравнения кривой второго порядка следующий:

Читайте также:  Amd phenom ii x4 deneb 965

,

где A, B, C, D, E, F – числа и хотя бы один из коэффициентов A, B, C не равен нулю.

При решении задач с кривыми второго порядка чаще всего рассматриваются канонические уравнения эллипса, гиперболы и параболы. К ним легко перейти от общих уравнений, этому будет посвящён пример 1 задач с эллипсами.

Эллипс, заданный каноническим уравнением

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

Фокусы обозначены как и на рисунке ниже.

Каноническое уравнение эллипса имеет вид:

,

где a и b (a > b) – длины полуосей, т. е. половины длин отрезков, отсекаемых эллипсом на осях координат.

Прямая, проходящая через фокусы эллипса, является его осью симметрии. Другой осью симметрии эллипса является прямая, проходящая через середину отрезка перпендикулярно этому отрезку. Точка О пересечения этих прямых служит центром симметрии эллипса или просто центром эллипса.

Ось абсцисс эллипс пересекает в точках (a, О) и (- a, О), а ось ординат – в точках (b, О) и (- b, О). Эти четыре точки называются вершинами эллипса. Отрезок между вершинами эллипса на оси абсцисс называется его большой осью, а на оси ординат – малой осью. Их отрезки от вершины до центра эллипса называются полуосями.

Если a = b , то уравнение эллипса принимает вид . Это уравнение окружности радиуса a , а окружность – частный случай эллипса. Эллипс можно получить из окружности радиуса a , если сжать её в a/b раз вдоль оси Oy .

Пример 1. Проверить, является ли линия, заданная общим уравнением , эллипсом.

Решение. Производим преобразования общего уравнения. Применяем перенос свободного члена в правую часть, почленное деление уравнения на одно и то же число и сокращение дробей:

Ответ. Полученное в результате преобразований уравнение является каноническим уравнением эллипса. Следовательно, данная линия – эллипс.

Пример 2. Составить каноническое уравнение эллипса, если его полуоси соответственно равны 5 и 4.

Решение. Смотрим на формулу канонического уравения эллипса и подставляем: бОльшая полуось – это a = 5 , меньшая полуось – это b = 4 . Получаем каноническое уравнение эллипса:

.

Точки и , обозначенные зелёным на большей оси, где

,

называются фокусами.

называется эксцентриситетом эллипса.

Отношение b/a характеризует "сплюснутость" эллипса. Чем меньше это отношение, тем сильнее эллипс вытянут вдоль большой оси. Однако степень вытянутости эллипса чаще принято выражать через эксцентриситет, формула которого приведена выше. Для разных эллипсов эксцентриситет меняется в пределах от 0 до 1, оставаясь всегда меньше единицы.

Пример 3. Составить каноническое уравнение эллипса, если расстояние между фокусами равно 8 и бОльшая ось равна 10.

Решение. Делаем несложные умозаключения:

– если бОльшая ось равна 10, то её половина, т. е. полуось a = 5 ,

– если расстояние между фокусами равно 8, то число c из координат фокусов равно 4.

Подставляем и вычисляем:

Результат – каноническое уравнение эллипса:

.

Пример 4. Составить каноническое уравнение эллипса, если его бОльшая ось равна 26 и эксцентриситет .

Решение. Как следует и из размера большей оси, и из уравнения эксцентриситета, бОльшая полуось эллипса a = 13 . Из уравнения эсцентриситета выражаем число c, нужное для вычисления длины меньшей полуоси:

Читайте также:  Hdd 1тб western digital black

.

Вычисляем квадрат длины меньшей полуоси:

Составляем каноническое уравнение эллипса:

Пример 5. Определить фокусы эллипса, заданного каноническим уравнением .

Решение. Следует найти число c, определяющее первые координаты фокусов эллипса:

.

Получаем фокусы эллипса:

Решить задачи на эллипс самостоятельно, а затем посмотреть решение

Пример 6. Фокусы эллипса расположены на оси Ox симметрично относительно начала координат. Составить каноническое уравнение эллипса, если:

1) расстояние между фокусами 30, а большая ось 34

2) малая ось 24, а один из фокусов находится в точке (-5; 0)

3) эксцентриситет , а один из фокусов находится в точке (6; 0)

Продолжаем решать задачи на эллипс вместе

Если – произвольная точка эллипса (на чертеже обозначена зелёным в верхней правой части эллипса) и – расстояния до этой точки от фокусов , то формулы для расстояний – следующие:

.

Для каждой точки, принадлежащей эллипсу, сумма расстояний от фокусов есть величина постоянная, равная 2a.

Прямые, определяемые уравнениями

,

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

Из двух вышеприведённых уравнений следует, что для любой точки эллипса

,

где и – расстояния этой точки до директрис и .

Пример 7. Дан эллипс . Составить уравнение его директрис.

Решение. Смотрим в уравнение директрис и обнаруживаем, что требуется найти эксцентриситет эллипса, т. е. . Все данные для этого есть. Вычисляем:

.

Получаем уравнение директрис эллипса:

Пример 8. Составить каноническое уравнение эллипса, если его фокусами являются точки , а директрисами являются прямые .

Решение. Смотрим в уравнение директрис, видим, что в нём можем заменить символ эксцентриситета формулой эксцентриситета как отношение первой координаты фокуса к длине большей полуоси. Так сможем вычислить квадрат длины большей полуоси. Получаем:

.

Теперь можем получить и квадрат длины меньшей полуоси:

Уравнение эллипса готово:

Пример 9. Проверить, находится ли точка на эллипсе . Если находится, найти расстояние от этой точки до фокусов эллипса.

Решение. Подставляем координаты точки x и y в уравнение эллипса, на выходе должно либо получиться равенство левой части уравнения единице (точка находится на эллипсе), либо не получиться это равенство (точка не находится на эллипсе). Получаем:

.

Получили единицу, следовательно, точка находится на эллипсе.

Приступаем к нахождению расстояния. Для этого нужно вычислить: число c, определяющее первые координаты фокусов, число e – эксцентриситет и числа "эр" с подстрочными индексами 1 и 2 – искомые расстояния. Получаем:

Проведём проверку: сумма расстояний от любой точки на эллипсе до фокусов должна быть равна 2a.

,

так как из исходного уравнения эллипса .

Одним из самых замечательных свойств эллипса является его оптическое свойство, состоящее в том, что прямые, соединяющие точку эллипса с его фокусами, пересекают касательную к эллипсу под разными углами. Это значит, что луч, пущенный из одного фокуса, после отраэения попадёт в другой. Это свойство лежит в основе аккустического эффекта, наблюдаемого в некоторых пещерах и искусственных сооружениях, своды которых имеют эллиптическую форму: если находиться в одном из фокусов, то речь человека, стоящего в другом фокусе, слышна так хорошо, как будто он находится рядом, хотя на самом деле расстояние велико.

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector