2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Задача об отрезках
Сообщение03.05.2020, 22:41 
Здравствуйте!
Хочу решить следующую задачу.
Помогите, пож-та, не решением, а направлением.
Пока получается решить только построением (подбором). Но это очень долгий и утомительный путь.

Итак,
Даны 9 отрезков:
|A1|=0.611
|A2|=1.02
|A3|=1.519
|B1|=0.899
|B2|=0.839
|B3|=1.116
|C1|=1.314
|C2|=0.994
|C3|=0.967

Точки A, B, C находятся напротив точек 1, 2, 3 попарно (то есть точка А напротив точки 1, точка B напротив точки 2, точка С напротив точки 3).

Таким образом все отрезки, за исключением [A1] и [C3] взаимопересекаются.


Координата точки A(0;0)

Найти координаты точек B, C, 1, 2, 3 на плоскости.

Изображение



Решений на плоскости 4
в объёме - 8.


Хотелось бы с плоскостью разобраться, потом перейти к 3D

 
 
 
 Re: Задача о отрезках
Сообщение03.05.2020, 23:22 
$|MN| = c$ в координатах даёт уравнение $(m_x - n_x)^2 + (m_y - n_y)^2 = c^2$, вот все эти уравнения в кучу собрать да и решить.

Только тут вся конфигурация может вращаться вокруг $A$, так что без дополнительных условий (например сказать, что $B_y = 0$ и что $1_y, 2_y, 3_y$ все положительные) решений будет далеко не 4, а бесконечное число (если они есть).

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 01:52 
Я прекрасно знаю, как решать систему уравнений двух окружностей, также я прекрасно знаю, как решить подобную задачу и в 3хмерности (уравнение трех сфер), систему уравнений писать не буду, она очевидна. Это называется Трилатерация. На этом принципе построен поиск местоположения объекта по спутникам (там много поправок, не буду углубляться).
Попробуйте решить задачу методом, которым Вы предложили, это невозможно.
Вот примерно как это выглядит, когда я решаю при помощи построений.
Метод подбора.
Если у Вас получится посоветовать систему уравнений, буду рад)))

Изображение



Спасибо большое за совет!


P.S. Про вращение я не говорил специально. Всё равно все 4 решения будут в единой декартовой системе координат.

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 04:05 
Аватара пользователя
vryabenko в сообщении #1459943 писал(а):
Таким образом все отрезки, за исключением [A1] и [C3] взаимопересекаются.

[A1] и [B2] где пересекаются?

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 09:53 
Хорошо, исправлю.
Думаю, по картинке видно.
Тем более в условиях задачи сказано, что точки А,1; B,2; C,3 расположены напротив друг друга.
А по существу?


Update. К сожалению, "правка" не работает

 
 
 
 Re: Задача о отрезках
Сообщение04.05.2020, 14:18 
arseniiv в сообщении #1459957 писал(а):
$|MN| = c$ в координатах даёт уравнение $(m_x - n_x)^2 + (m_y - n_y)^2 = c^2$, вот все эти уравнения в кучу собрать да и решить.

Только тут вся конфигурация может вращаться вокруг $A$, так что без дополнительных условий (например сказать, что $B_y = 0$ и что $1_y, 2_y, 3_y$ все положительные) решений будет далеко не 4, а бесконечное число (если они есть).



arseniiv
Спасибо за подсказку.

Поставил дополнительные условия, исключающие "вращения" и сориентировал относительно декартовой системы координат.
Ввёл всё в MathCad.
3й час думает.
Неужели перебором решает?
Или могли бы Вы мне подсказать, в какой программе лучше всего решить систему из 9ти нелинейных уравнений?

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 14:28 
vryabenko
А он у вас численно решает или пытается общую формулу вывести? Пускай численно, тогда не должно быть особых проблем.

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 14:44 
arseniiv в сообщении #1460106 писал(а):
vryabenko
А он у вас численно решает или пытается общую формулу вывести? Пускай численно, тогда не должно быть особых проблем.



arseniiv
Численно, уже пошёл 4й час.
Могу файл MathCad в личку прислать?

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 14:52 
Вы лучше напишите, сколько в решаемой системе неизвестных.

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 15:30 
Ха, я тут ввожу значит в Mathematica 8 следующее:

Код:
Clear[u, eqs, vars]
vars = Flatten[{#[x], #[y]} & /@ {a, b, c, d, e, f}, 1];
u[p1_, p2_, dist_] := (p1[x] - p2[x])^2 + (p1[y] - p2[y])^2 == dist^2
eqs = {
    a[x] == a[y] == b[y] == 0, d[y] > 0, e[y] > 0, f[y] > 0,
    u[a, d, 0.611], u[a, e, 1.02], u[a, f, 1.519],
    u[b, d, 0.899], u[b, e, 0.839], u[b, f, 1.116],
    u[c, d, 1.314], u[c, e, 0.994], u[c, f, 0.967]};
NSolve[eqs, vars, Reals]

так она мало что говорит удивительное «NSolve::ratnz: NSolve was unable to solve the system with inexact coefficients. The answer was obtained by solving a corresponding exact system and numericizing the result», она ещё и за несколько секунд десять решений выдаёт, а не четыре:

Код:
{{a[x] -> 0, a[y] -> 0, b[x] -> -1.51, b[y] -> 0, c[x] -> -1.85419, c[y] -> 0.42717, d[x] -> -0.610998, d[y] -> 0.00164224, e[x] -> -0.866415, e[y] -> 0.538261, f[x] -> -1.10662, f[y] -> 1.04055},
{a[x] -> 0, a[y] -> 0, b[x] -> -1.50998, b[y] -> 0, c[x] -> -0.159876, c[y] -> 1.23744, d[x] -> -0.610991, d[y] -> 0.00330744, e[x] -> -0.86641, e[y] -> 0.538268, f[x] -> -1.10662, f[y] -> 1.04055},
{a[x] -> 0, a[y] -> 0, b[x] -> -0.701992, b[y] -> 0, c[x] -> -0.542132, c[y] -> 1.82439, d[x] -> -0.0412486, d[y] -> 0.609606, e[x] -> -0.590656, e[y] -> 0.83158, f[x] -> -1.10735, f[y] -> 1.03978},
{a[x] -> 0, a[y] -> 0, b[x] -> -0.683779, b[y] -> 0, c[x] -> -1.21986, c[y] -> 0.0662356, d[x] -> -0.023892, d[y] -> 0.610533, e[x] -> -0.587933, e[y] -> 0.833507, f[x] -> -1.11839, f[y] -> 1.0279},
{a[x] -> 0, a[y] -> 0, b[x] -> -0.627794, b[y] -> 0, c[x] -> -1.13871, c[y] -> 0.0143458, d[x] -> 0.0324591, d[y] -> 0.610137, e[x] -> -0.581882, e[y] -> 0.837743, f[x] -> -1.15964, f[y] -> 0.981119},
{a[x] -> 0, a[y] -> 0, b[x] -> 0.627794, b[y] -> 0, c[x] -> 1.13871, c[y] -> 0.0143458, d[x] -> -0.0324591, d[y] -> 0.610137, e[x] -> 0.581882, e[y] -> 0.837743, f[x] -> 1.15964, f[y] -> 0.981119},
{a[x] -> 0, a[y] -> 0, b[x] -> 0.683779, b[y] -> 0, c[x] -> 1.21986, c[y] -> 0.0662356, d[x] -> 0.023892, d[y] -> 0.610533, e[x] -> 0.587933, e[y] -> 0.833507, f[x] -> 1.11839, f[y] -> 1.0279},
{a[x] -> 0, a[y] -> 0, b[x] -> 0.701992, b[y] -> 0, c[x] -> 0.542132, c[y] -> 1.82439, d[x] -> 0.0412486, d[y] -> 0.609606, e[x] -> 0.590656, e[y] -> 0.83158, f[x] -> 1.10735, f[y] -> 1.03978},
{a[x] -> 0, a[y] -> 0, b[x] -> 1.50998, b[y] -> 0, c[x] -> 0.159876, c[y] -> 1.23744, d[x] -> 0.610991, d[y] -> 0.00330744, e[x] -> 0.86641, e[y] -> 0.538268, f[x] -> 1.10662, f[y] -> 1.04055},
{a[x] -> 0, a[y] -> 0, b[x] -> 1.51, b[y] -> 0, c[x] -> 1.85419, c[y] -> 0.42717, d[x] -> 0.610998, d[y] -> 0.00164224, e[x] -> 0.866415, e[y] -> 0.538261, f[x] -> 1.10662, f[y] -> 1.04055}}

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

P. S. Притом the corresponding exact system — это точно не та, что получится, если заменить численные расстояния на переменные. Интересно, к какой же системе она там приходит…

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 15:31 
Pphantom

Для удобства переименую названия точек "1;2;3" на "D, E, F"

То есть даны 6 точек: A(x;y), B(x;y), C(x;y), D(x;y), E(x;y), F(x;y)
Координаты точки A[0;0]
Координаты точки D[0;y]

Чтобы исключить "вращение" (D[0;y]) и решить только для одного квадранта, вводим дополнительные условия
Bx>0; Cx>0; Ex>0; Fx>0; Dy>0.

Даны длины отрезков:

|AD|=0.611
|AE|=1.02
|AF|=1.519
|BD|=0.899
|BE|=0.839
|BF|=1.116
|CD|=1.314
|CE|=0.994
|CF|=0.967

Найти:
D(y), B(x,y), C(x,y), E(x,y), F(x,y)

9 неизвестных Bx,By,Cx,Cy,Dy,Ex,Ey,Fx,Fy,
так как
Ax=0
Ay=0
Dx=0

MathCad считает долго.....

-- 04.05.2020, 15:35 --

arseniiv
Спасибо, поизучаю Mathematica 8

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 15:35 
vryabenko в сообщении #1460131 писал(а):
так как
Ax=0
Bx=0
Dx=0
Боюсь, с таким условием оно будет считать очень долго. :-) Посмотрите на собственную картинку и подумайте, насколько это правдоподобно.

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 15:38 
Да, я вот задавал условия куда либеральнее ещё в исходном предложении
и их же записал в коде, не более.

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 15:43 
Pphantom в сообщении #1460134 писал(а):
vryabenko в сообщении #1460131 писал(а):
так как
Ax=0
Bx=0
Dx=0
Боюсь, с таким условием оно будет считать очень долго. :-) Посмотрите на собственную картинку и подумайте, насколько это правдоподобно.


