Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Система нелинейных уравнений 
:(
    Опции темы
лцф
Дата 30.5.2013, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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, остальное известно.
И можно ли где-то найти программную реализацию конкретно приведенной системы, хоть частичную.
PM MAIL   Вверх
Akina
Дата 30.5.2013, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Покоординатный спуск, например. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mirkes
Дата 30.5.2013, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Цитата(Akina @  30.5.2013,  13:42 Найти цитируемый пост)
Покоординатный спуск, например.  

Чуть более подробно smile
Как правило такие системы приводят к задаче минимизации функции. В вашем случае будет функция
((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
PM MAIL   Вверх
лцф
Дата 30.5.2013, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2008
Где: Подмосквич я

Репутация: нет
Всего: нет



Цитата(Mirkes @  30.5.2013,  15:09 Найти цитируемый пост)
Если минимум 0 - нашли решение. Если не ноль - решения нет. 

ну положим что не ноль, а какой-нибудь эпсилон.
Цитата(Mirkes @  30.5.2013,  15:09 Найти цитируемый пост)
Далее используете любые методы минимизации

а любые - это какие? если ли для подобной системы какие-то предпочтения? по производительности, по точности? 
 

PM MAIL   Вверх
mrgloom
Дата 30.5.2013, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



вот вроде неплохой солвер
http://ab-initio.mit.edu/wiki/index.php/NLopt
PM MAIL   Вверх
maxim1000
Дата 30.5.2013, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



кстати, а решить нужно именно, как произвольную систему уравнений или нужно просто получить ответ?

а то она аналитически вполне себе нормально решается


--------------------
qqq
PM WWW   Вверх
лцф
Дата 31.5.2013, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2008
Где: Подмосквич я

Репутация: нет
Всего: нет



Цитата(maxim1000 @  30.5.2013,  17:01 Найти цитируемый пост)
просто получить ответ?

 smile 

Цитата(maxim1000 @  30.5.2013,  17:01 Найти цитируемый пост)
а то она аналитически вполне себе нормально решается 

у меня не получилось. а какой-нибудь маткад такие системы не решает? вообще надо две системы решить, вторую из 4 уравнений - ось z еще будет. 
PM MAIL   Вверх
maxim1000
Дата 31.5.2013, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 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
PM WWW   Вверх
лцф
Дата 31.5.2013, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2008
Где: Подмосквич я

Репутация: нет
Всего: нет



Цитата(maxim1000 @  31.5.2013,  15:42 Найти цитируемый пост)
разность первых двух уравнений даст линейное уравнение относительно x0, y0 и R
разность вторых двух уравнений даст второе линейное уравнение относительно x0, y0, R

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

досюда всё ясно. 

Цитата(maxim1000 @  31.5.2013,  15:42 Найти цитируемый пост)
где все коэффициенты известны

простите, не понял...

Цитата(maxim1000 @  31.5.2013,  15:42 Найти цитируемый пост)
подставляем это в одно их уравнений и получаем квадратное уравнение относительно t

откуда там квадратное уравнение берётся? 

PM MAIL   Вверх
maxim1000
Дата 31.5.2013, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(лцф @  31.5.2013,  15:30 Найти цитируемый пост)
простите, не понял...

можно по-другому

у нас есть первое линейное уравнение относительно 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
PM WWW   Вверх
лцф
Дата 3.6.2013, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2008
Где: Подмосквич я

Репутация: нет
Всего: нет



http://www.walkinspace.ru/blog/2010-12-19-358
я так понимаю, что приведенный алгоритм на рисунке 9.1 - это оно и есть? 
PM MAIL   Вверх
maxim1000
Дата 3.6.2013, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



в принципе, про вычитание что-то похоже, да и вид уравнения такой же

хотя всякие операции над уравнениями в системах много где встречаются

Это сообщение отредактировал(а) maxim1000 - 3.6.2013, 13:22


--------------------
qqq
PM WWW   Вверх
лцф
Дата 4.6.2013, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2008
Где: Подмосквич я

Репутация: нет
Всего: нет



всё-таки это немного не то, более подробно расписано в ССРНС:


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Безымянный.JPG 126,96 Kb
PM MAIL   Вверх
Pavia
Дата 4.6.2013, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Если это практическая задача. То в исходных данных будут ошибки поэтому такую задачу решают при помощи минимизации ошибки.
Что касается метода выбираемого для минимизации. 

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

Ещё надо учесть ошибки в вычислениях и проблемы методов, как то устойчивость, но данная задача довольно таки простая. Правда в интернете толкового решения я не видел.
PM MAIL   Вверх
лцф
Дата 4.6.2013, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2008
Где: Подмосквич я

Репутация: нет
Всего: нет



Цитата(Pavia @  4.6.2013,  16:46 Найти цитируемый пост)
Правда в интернете толкового решения я не видел. 

тяжело искать то, что не очень хорошо понимаешь. Почти готовый алгоритм,
не сразу сообразил, что надо у гугля спрашивать. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0934 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.