2014 dxdy logo

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

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



Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

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



Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5, 6  След.
 
 Задача о четырехугольнике
Сообщение14.07.2014, 20:18 


04/05/13
298
Формулировка:
Даны (четыре) точки пересечения со сторонами четырехугольника перпендикуляров, опущенных на стороны из точки пересечения его диагоналей. Построить четырехугольник.
Эта "простенькая" задачка преследует меня всю жизнь. Лично мне неизвестно
a) имеет ли она решение;
б) если да, то единственное ли:
О циркуле и линейке прошу не спрашивать. Хоть какое-то решение, например, итерационный алгоритм, но чтобы с гарантией сходимости.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 03:04 


02/08/12
131
Хм, на prima vista у меня в голове пришло вот что:

Пусть искомый четырёхугольник $ABCD$, а точка пересечения его диагоналей $AC$ и $BD$ - $K$. Ваши 4 заданные точки обозначим как $P$, $Q$, $R$ и $S$. Разумеется все они лежат в одной плоскостью. Предположим, что $P\in AB$, $Q\in BC$, $R\in CD$ и $S\in AD$. В плоскостью четырёхугольника $PQRS$ вводим прямоугольную координатную систему с центром в точке $O$ и осы $x$ и $y$. Дополним эту координатную систему до полной ортонормированной системе координат, в которую ось $z$ проходит чрез точку $O$ и перпендикулярна к $PQRS$. Согласно условия Вашей задачи можем считать, что радиус-векторы $\vec r_{P}\equiv(x_{P},y_{P},0)$, $\vec r_{Q}\equiv(x_{Q},y_{Q},0)$, $\vec r_{R}\equiv(x_{R},y_{R},0)$ и $\vec r_{S}\equiv(x_{S},y_{S},0)$ - заданы. Требуется найти 5 радиус-векторов $\vec r_{A}\equiv(x_{A},y_{A},0)$, $\vec r_{B}\equiv(x_{B},y_{B},0)$, $\vec r_{C}\equiv(x_{C},y_{C},0)$, $\vec r_{D}\equiv(x_{D},y_{D},0)$ и $\vec r_{K}\equiv(x_{K},y_{K},0)$, так, чтобы выполнялись условия Вашей задачи. Теперь могу сказать то, что у меня пришло в голове, как сказал - на prima vista. Искомые 10 координат будут решения следующей системе уравнений:

$(\vec r_{A}-\vec r_{B})\cdot(\vec r_{P}-\vec r_{K})=0,$

$(\vec r_{B}-\vec r_{C})\cdot(\vec r_{Q}-\vec r_{K})=0,$

$(\vec r_{C}-\vec r_{D})\cdot(\vec r_{R}-\vec r_{K})=0,$

$(\vec r_{D}-\vec r_{A})\cdot(\vec r_{S}-\vec r_{K})=0,$

$(\vec r_{A}-\vec r_{K})\times(\vec r_{C}-\vec r_{K})=0,$

$(\vec r_{B}-\vec r_{K})\times(\vec r_{D}-\vec r_{K})=0,$

$(\vec r_{A}-\vec r_{C})\times(\vec r_{C}-\vec r_{K})=0,$

$(\vec r_{B}-\vec r_{D})\times(\vec r_{D}-\vec r_{K})=0,$

$|\vec r_{A}-\vec r_{C}|=|\vec r_{A}-\vec r_{K}|+|\vec r_{C}-\vec r_{K}|,$

$|\vec r_{B}-\vec r_{D}|=|\vec r_{B}-\vec r_{K}|+|\vec r_{D}-\vec r_{K}|.$

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 08:38 


12/02/14
808
Программа geogebra сможет Вам помочь разобраться в этой задачке. Посмотрите http://www.geogebra.org Похоже, что задачка решабельная, по крайней мере когда четырёхугольник близок к прямоугольнику. Это можно усмотреть следующим образом. Пусть А, B, C и D -- точки, данные в условиях задачи. Возьмём точку O и рассмотрим отрезки OA, OB, OC и OD. Проведя к ним перпендикулярны в наших 4-х точках, получим четырёхугольник. Пусть P -- точка пересечения его диагоналей. Таким образом возникает отображение, переводящее точку O в точку Р. Очевидно, что когда наш четырёхугольник -- прямоугольник, а заданные точки -- середины его сторон, пересечение диагоналей -- неподвижная точка нашего отображения, а производная около этой точки отображения, переводящего O в P-O, как легко видеть, невырождена. Наше отображение зависит от данных точек, как от параметров, поэтому, по теореме о неявной функции уравнение P=O будет иметь единственное решение и при конфигурациях, близких к прямоугольнику. Это решение можно найти численно, скажем, по методу сопряжённых градиентов. Элементарнго геометрического решения я пока не придумал, :-( хотя идеи есть.

 Профиль  
                  
 
 Posted automatically
Сообщение15.07.2014, 16:35 
Супермодератор
Аватара пользователя


20/11/12
5600
 i  Тема перемещена из форума «Дискуссионные темы (М)» в форум «Помогите решить / разобраться (М)»
Причина переноса: не указана.

 !  mishafromusa, замечание за неоформление формул $\TeX$ом

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 17:20 


01/12/11
941
Задача имеет решение только в отдельных случаях. Задаваемые перпендикуляры единственным образом определяют четырёхугольник. Следовательно, в их значениях содержится критерий существования требуемого четырёхугольника. Например. Два соседних перпендикуляра определяют наклон "полудиагонали", два противоположных перпендикуляра - наклон второй "полудиагонали". Если наклоны "полудиагоналей" равны, то проверяется вторая диагональ, и делается вывод о существовании требуемого четырёхугольника. Вполне возможно вывести формулу существования нужного четырёхугольника.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 19:30 


04/05/13
298
mishafromusa в сообщении #887619 писал(а):
Элементарнго геометрического решения я пока не придумал, :-( хотя идеи есть.

Проблема осложняется тем, что при итерационных попытках ее решить могут возникнуть четырехугольники в виде восьмерки.
Vitalius в сообщении #887608 писал(а):
Искомые 10 координат будут решения следующей системе уравнений:

Системка недурна, особенно приятны модули в последних уравнениях...

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 19:36 


12/02/14
808
Skeptic в сообщении #887710 писал(а):
Задача имеет решение только в отдельных случаях. Задаваемые перпендикуляры единственным образом определяют четырёхугольник.
В задаче задаются не перпендикуляры, а только их основания. В вашем рассуждении присутствует точка $O$ пересечения полудиагоналей, которую надо подобрать так, чтобы из полудиагоналей сложились диагонали, т.е. чтобы наклоны противоположных полудиагоналей были равны. Это условие даёт 2 уравнения с двумя неизвестными (координатами точки $O$), которые однозначно разрешимы, если заданные основания перпендикуляров близки к серединам сторон некоторого прямоугольника.

-- 15.07.2014, 12:40 --

mishafromusa в сообщении #887737 писал(а):
Проблема осложняется тем, что при итерационных попытках ее решить могут возникнуть четырехугольники в виде восьмерки.
Не могут, если заданные основания перпендикуляров близки к серединам сторон некоторого прямоугольника и если за начальное проближение взять пересечение диагоналей этого прямоугольника.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 20:32 
Заслуженный участник
Аватара пользователя


08/11/11
4170
Пусть данные точки $P$, $Q$, $R$, $S$. Назовём точки $A$ и $B$ сопряжёнными относительно отрезка $PQ$, если углы $APB$ и $AQB$ прямые. Другой способ: построили описанную окружность около $APQ$, провели диаметр из точки $A$, тогда другой конец этого диаметра будет точкой $B$, сопряженной к $A$.

Ясно, что нужно найти такую точку (пересечения диагоналей) $O$, что прямая, соединяющая точки, сопряжённые к $O$ относительно $PQ$ и $RS$, проходит через $O$. И то же условие для пары $QR$ и $SP$. Для первого условия окружности, описанные около $PQO$ и $ORS$, будут касаться друг друга. Следовательно, $O$ лежит на ГМТ общих точек касания касающихся окружностей, одна из которых проходит через $P$ и $Q$, другая – через $R$ и $S$. Ясно, что это ГМТ будет какой-то одномерной кривой, скорее всего окружностью. Т. е. условие для отрезков $PQ$ и $RS$ сводится к тому, что $O$ лежит на некоторой окружности. И ещё одно условие для второй пары отрезков, получаем в случае общего положения пересечение двух окружностей. Зная точку $O$, четырёхугольник восстановить очень легко.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение15.07.2014, 20:55 


12/02/14
808
Именно это решение я и печатал, когда оно появилось в исполнении g______d

-- 15.07.2014, 14:16 --

Возьмём выпуклый четырёхугольник $EFGH$. Пусть $O$ -- точка пересечения его диагоналей $EG$ и $FH$, а $OA,OB,OC$ и $OD$ -- перпендикуляры, опущенныe из $O$ на стороны $HE$, $EF$, $FG$ и $GH$ соответственно. Эти перпендикуляры разбивают наш четырёхугольник на 4 четырёхугольника . Рассмотрим один из них, скажем, $OAEB$. В нём углы $A$ и $B$ -- прямые, поэтому все его вершины лежат на окружности $C_E$ с диаметром $OE$. Обозначим через $C_F, C_G, C_H$ три другие аналогичные окружности. Очевидно, окружности $C_E$ и $C_G$ касаются в точке $O$, как и окружности $C_F$ и $C_H$. Далее решение следует по схеме, указанной g______d с ГМТ касания пар окружностей, имеющих противоположные стороны прямоугольника $ABCD$ своими хордами.

Кстати, я ещё не сообразил что за кривые эти ГМТ. Понятно, что в случае прямоугольника это просто отрезки прямых, соединяюще середины его противоположных сторон. В общем случае точки пересечения этих ГМТ со сторонами четырехугольника $ABCD$ можно построить циркулем и линейкой.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение16.07.2014, 04:06 


05/09/12
2279
Простите, соблазн был велик :-) В теге оффтопа Матлабовский код, желающие могут поиграться с начальными данными. Единственный предполагаемый минус - записывал уравнения прямых в "школьном" виде, при вертикальных сторонах финального четырехугольника будет ошибка деления на ноль.

(Оффтоп)

Код:
function Main()
clear all; close all;

P = [-11, -7;
    -2, 13;
    4, 1;
    0, -8];

    function r = diagonal_conditions(p0)
        k = (p0(1) - P(:, 1))./(P(:, 2) - p0(2));
        b = P(:, 2) - k.*P(:, 1);
        k = [k; k(1)]; b = [b; b(1)];
        for ii = 2:numel(k)
            z = k(ii) - k(ii-1);
            pv(ii-1, 1) = (b(ii-1) - b(ii))/z;
            pv(ii-1, 2) = (b(ii-1)*k(ii) - k(ii-1)*b(ii))/z;
        end
        r = [p0(2)*(pv(3, 1) - pv(1, 1)) - p0(1)*(pv(3, 2) - pv(1, 2)) - pv(1, 2)*pv(3, 1) + pv(1, 1)*pv(3, 2);
             p0(2)*(pv(4, 1) - pv(2, 1)) - p0(1)*(pv(4, 2) - pv(2, 2)) - pv(2, 2)*pv(4, 1) + pv(2, 1)*pv(4, 2)];
    end

pv = zeros(4, 2);
P0 = fsolve(@diagonal_conditions, [mean(P(:, 1)), mean(P(:, 2))]);

figure(1); axis on, axis equal, grid off, hold on
plot(P(:, 1), P(:, 2), 'ok', 'LineWidth', 2);
plot(P0(1), P0(2), 'or', 'LineWidth', 4);
pv = [pv; pv(1, :)];
plot(pv(:, 1), pv(:, 2), '-ob');

plot([pv(1, 1), pv(3, 1)], [pv(1, 2), pv(3, 2)], '-g');
plot([pv(2, 1), pv(4, 1)], [pv(2, 2), pv(4, 2)], '-g');
plot([P0(1), P(1, 1)], [P0(2), P(1, 2)], '-k');
plot([P0(1), P(2, 1)], [P0(2), P(2, 2)], '-k');
plot([P0(1), P(3, 1)], [P0(2), P(3, 2)], '-k');
plot([P0(1), P(4, 1)], [P0(2), P(4, 2)], '-k');

end


Изображение

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение16.07.2014, 11:37 


02/08/12
131
Проще будет вот та система квадратичных форм для 10 неизвестных координат $x_{A}$, $y_{A}$, $x_{B}$, $y_{B}$, $x_{C}$, $y_{C}$, $x_{D}$, $y_{D}$, $x_{K}$ и $y_{K}$:

$(\vec r_{A}-\vec r_{P})\cdot(\vec r_{P}-\vec r_{K})=0,$

$(\vec r_{B}-\vec r_{P})\cdot(\vec r_{P}-\vec r_{K})=0,$

$(\vec r_{B}-\vec r_{Q})\cdot(\vec r_{Q}-\vec r_{K})=0,$

$(\vec r_{C}-\vec r_{Q})\cdot(\vec r_{Q}-\vec r_{K})=0,$

$(\vec r_{C}-\vec r_{R})\cdot(\vec r_{R}-\vec r_{K})=0,$

$(\vec r_{D}-\vec r_{R})\cdot(\vec r_{R}-\vec r_{K})=0,$

$(\vec r_{D}-\vec r_{S})\cdot(\vec r_{S}-\vec r_{K})=0,$

