![]() |
|
![]() ![]() ![]() |
|
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
Добрый день.
Подскажите, каким методом сподручнее решать системы вида: (x1-x0)^2 + (y1-y0)^2 = (R1 + R)^2 (x2-x0)^2 + (y2-y0)^2 = (R2 + R)^2 (x3-x0)^2 + (y3-y0)^2 = (R3 + R)^2 найти надо x0, y0, R, остальное известно. И можно ли где-то найти программную реализацию конкретно приведенной системы, хоть частичную. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Покоординатный спуск, например.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Чуть более подробно ![]() Как правило такие системы приводят к задаче минимизации функции. В вашем случае будет функция ((R1-R)^2-(X1-X0)^2-(Y1-Y)^2)^2+ ((R2-R)^2-(X2-X0)^2-(Y2-Y)^2)^2+ ((R3-R)^2-(X3-X0)^2-(Y3-Y)^2)^2=F Далее используете любые методы минимизации, например покоординатный спуск, и ищете минимум F Если минимум 0 - нашли решение. Если не ноль - решения нет. -------------------- Mirkes |
|||
|
||||
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
ну положим что не ноль, а какой-нибудь эпсилон. а любые - это какие? если ли для подобной системы какие-то предпочтения? по производительности, по точности? |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
||||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
кстати, а решить нужно именно, как произвольную систему уравнений или нужно просто получить ответ?
а то она аналитически вполне себе нормально решается -------------------- qqq |
|||
|
||||
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
||||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
разность первых двух уравнений даст линейное уравнение относительно x0, y0 и R
разность вторых двух уравнений даст второе линейное уравнение относительно x0, y0, R в геометрическом смысле это - пересечение двух плоскостей, т.е. прямая раз это прямая, на ней можно выбрать условный параметр t и сказать, что x0=a+b*t, y0=c+d*t, R=e+f*t, где все коэффициенты известны подставляем это в одно их уравнений и получаем квадратное уравнение относительно t, находим два значения, вычисляем два набора x0,y0,R для трёхмерного пространства и 4-х уравнений можно так же, только мороки больше Добавлено через 38 секунд понятно, что будут всякие вырожденные случаи, но их можно отдельно обрабатывать -------------------- qqq |
|||
|
||||
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
досюда всё ясно. простите, не понял...
откуда там квадратное уравнение берётся? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
можно по-другому у нас есть первое линейное уравнение относительно x0,y0,R берём x0 и выражаем через y0 и R подставляем во второе линейное уравнение получаем линейное уравнение относительно y0 и R выражаем y0 через R получим что-то вида y0=a*R+b подставляем этот y0 в выражение для x0 получим что-то вида x0=c*R+d теперь берём любое из исходных уравнений и подставляем туда x0 и y0 после раскрытия скобок получим квадратное уравнение относительно R находим два корня для каждого корня находим соответствующие x0 и y0 -------------------- qqq |
|||
|
||||
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
http://www.walkinspace.ru/blog/2010-12-19-358
я так понимаю, что приведенный алгоритм на рисунке 9.1 - это оно и есть? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
в принципе, про вычитание что-то похоже, да и вид уравнения такой же
хотя всякие операции над уравнениями в системах много где встречаются Это сообщение отредактировал(а) maxim1000 - 3.6.2013, 13:22 -------------------- qqq |
|||
|
||||
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
всё-таки это немного не то, более подробно расписано в ССРНС:
Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Если это практическая задача. То в исходных данных будут ошибки поэтому такую задачу решают при помощи минимизации ошибки.
Что касается метода выбираемого для минимизации. В виду того что функция ошибки не является монотонной, то градиентный спуск и прочие методы сразу отпадают. Можно выделить метода которые тут будут работать. Перебор всех или наиболее разумных точек. Что очень долго. Второе это метод наименьших квадратов. Третье это методы нелинейной оптимизации. Ещё надо учесть ошибки в вычислениях и проблемы методов, как то устойчивость, но данная задача довольно таки простая. Правда в интернете толкового решения я не видел. |
|||
|
||||
лцф |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2008 Где: Подмосквич я Репутация: нет Всего: нет |
тяжело искать то, что не очень хорошо понимаешь. Почти готовый алгоритм, не сразу сообразил, что надо у гугля спрашивать. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |