2014 dxdy logo

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

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


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


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

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

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

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

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



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


12/02/14
808
Спасибо за картинку самопересекающегося, четырёхугольника,_Ivana, я так и думал. :-) И за другие картинки тоже, теперь понятно как расщепляется вырожденная окружность, проходящая через данные точки, как вершины убегают на бесконечность, и что соответствует вырожденной окружности решений.

-- 20.07.2014, 08:33 --

Skeptic, а можно на это посмотреть?

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


02/08/12
142
Skeptic в сообщении #888930 писал(а):
Vitalius, должны кривые в сообщении #888830 проходить через точку пересечения осей и перпендикуляров?


Точка пересечения осей координатной системой ли имеете ввиду? Да, в данном случае она является точкой $P$ - основание перпендикуляра, спущен из точку пересечения диагоналей (эту точку я обозначаю как $K$) искомого четырёхугольника $ABCD$ к $AB$. Кривые также как и в невырожденных случаях проходят через неё - на чертеже это видно. Через точку $K$ пересечения перпендикуляров (и диагоналей искомого четырёхугольника $ABCD$) тоже проходят эти кривые. На чертеже эта точка находится внутри четырёхугольника $PQRS$ как и должно быть согласно условия.

mishafromusa в сообщении #888937 писал(а):
Skeptic, а можно на это посмотреть?


А что смотреть-то? Если речь идёт об уравнения, которые определяют координаты точку $K$ через координаты заданных точек $P$, $Q$, $R$ и $S$, то они у нас есть, при этом в достаточно компактном виде - каждое из них это алгебраическое уравнение, содержащее 4 определителя матриц 4 ранга. Тот класс замкнутых алгебраических крив 4 порядка, которые определяют эти уравнения с 4 определителями, мне понравился.

Вот картинки с почти вырожденном случае $(x_{P},y_{P})=(0.001,0.001)$, $(x_{Q},y_{Q})=(1,0)$, $(x_{R},y_{R})=(2,2)$, $(x_{S},y_{S})=(-1,1)$ (всего на 1/1000 изменил координаты точки $P$, а всё остальное оставил как и в вырожденном случае):

Изображение

Изображение

Ясно видно как и откуда вырождение появляется при $(x_{P},y_{P})=(0,0)$). Отметим ещё одно свойство наших крив - они не самопересекаются. Только "перешейка между двумя полуостровами" может быть очень узкой - также как и "вход залива между ними".

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


02/08/12
142
Кстати, всё-таки есть случаи когда наши кривые не замкнуты. Это когда $PQRS$ - параллелограмм. Вот пример:

$(x_{P},y_{P})=(0,0)$, $(x_{Q},y_{Q})=(1,0)$, $(x_{R},y_{R})=(2,2)$, $(x_{S},y_{S})=(1,2)$

Изображение

Изображение

Кривые асимптотически выходят на прямые, которые параллельны странам параллелограмма.

Для прямоугольников $PQRS$ картинка не очень интересна - ибо это вырожденный случай из-за того, что вокруг них можно описать окружность. Кривые распадаются на ту же самую описанную окружность и две перпендикулярные прямые, пересекающиеся в центре прямоугольника.

Похоже когда $PQRS$ трапеция ($PQ||RS$), одна из кривых ($G_{PQRS}(x,y)=0$) не замкнута. Однако в этом случае асимптотические прямые этой кривы не параллельны странам $PQ$ и $RS$ трапеции $PQRS$.

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


04/05/13
313
_Ivana в сообщении #888721 писал(а):
Не знаю как другие, а мне еще непонятны вопросы существования и единственности решения, о чем ТС (пропавший) также завещал. Хотя насчет некоторых вариантов несуществования у меня есть мысли.

Я отнюдь не пропал и внимательно слежу за дискуссией.

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


12/02/14
808
Vitalius в сообщении #889049 писал(а):
А что смотреть-то? Если речь и
Я спрашивал Skepticа, а он решал задачу иначе, итерациями.

-- 20.07.2014, 22:59 --

Skeptic в сообщении #888868 писал(а):
Получил аналитическое выражение связи координат точек пересечения перпендикуляров и диагоналей в четырёхугольнике. Это система двух кубических уравнений.
А можно ли посмотреть на это выражение?

-- 20.07.2014, 23:05 --

Vitalius в сообщении #889061 писал(а):
Похоже когда $PQRS$ трапеция ($PQ||RS$), одна из кривых ($G_{PQRS}(x,y)=0$) не замкнута.
Как и в случае параллелограма.

-- 20.07.2014, 23:07 --

Vitalius в сообщении #889061 писал(а):
Для прямоугольников $PQRS$ картинка не очень интересна
Но ужасно вырождена.
Кстати, прямые -- это окружности бесконечного радиуса, и если смотреть на наши картинки, как картинки на проективной плоскости, то ситуация несколько упрощается.

-- 20.07.2014, 23:16 --

Vitalius в сообщении #889049 писал(а):
Вот картинки с почти вырожденном случае
Тут хорошо видно, как из 4-х окружностей, 2 из которых совпадают, получаются 2 кривые 4-й степени.

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


02/08/12
142
Окружности в вырожденном случае три (3). При этом 3 окружность - общая для обеих вырожденных кривых 4 порядка.

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

$(x_{P},y_{P})=(0,0)$; $(x_{Q},y_{Q})=(1,0)$; $(x_{R},y_{R})=(2,2)$; $(x_{S},y_{S})=(-1,1)$;

$(x_{A},y_{A})=(-\frac{16}{15},\frac{8}{15})$; $(x_{B},y_{B})=(\frac{3}{5},-\frac{3}{10})$; $(x_{C},y_{C})=(\frac{13}{5},\frac{6}{5})$; $(x_{D},y_{D})=(-\frac{2}{5},\frac{26}{5})$; $(x_{K},y_{K})=(\frac{2}{5},\frac{4}{5})$.

Изображение

Данный четырёхугольник $PQRS$ на рисунке окрашен в чёрном, искомый четырёхугольник $ABCD$ - в коричневом, его диагонали $AC$ и $BD$ - в оранжевом, а перпендикуляры, спущенные к странам $ABCD$ от точку $K$ пересечения диагоналей - в зеленном. Наши кривые как и в неполной картинке окрашены в синем и красном цвете.

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


02/08/12
142
А вот и полная картинка в "красивом" невырожденном случае:

$(x_{P},y_{P})=(0,0)$, $(x_{Q},y_{Q})=(1,0)$, $(x_{R},y_{R})=(2,4)$, $(x_{S},y_{S})=(-1,1)$

$x_{A}=\frac{-1943253794180608-4858134485451520 \sqrt{17}+39879733250302 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{12631149662173952}+$

$+\frac{1403866486305424 \sqrt{3 \left(-43+13 \sqrt{17}\right)}-1941375504529 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}-22068557295 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}}{12631149662173952}$,

$y_{A}=\frac{13602776559264256-2429067242725760 \sqrt{17}+37645104711414 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{6315574831086976}-$

$-\frac{570564184193 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}+10853314455 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}+511667054324128 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{6315574831086976}$,

$x_{B}=\frac{14-\sqrt{3 \left(-43+13 \sqrt{17}\right)}}{13}$,

$y_{B}=\frac{823377822766720-240237419610240 \sqrt{17}+7314616653346 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{475136229895808}-$

$-\frac{39670379847 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}+1252565865 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}+62856231370288 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{475136229895808}$,

$x_{C}=\frac{-158556696942758400-206123706025585920 \sqrt{17}-5135141052712798 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{484390709160126912}-$

$-\frac{163911995483399 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}+369894579465 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}-654742865487707024 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{484390709160126912}$,

$y_{C}=\frac{5072228735198841216+103061853012792960 \sqrt{17}+5283476223566786 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{968781418320253824}+$

$+\frac{143333194298953 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}+212706401415 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}-606684443323869232 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{968781418320253824}$,

$x_{D}=\frac{726776919023547392+27066749276087040 \sqrt{17}+1924867432344618 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{322996541361305344}+$

$+\frac{31381713698949 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}-88900795845 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}-215594071402242896 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{322996541361305344}$,

$y_{D}=\frac{680138827963212800-13533374638043520 \sqrt{17}-509685485109298 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}}{161498270680652672}-$

$-\frac{5459125608789 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}-49077910845 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}-51917654582904480 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{161498270680652672}$,

$x_{K}=\frac{-1+\sqrt{3 \left(-43+13 \sqrt{17}\right)}}{13}$,

$y_{K}=\frac{-53386093246720-389126111786 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{3/2}-8793924573 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{5/2}}{138803842441472}-$

$-\frac{3977235 \sqrt{3} \left(-43+13 \sqrt{17}\right)^{7/2}-37349752659824 \sqrt{3 \left(-43+13 \sqrt{17}\right)}}{138803842441472}$.

Изображение

Точные решения для координаты искомых точек $A(x_{A},y_{A})$, $B(x_{B},y_{B})$, $C(x_{C},y_{C})$, $D(x_{D},y_{D})$ и $K(x_{K},y_{K})$, получил с помощью системой квадратичных форм, которую предложил. Как видите координаты точки $K(x_{K},y_{K})$ получаются такие же, как и решение системы от двух уравнений с 4 определителями, которые задают наши алгебраические кривые 4 порядка (они окрашены в красном и синем цвете на чертеже).

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


01/12/11

1047
Нашёл два четырёхугольника, имеющих общие точки оснований перпендикуляров.
Код:
Основания перпендикуляров
            X=2273.9403  Y=-1431.1553
            X=2403.8937  Y=-1481.1734
            X=2463.5689  Y=-1502.9207 
            X=2595.3806  Y=-1464.8595 

Первый четырёхугольник

            X=2447.4969  Y=-1249.7398 
            X=2693.3102  Y=-1607.3133 
            X=2411.4709  Y=-1479.2478 
            X=2168.9776  Y=-1540.8710 

Второй четырёхугольник
            X=2273.0563  Y=-1373.7644 
            X=2437.4143  Y=-1508.6916 
            X=2593.0517  Y=-1474.3511 
            X=2293.4167  Y=-2695.5119 

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


05/09/12
2587
mishafromusa в сообщении #888863 писал(а):
Интересно было бы сделать игрушку, в которой данные точки можно таскать мышкой и смотреть как меняются ГМТ, пары касающихся окружностей и четырёхугольники, соответствующие точкам пересечения ГМТ. Это несложно сделать в Mathematica
Попытался реализовать идею в Матлабе. Исходные точки таскаются мышкой, при этом меняются кривые ГМТ. При щелчке мышкой далее, чем 5% от любой исходной точки, выполняется поиск решения в окрестности точки щелчка (лучше целенаправленно щелкать в точки пересечения кривых) и строится это решение. Сделано весьма коряво, это мой первый опыт создания GUI, буду признателен за дельные советы и замечания.
Насколько я понял, надо создать файл с именем GUI_test.m, и скопировать в него следующий код:

(Оффтоп)

Код:
function GUI_test(arg)
    if nargin == 0;
        Initialize
    elseif arg == 0
        Action
    elseif arg == -1
        SetWindowSize
    end
end