А я написал, что Bx>0; Cx>0; Ex>0; Fx>0

Да, я там опечатался (в программе этого нет, при переносе сюда ошибся)

По поводу правдоподобности. Это реальные размеры на картинке.

-- 04.05.2020, 15:44 --

arseniiv
Да, я добавил эти условия, спасибо.
Только не по y, а по x. При этом условии будет только один квадрант. "Y" при этом может быть отрицательным.

Сколько считает Wolfram?

 
 
 
 Re: Задача об отрезках
Сообщение04.05.2020, 15:44 
$F_x > 0$ не очевидно. Вдруг $\angle FAB$ тупой.

-- Пн май 04, 2020 17:45:21 --

vryabenko в сообщении #1460136 писал(а):
Сколько считает Wolfram?
У меня секунды четыре.

-- Пн май 04, 2020 17:47:51 --

Попробуйте не добавлять много условий, а только те, которые у меня: $A_x = A_y = B_y = 0, D_y > 0, E_y > 0, F_y > 0$, вдруг всё сразу выйдет; и проверьте, что используемая функция используется как должно, мало ли там какие нюансы; если переходить на Mathematica, нюансов там тоже вагон и маленькая тележка.

-- Пн май 04, 2020 17:48:28 --

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

 
 
 [ Сообщений: 23 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group