$(\vec r_{A}-\vec r_{S})\cdot(\vec r_{S}-\vec r_{K})=0,$

$(\vec r_{A}-\vec r_{K})\times(\vec r_{C}-\vec r_{K})=0,$

$(\vec r_{B}-\vec r_{K})\times(\vec r_{D}-\vec r_{K})=0.$

Она удовлетворяет условия задачи ТС. И все 10 уравнения в ней вроде независимы.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение16.07.2014, 14:10 


01/12/11
941
mishafromusa в сообщении #887737 писал(а):
В задаче задаются не перпендикуляры, а только их основания. В вашем рассуждении присутствует точка $O$ пересечения полудиагоналей, которую надо подобрать так, чтобы из полудиагоналей сложились диагонали, т.е. чтобы наклоны противоположных полудиагоналей были равны. Это условие даёт 2 уравнения с двумя неизвестными (координатами точки $O$), которые однозначно разрешимы, если заданные основания перпендикуляров близки к серединам сторон некоторого прямоугольника.

Перпендикуляры заданы точками концов. Пересечение диагоналей не задано. Предположим, что диагонали пересекаются в точке пересечения перпендикуляров, тогда наклон диагонали определяется двумя соседними перпендикулярами. Если наклоны диагоналей, построенных на противоположных парах перпендикуляров равны, то точки пересечения перпендикуляров и диагоналей совпадают. Нет никаких неизвестных, имеется одно равенство, требующее проверки.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение16.07.2014, 15:21 
Заслуженный участник
Аватара пользователя


24/02/12
1588
Москва
Где же Вы возьмете направления перпендикуляров, если на каждом задана только одна точка?

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение16.07.2014, 20:50 


12/02/14
808
Vitalius в сообщении #887832 писал(а):
Проще будет вот та система квадратичных форм для 10 неизвестных координат
Можно и так, но это менее наглядно. Эта система, конечно, легко решается при помощи базиса Гребнера.

 Профиль  
                  
 
 Re: Задача о четырехугольнике
Сообщение16.07.2014, 22:16 


05/09/12
2279
Доработал код, теперь считает и вертикальные стороны, убрал цикл - сделал все по-Матлабовски векторно. Кому интересно - у меня решается система с 2 неизвестными (координаты пересечения диагоналей, остальное выражается через них). Матлабовский синтаксис некорректно отображает мой код, поэтому в теге "code".

(Оффтоп)

Код:
function Main()
clear all; close all;

P = [-11, -7; -20, 13; 4, 10; 1, -8];
% P = [-2, 0; 0, 1; 2, 0; 0, -1];
% P = [-1, -2; -1, 2; 1, 2; 1, -2];

    function r = diagonal_conditions(p0)
        a = p0(1) - P(:, 1);
        b = p0(2) - P(:, 2);
        c = a.*P(:, 1) + b.*P(:, 2);
        ac = circshift(a, -1);
        bc = circshift(b, -1);
        cc = circshift(c, -1);
        z = a.*bc - ac.*b;
        pv = [(bc.*c - b.*cc)./z, (cc.*a - c.*ac)./z];
        r = [p0(2)*(pv(3,1) - pv(1,1)) - p0(1)*(pv(3,2) - pv(1,2)) - pv(1,2)*pv(3,1) + pv(1,1)*pv(3,2);
             p0(2)*(pv(4,1) - pv(2,1)) - p0(1)*(pv(4,2) - pv(2,2)) - pv(2,2)*pv(4,1) + pv(2,1)*pv(4,2)];
    end

pv = zeros(4, 2);
P0 = fsolve(@diagonal_conditions, [mean(P(:, 1)), mean(P(:, 2))]);

figure(1); axis on, axis equal, grid off, hold on
plot(P(:, 1), P(:, 2), 'ok', 'LineWidth', 2);
plot(P0(1), P0(2), 'or', 'LineWidth', 4);
pv = [pv; pv(1, :)];
plot(pv(:, 1), pv(:, 2), '-ob');

plot([pv(1, 1), pv(3, 1)], [pv(1, 2), pv(3, 2)], '-g');
plot([pv(2, 1), pv(4, 1)], [pv(2, 2), pv(4, 2)], '-g');
plot([P0(1), P(1, 1)], [P0(2), P(1, 2)], '-k');
plot([P0(1), P(2, 1)], [P0(2), P(2, 2)], '-k');
plot([P0(1), P(3, 1)], [P0(2), P(3, 2)], '-k');
plot([P0(1), P(4, 1)], [P0(2), P(4, 2)], '-k');

end


Изображение Изображение Изображение

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group