function Initialize()
%     set(gcf,'numbertitle','off','menubar','none')

    h.ws = [0; 0; 5];
    axis([h.ws(1)-h.ws(3)/2, h.ws(1)+h.ws(3)/2, h.ws(2)-h.ws(3)/2, h.ws(2)+h.ws(3)/2])
    axis square

    uicontrol('style','text', 'units','normalized', 'position',[.86 .65 .12 .03], 'string','центр по X');
    uicontrol('style','edit', 'units','normalized', 'position',[.86 .60 .12 .05],....
       'string',h.ws(1), 'value',1, 'callback','GUI_test(-1)');
    uicontrol('style','text', 'units','normalized', 'position',[.86 .55 .12 .03], 'string','центр по Y');
    uicontrol('style','edit', 'units','normalized', 'position',[.86 .50 .12 .05], ...
       'string',h.ws(2), 'value',2, 'callback','GUI_test(-1)');
    uicontrol('style','text', 'units','normalized', 'position',[.86 .45 .12 .03], 'string','ширина окна');
    uicontrol('style','edit', 'units','normalized', 'position',[.86 .40 .12 .05], ...
       'string',h.ws(3), 'value',3, 'callback','GUI_test(-1)');

    h.P = [1,1; 1,-1; -1,-1; -1,0];
    h.P0.mark = line(0, 0, 'marker','o','erase','xor','color','r','LineWidth',2,'Visible','off');
    h.P1.mark = line(h.P(1, 1),h.P(1, 2),'marker','o','erase','xor','color','k');
    h.P2.mark = line(h.P(2, 1),h.P(2, 2),'marker','o','erase','xor','color','k');
    h.P3.mark = line(h.P(3, 1),h.P(3, 2),'marker','o','erase','xor','color','k');
    h.P4.mark = line(h.P(4, 1),h.P(4, 2),'marker','o','erase','xor','color','k');

    h.F0.line = line([h.P(:, 1); h.P(1, 1)], [h.P(:, 2); h.P(1, 2)], 'erase','xor','color','k');
    h.F1.line = line(0, 0, 'erase','xor','color','b','Visible','off');
    h.F2.line = line(0, 0, 'marker','.','erase','xor','color','g','Visible','off');
    h.F3.line = line(0, 0, 'marker','.','erase','xor','color','g','Visible','off');

    h.C1.line = line(h.P(1, 1),h.P(1, 2),'erase','xor','color','c','LineStyle',':');
    h.C2.line = line(h.P(1, 1),h.P(1, 2),'erase','xor','color','m','LineStyle',':');

    Curves(h);

    set(gcf,'name','Задача о четырёхугольнике')
    set(gcf,'tag','Задача о четырёхугольнике', ...
        'userdata',h, ...
        'windowbuttondownfcn', 'GUI_test(0); set(gcf,''windowbuttonmotionfcn'',''GUI_test(0)'')', ...
        'windowbuttonupfcn', 'set(gcf,''windowbuttonmotionfcn'','''')')
end

function Action
    h = get(gcf,'userdata');
    pt = get(gca,'currentpoint');
    x = pt(1,1:2);

    d1 = (x(1)-h.P(1,1))^2 + (x(2)-h.P(1,2))^2;
    d2 = (x(1)-h.P(2,1))^2 + (x(2)-h.P(2,2))^2;
    d3 = (x(1)-h.P(3,1))^2 + (x(2)-h.P(3,2))^2;
    d4 = (x(1)-h.P(4,1))^2 + (x(2)-h.P(4,2))^2;
    d_min = min([d1, d2, d3, d4]);

    if d_min < h.ws(3)/20
        set(h.P0.mark,'Visible','off');
        set(h.F1.line,'Visible','off');
        set(h.F2.line,'Visible','off');
        set(h.F3.line,'Visible','off');

        if d_min == d1
            h.P = [x; h.P(2,:); h.P(3,:); h.P(4,:)];
            h_P = h.P1;
        elseif d_min == d2
            h.P = [h.P(1,:); x; h.P(3,:); h.P(4,:)];
            h_P = h.P2;
        elseif d_min == d3
            h.P = [h.P(1,:); h.P(2,:); x; h.P(4,:)];
            h_P = h.P3;
        elseif d_min == d4
            h.P = [h.P(1,:); h.P(2,:); h.P(3,:); x];
            h_P = h.P4;
        else
            return
        end

        set(h_P.mark,'xdata',x(1),'ydata',x(2));
        set(h.F0.line,'xdata',[h.P(:, 1); h.P(1, 1)],'ydata',[h.P(:, 2); h.P(1, 2)]);
        Curves(h);
        set(gcf,'userdata',h);
    else
        Figures(h, x);
    end
end

function Curves(h)
    X1 = h.P(1,1); Y1 = h.P(1,2);
    X2 = h.P(2,1); Y2 = h.P(2,2);
    X3 = h.P(3,1); Y3 = h.P(3,2);
    X4 = h.P(4,1); Y4 = h.P(4,2);

    ds = h.ws(3)/50;
    xx = (h.ws(1)-h.ws(3)/2):ds:(h.ws(1)+h.ws(3)/2);
    yy = (h.ws(2)-h.ws(3)/2):ds:(h.ws(2)+h.ws(3)/2);
    [x0,y0] = meshgrid(xx, yy);

    zz = ((X2 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))).*((Y4 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (Y3 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))) - ((X4 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (X3 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((Y2 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))) - x0.*(((X2 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))).*((X3 - x0).*(Y4 - y0) - (X4 - x0).*(Y3 - y0)) - ((X4 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (X3 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X1 - x0).*(Y2 - y0) - (X2 - x0).*(Y1 - y0))) - y0.*(((Y2 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))).*((X3 - x0).*(Y4 - y0) - (X4 - x0).*(Y3 - y0)) - ((Y4 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (Y3 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X1 - x0).*(Y2 - y0) - (X2 - x0).*(Y1 - y0)));
    C = contourc(xx, yy, zz, [0, 0]);
    C(:,1) = [];
    set(h.C1.line,'xdata',C(1,:),'ydata',C(2,:));

    zz = ((X4 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((Y3 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (Y2 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))) - ((X3 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (X2 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))).*((Y4 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))) - x0.*(((X4 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X2 - x0).*(Y3 - y0) - (X3 - x0).*(Y2 - y0)) - ((X3 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (X2 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))).*((X1 - x0).*(Y4 - y0) - (X4 - x0).*(Y1 - y0))) - y0.*(((Y4 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X2 - x0).*(Y3 - y0) - (X3 - x0).*(Y2 - y0)) - ((Y3 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (Y2 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))).*((X1 - x0).*(Y4 - y0) - (X4 - x0).*(Y1 - y0)));
    C = contourc(xx, yy, zz, [0, 0]);
    C(:,1) = [];
    set(h.C2.line,'xdata',C(1,:),'ydata',C(2,:));
end

function Figures(h, x)
    X1 = h.P(1,1); Y1 = h.P(1,2);
    X2 = h.P(2,1); Y2 = h.P(2,2);
    X3 = h.P(3,1); Y3 = h.P(3,2);
    X4 = h.P(4,1); Y4 = h.P(4,2);

        function r = diagonal_conditions(p0)
            x0 = p0(1); y0 = p0(2);
            r = [((X2 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))).*((Y4 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (Y3 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))) - ((X4 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (X3 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((Y2 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))) - x0.*(((X2 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))).*((X3 - x0).*(Y4 - y0) - (X4 - x0).*(Y3 - y0)) - ((X4 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (X3 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X1 - x0).*(Y2 - y0) - (X2 - x0).*(Y1 - y0))) - y0.*(((Y2 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0))).*((X3 - x0).*(Y4 - y0) - (X4 - x0).*(Y3 - y0)) - ((Y4 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0)) - (Y3 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X1 - x0).*(Y2 - y0) - (X2 - x0).*(Y1 - y0)));
                ((X4 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((Y3 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (Y2 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))) - ((X3 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (X2 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))).*((Y4 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))) - x0.*(((X4 - x0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (X1 - x0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X2 - x0).*(Y3 - y0) - (X3 - x0).*(Y2 - y0)) - ((X3 - x0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (X2 - x0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))).*((X1 - x0).*(Y4 - y0) - (X4 - x0).*(Y1 - y0))) - y0.*(((Y4 - y0).*(X1.*(X1 - x0) + Y1.*(Y1 - y0)) - (Y1 - y0).*(X4.*(X4 - x0) + Y4.*(Y4 - y0))).*((X2 - x0).*(Y3 - y0) - (X3 - x0).*(Y2 - y0)) - ((Y3 - y0).*(X2.*(X2 - x0) + Y2.*(Y2 - y0)) - (Y2 - y0).*(X3.*(X3 - x0) + Y3.*(Y3 - y0))).*((X1 - x0).*(Y4 - y0) - (X4 - x0).*(Y1 - y0)))];
        end

    options = optimoptions('fsolve','Display','off');
    p0 = fsolve(@diagonal_conditions, [x(1), x(2)], options);

    a = p0(1) - h.P(:, 1);
    b = p0(2) - h.P(:, 2);
    c = a.*h.P(:, 1) + b.*h.P(:, 2);
    ac = circshift(a, -1);
    bc = circshift(b, -1);
    cc = circshift(c, -1);
    z = a.*bc - ac.*b;
    xv = (bc.*c - b.*cc)./z;
    yv = (cc.*a - c.*ac)./z;

    set(h.P0.mark,'xdata',p0(1),'ydata',p0(2),'Visible','on');
    set(h.F1.line,'xdata',[xv; xv(1)],'ydata',[yv; yv(1)],'Visible','on');
    set(h.F2.line,'xdata',[xv(1); xv(3)],'ydata',[yv(1); yv(3)],'Visible','on');
    set(h.F3.line,'xdata',[xv(2); xv(4)],'ydata',[yv(2); yv(4)],'Visible','on');
end

function SetWindowSize()
    h = get(gcf,'userdata');
    h.ws(get(gco,'value')) = str2num(get(gco,'string'));
    axis([h.ws(1)-h.ws(3)/2, h.ws(1)+h.ws(3)/2, h.ws(2)-h.ws(3)/2, h.ws(2)+h.ws(3)/2])
    axis square
    Curves(h);
    set(gcf,'userdata',h)
end

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


05/09/12
2587
Не прошло и недели, как я более-менее разобрался с GUI и созданием исполняемых файлов в Матлабе, создал экзешник, демонстрирующий решение сабжевой задачи, желающим вышлю. Сам экзешник весит 23Мб, но для его запуска необходимо предварительно установить бесплатную Матлабовскую компоненту MATLAB Compiler Runtime (MCR), которую можно скачать отсюда - дистрибутив весит ~400Мб :) Ну или просто 200 строк текста, у кого уже установлен Матлаб.
Изображение

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


02/08/12
142
Думаю, неплохо будет если отметим ещё один способ вывести уравнения для обсуждаемого здесь геометрическое место точек касания двух семейств окружностей, лежащие в плоскостью, представители первого из которых проходят через точек $T(x_{T},y_{T})$ и $U(x_{U},y_{U})$, а представители второго через точек $V(x_{V},y_{V})$ и $W(x_{W},y_{W})$. Припоминаю, что это ГМТ задаётся в неявном виде с помощью следующего уравнения:

(1) $G_{TUVW}(x,y)=0$,

где:

(2) $\begin{array}{c} G_{TUVW}(x,y)\equiv\left| \begin{array}{cccc} 2x & 1 & 0 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{T}^{2}+y_{T}^{2} & x_{T} & y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & y_{U} & 1 \\ \end{array} \right|\left| \begin{array}{cccc} 2y & 0 & 1 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{V}^{2}+y_{V}^{2} & x_{V} & y_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & x_{W} & y_{W} & 1 \\ \end{array} \right|-\\ \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\left| \begin{array}{cccc} 2y & 0 & 1 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{T}^{2}+y_{T}^{2} & x_{T} & y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & y_{U} & 1 \\ \end{array} \right|\left| \begin{array}{cccc} 2x & 1 & 0 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{V}^{2}+y_{V}^{2} & x_{V} & y_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & x_{W} & y_{W} & 1 \\ \end{array} \right|. \end{array}$

Положим:

(3) $a_{TU}(x,y)\equiv\left| \begin{array}{cccc} 2x & 1 & 0 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{T}^{2}+y_{T}^{2} & x_{T} & y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & y_{U} & 1 \\ \end{array} \right|$, (4) $b_{TU}(x,y)\equiv\left| \begin{array}{cccc} 2y & 0 & 1 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{T}^{2}+y_{T}^{2} & x_{T} & y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & y_{U} & 1 \\ \end{array} \right|$,

(5) $a_{VW}(x,y)\equiv\left| \begin{array}{cccc} 2x & 1 & 0 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{V}^{2}+y_{V}^{2} & x_{V} & y_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & x_{W} & y_{W} & 1 \\ \end{array} \right|$, (6) $b_{VW}(x,y)\equiv\left| \begin{array}{cccc} 2y & 0 & 1 & 0 \\ x^{2}+y^{2} & x & y & 1 \\ x_{V}^{2}+y_{V}^{2} & x_{V} & y_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & x_{W} & y_{W} & 1 \\ \end{array} \right|$.

Очевидно:

(7) $G_{TUVW}(x,y)=\left| \begin{array}{cc} a_{TU}(x,y) & b_{TU}(x,y) \\ a_{VW}(x,y) & b_{VW}(x,y) \end{array}\right|$.

Пусть как и раньше точка касания одной конкретной окружности из первого семейства с другой конкретной окружности из второго семейства обозначим с $K(x_{K},y_{K})$. Рассмотрим уравнения этих двух окружностей. Они таковы:

(8) $\left| \begin{array}{cccc} x^{2}+y^{2} & x & y & 1 \\ x_{K}^{2}+y_{K}^{2} & x_{K} & y_{K} & 1 \\ x_{T}^{2}+y_{T}^{2} & x_{T} & y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & y_{U} & 1 \\ \end{array} \right|=0$, (9) $\left| \begin{array}{cccc} x^{2}+y^{2} & x & y & 1 \\ x_{K}^{2}+y_{K}^{2} & x_{K} & y_{K} & 1 \\ x_{V}^{2}+y_{V}^{2} & x_{V} & y_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & x_{W} & y_{W} & 1 \\ \end{array} \right|=0$.

Первая окружность проходит через точек $K(x_{K},y_{K})$, $T(x_{T},y_{T})$ и $U(x_{U},y_{U})$, а вторая через точек $K(x_{K},y_{K})$, $V(x_{V},y_{V})$ и $W(x_{W},y_{W})$. Ясно, что (8) можем записать и так:

(10) $\left(x-\frac{1}{2}A_{KTU}}{S_{KTU}^{-1}\right)^{2}+\left(y-\frac{1}{2}B_{KTU}}{S_{KTU}^{-1}\right)^{2}=S_{KTU}^{-1}\left[(4S_{KTU})^{-1}\left(A_{KTU}^{2}+B_{KTU}^{2}\right)+C_{KTU}\right]$,

где:

(11) $S_{KTU}\equiv \left| \begin{array}{ccc}x_{K} & y_{K} & 1 \\ x_{T} & y_{T} & 1 \\ x_{U} & y_{U} & 1 \\ \end{array} \right|$, (12) $C_{KTU}\equiv \left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & x_{K} & y_{K} \\ x_{T}^{2}+y_{T} ^{2}& x_{T} & y_{T} \\ x_{U}^{2}+y_{U}^{2} & x_{U} & y_{U} \\ \end{array} \right|$,

(13) $B_{KTU}\equiv -\left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & x_{K} & 1 \\ x_{T}^{2}+y_{T} ^{2}& x_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & 1 \\ \end{array} \right|$, (14) $A_{KTU}\equiv \left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & y_{K} & 1 \\ x_{T}^{2}+y_{T} ^{2}& y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & y_{U} & 1 \\ \end{array} \right|$.

(10) показывает, что координаты центра окружности, проходящая через точек $K(x_{K},y_{K})$, $T(x_{T},y_{T})$ и $U(x_{U},y_{U})$, таковы:

(15) ${}_{0}x_{KTU}=\frac{1}{2}A_{KTU}S_{KTU}^{-1}=\frac{1}{2}\left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & y_{K} & 1 \\ x_{T}^{2}+y_{T} ^{2}& y_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & y_{U} & 1 \\ \end{array} \right|\left| \begin{array}{ccc}x_{K} & y_{K} & 1 \\ x_{T} & y_{T} & 1 \\ x_{U} & y_{U} & 1 \\ \end{array} \right|^{-1}$,

(16) ${}_{0}y_{KTU}=\frac{1}{2}B_{KTU}S_{KTU}^{-1}=-\frac{1}{2}\left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & x_{K} & 1 \\ x_{T}^{2}+y_{T} ^{2}& x_{T} & 1 \\ x_{U}^{2}+y_{U}^{2} & x_{U} & 1 \\ \end{array} \right|\left| \begin{array}{ccc}x_{K} & y_{K} & 1 \\ x_{T} & y_{T} & 1 \\ x_{U} & y_{U} & 1 \\ \end{array} \right|^{-1}$.

Кстати, видно, что квадрат радиуса той окружности, задаётся с правой стороны (10). Но в данном случае это нас не интересует - ибо для нашей цели важно найти координаты центра окружности, а не её радиус.

Для центра другой окружности, проходящая через точек $K(x_{K},y_{K})$, $V(x_{V},y_{V})$ и $W(x_{W},y_{W})$, можем написать аналогичные соотношения:

(17) ${}_{0}x_{KVW}=\frac{1}{2}A_{KVW}S_{KVW}^{-1}=\frac{1}{2}\left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & y_{K} & 1 \\ x_{V}^{2}+y_{V} ^{2}& y_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & y_{W} & 1 \\ \end{array} \right|\left| \begin{array}{ccc}x_{K} & y_{K} & 1 \\ x_{V} & y_{V} & 1 \\ x_{W} & y_{W} & 1 \\ \end{array} \right|^{-1}$,

(18) ${}_{0}y_{KVW}=\frac{1}{2}B_{KVW}S_{KVW}^{-1}=-\frac{1}{2}\left| \begin{array}{ccc}x_{K}^{2}+y_{K}^{2} & x_{K} & 1 \\ x_{V}^{2}+y_{V} ^{2}& x_{V} & 1 \\ x_{W}^{2}+y_{W}^{2} & x_{W} & 1 \\ \end{array} \right|\left| \begin{array}{ccc}x_{K} & y_{K} & 1 \\ x_{V} & y_{V} & 1 \\ x_{W} & y_{W} & 1 \\ \end{array} \right|^{-1}$.

Ясно, что трёхмерные радиус-векторы центров этих двух окружностей, будут:

(19) ${}_{0}\vec r_{KTU}=({}_{0}x_{KTU},{}_{0}y_{KTU},0)$,

(20) ${}_{0}\vec r_{KVW}=({}_{0}x_{KVW},{}_{0}y_{KVW},0)$,

Так как обе окружности касаются в точке $K(x_{K},y_{K})$, то векторы $\vec r_{K}-{}_{0}\vec r_{KTU}$ и $\vec r_{K}-{}_{0}\vec r_{KVW}$ коллинеарны. Если распишем подробно эти разницы радиус-векторов, увидим, что:

(21) $\vec r_{K}-{}_{0}\vec r_{KTU}=\frac{1}{2S_{KTU}}(a_{TU}(x_{K},y_{K}),b_{TU}(x_{K},y_{K}),0)$,

(22) $\vec r_{K}-{}_{0}\vec r_{KVW}=\frac{1}{2S_{KVW}}(a_{VW}(x_{K},y_{K}),b_{VW}(x_{K},y_{K}),0)$.

Теперь можем записать векторное произведение этих двух векторов. Оно задаётся с:

(23) $(\vec r_{K}-{}_{0}\vec r_{KTU})\times (\vec r_{K}-{}_{0}\vec r_{KVW})=\frac{1}{4S_{KTU}S_{KVW}}\left| \begin{array}{ccc}\vec e_{x} & \vec e_{y} & \vec e_{z} \\ a_{TU}(x_{K},y_{K}) & b_{TU}(x_{K},y_{K}) & 0 \\ a_{VW}(x_{K},y_{K}) & b_{VW}(x_{K},y_{K}) & 0 \\ \end{array} \right|$.

Так как эти векторы коллинеарны, то их векторное произведение равняется нулю. Это выполняется когда:

(24) $\left| \begin{array}{cc} a_{TU}(x_{K},y_{K}) & b_{TU}(x_{K},y_{K}) \\ a_{VW}(x_{K},y_{K}) & b_{VW}(x_{K},y_{K}) \end{array}\right|=G_{TUVW}(x_{K},y_{K})=0$.

Этим и доказали, что наше ГМТ определяется уравнением:

$G_{TUVW}(x,y)=0$.

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


04/05/13
313
Один мой знакомый нашел общее решение задачи. В общем случае произвольных координат четырех исходных точек решений 6 (исключая вырождения, когда стороны некоторого искомого четырехугольника оказываются параллельными - скажем, это квадрат - тогда прочие решения вырождаются в точку). Координаты пересечения диагоналей всех 6-ти искомых четырехугольников являются решением трех квадратных уравнений с комплексными коэффициентами, зависящими от комплексных чисел - координат исходных точек на комплексной плоскости. Уравнения получаются друг из друга перестановкой координат исходных точек в коэффициентах - эти перестановки определяются тем, какую из трех оставшихся точек для данной считать точкой пересечения противоположной стороны четырехугольника.
Решение очень изящное и нетривиальное. Если кому интересно, могу выложить файл в формате WORD.
Собственно, вот оно:
https://yadi.sk/d/l2HbASDu3BNs6B
Решение принадлежит Сергею Макарову, обитающему в новосибирском Академгородке.
Там в начале довольно длинные рассуждалки и выкладки, но где-то в середине обнаруживается удивительная вещь, связанная с преобразованием инверсии, относительно единичной окружности.

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


09/09/14
6328
dvb в сообщении #1187930 писал(а):
Решение очень изящное и нетривиальное.
Да, действительно. Приятно было проследить за ходом мысли по этому тексту. Спасибо!
А что если все 4 данные в условии точки лежат на одной прямой? После инверсии мы получим вырожденный параллелограмм. Кажется очевидным, что в этом случае у нас не будет выпуклого решения. И не только в этом, наверное. Хотелось бы ещё понимать, когда будет, а когда нет.

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

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



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

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


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

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