2014 dxdy logo

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

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


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


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Вершины кривой второго порядка в общем виде
Сообщение05.04.2016, 11:50 
Аватара пользователя


26/05/12
1694
приходит весна?
Подскажите, пожалуйста, если кривая второго порядка задана общим уравнением:

$A x^2+B x y+C y^2+D x+E y+F=0$

то существуют ли явные формулы для нахождения координат вершин этой кривой (тех, что лежат на пересечении характеристического прямоугольника с собственными осями кривой)?

Я пытался найти направляющие косинусы главных осей, коэффициенты $A'$ и $C'$ перед, соответственно, $x^2$ и $y^2$ в этих координатах (при этом $B'=0$), а так же координаты центра кривой. Всё это получилось:
$$\[\begin{matrix}
   G=\sqrt{{{B}^{2}}+{{\left( A-C \right)}^{2}}}, & \sigma =\pm 1  \\
\end{matrix}\]
$$$$\begin{matrix}
   \cos 2\varphi =\frac{\sigma \left( A-C \right)}{G}, & \sin 2\varphi =\frac{\sigma B}{G}  \\
\end{matrix}$$$$\begin{matrix}
   {A}'=\frac{A+C+\sigma G}{2}, & {B}'=\frac{A+C-\sigma G}{2}  \\
\end{matrix}$$$$\begin{matrix}
   {{x}_{0}}=\frac{2CD-BE}{{{B}^{2}}-4AC}, & {{y}_{0}}=\frac{2AE-BD}{{{B}^{2}}-4AC}  \\
\end{matrix}$$
Но попытка скомпоновать из этого искомые координаты вершин приводит появлению дробей и вложенных радикалов без всякого намёка на возможность анализа. Я что-то делаю не так, или же правильное выражение действительно будет очень сложным?

 Профиль  
                  
 
 Re: Вершины кривой второго порядка в общем виде
Сообщение06.04.2016, 23:55 
Заслуженный участник
Аватара пользователя


23/07/08
10887
Crna Gora
Пусть центр эллипса в начале координат. Тогда уравнение будет такого вида:
$A x^2+2B x y+C y^2+F=0$
(по традиции перед $B$ двоечка). Градиент левой части даёт вектор нормали к кривой $(Ax+By, Bx+Cy)$. В вершинах радиус-вектор $(x, y)$ коллинеарен нормали или, эквивалентно, ортогонален касательному вектору $(-Bx-Cy, Ax+By)$. Отсюда второе уравнение
$Axy+By^2=Bx^2+Cxy$
Это уравнение пары прямых. Полагая $y=kx$, получаем квадратное уравнение для $k$ (из формул Виета видно, что произведение корней равно $-1$, т.е. прямые ортогональны). Далее можно подставить $y=kx$ с известным $k$ в первое уравнение.

Но выражения всё равно сложные. Возьмём $A=1, B=1, C=4, F=-9$, например. Получим:
Wolfram|Alpha, x^2+2x*y+4y^2=9; x*y+y^2=x^2+4x*y

 Профиль  
                  
 
 Re: Вершины кривой второго порядка в общем виде
Сообщение08.04.2016, 23:48 
Аватара пользователя


26/05/12
1694
приходит весна?
svv, спасибо за участие. Видимо, я всё правильно делал. Из уравнения на $\varphi$ выше я находил направление главных осей кривой, длины полуосей выражаются из $A'$ и $B'$ как обратный корень, а прибавив к координатам $x_0$, $y_0$ проекции главных полуосей на оси исходной системы координат можно получить координаты вершин кривой второго порядка. Выражения получаются хоть и громоздкие, с вложенными радикалами, но явные.

Цель этих вычислений переместить начало отсчёта и повернуть оси так, чтобы одна из вершин кривой второго порядка (эллипса, параболы, гиперболы — не важно), проходила через начало координат, а направления осей кривой совпадали с направлениями новой системы координат. В такой СК три из шести коэффициентов многочлена равны нулю, в том числе и моном нулевой степени. Это для меня важно. И мне бы всё равно, что выражения как крокодил, потому что считать всё будет компьютер, если бы не одно но.

Если плавно менять коэффициенты многочлена таким образом, чтобы эллипс или гипербола переходили в параболу, то центр кривой, задаваемый координатами $x_0$, $y_0$ уходит на бесконечность, а вершина кривой остаётся на месте. Координаты вершины рассчитываются как разность, а точность в компьютере ограничена. В результате при такой трансформации ошибка вычислений нарастает, и в пределе я получу чушь. Хотелось бы этого избежать, но что именно надо сократить в этих громоздких выражениях так сразу и не видно. Это вообще возможно сделать?

 Профиль  
                  
 
 Re: Вершины кривой второго порядка в общем виде
Сообщение09.04.2016, 23:57 
Заслуженный участник
Аватара пользователя


23/07/08
10887
Crna Gora
B@R5uk в сообщении #1113478 писал(а):
Это вообще возможно сделать?
Надо подумать.

Скажите, пожалуйста... (Почти наверняка нет, но вдруг да?) Может быть, координаты вершин Вам нужны только для записи уравнения кривой в новых координатах? Тогда они и не нужны, уравнение легко получить через инварианты.

Приведу свой вариант формул для координат вершин. Пока считаю, что центр эллипса/гиперболы в начале координат. Общий случай приводится к этому сдвигом (поэтому Вашу проблему с потерей точности этот вариант не решает). При сдвиге $A, B, C$ не изменяются, новые $D$ и $E$ равны нулю, для пересчёта $F$ есть простая формула.

Итак, уравнение кривой $A x^2+2B x y+C y^2+F=0$. Пусть $\lambda_1, \lambda_2$ — корни характеристического уравнения, причём $\lambda_1\geqslant \lambda_2$:
$\lambda_1=\frac{A+C+\sqrt{(A-C)^2+4B^2}}{2}$
$\lambda_2=\frac{A+C-\sqrt{(A-C)^2+4B^2}}{2}$

Тогда для вершин на малой оси:
$x=\pm\sqrt{-\frac{F}{2 \lambda_1}\left(1+\frac{A-C}{\lambda_1-\lambda_2}\right)}\quad\quad y=\pm\sigma\sqrt{-\frac{F}{2 \lambda_1}\left(1+\frac{C-A}{\lambda_1-\lambda_2}\right)}$
Для вершин на большой оси:
$x=\pm\sqrt{-\frac{F}{2\lambda_2}\left(1+\frac{C-A}{\lambda_1-\lambda_2}\right)}\quad\quad y=\mp\sigma\sqrt{-\frac{F}{2\lambda_2}\left(1+\frac{A-C}{\lambda_1-\lambda_2}\right)}$
Знаки у $x$ и $y$ согласованы. Значение $\sigma$ равно $1$ при $B\geqslant 0$ и $-1$ при $B<0$.
Я надеюсь, что использование $\lambda_1, \lambda_2$ не усложняет формулы (а наоборот, упрощает), поскольку эти величины инвариантны относительно сдвигов и поворотов системы координат.

 Профиль  
                  
 
 Re: Вершины кривой второго порядка в общем виде
Сообщение10.04.2016, 01:12 
Аватара пользователя


26/05/12
1694
приходит весна?
svv в сообщении #1113737 писал(а):
Скажите, пожалуйста... (Почти наверняка нет, но вдруг да?) Может быть, координаты вершин Вам нужны только для записи уравнения кривой в новых координатах?
И да, и нет. Мне действительно нужно уравнение кривой в её собственных сдвинутых координатах, но не само по себе, а вместе с уравнением второй кривой, задаваемой уже общим полиномом третьей степени. Более того, после нахождения точек пересечения этих кривых мне надо вернуться в исходную систему координат, так что связь координат тоже нужна.

svv в сообщении #1113737 писал(а):
Приведу свой вариант формул для координат вершин.
Я так понимаю, это только поворот уже центрированной кривой ($D=0, E=0$) вокруг этого центра? Выражения довольно симпатичные, хотя и с вложенными радикалами. Надо будет обдумать.

svv в сообщении #1113737 писал(а):
Пусть $\lambda_1, \lambda_2$ — корни характеристического уравнения
Поясните пожалуйста, из каких соображений это уравнение получается. Применительно к кривым второго порядка никогда не слышал про такое.

 Профиль  
                  
 
 Re: Вершины кривой второго порядка в общем виде
Сообщение10.04.2016, 18:28 
Заслуженный участник
Аватара пользователя


23/07/08
10887
Crna Gora
Позвольте мне использовать обозначения, принятые в справочнике Корна по математике, п.2.4 «Кривые второго порядка (конические сечения)». См. первые три страницы, у меня это 64-66. Там много полезной информации в концентрированном виде. И, по-моему, весь интернет переписывает эту тему у них. Даже в Вики я видел фразу из Корна «Многие важные свойства кривых второго порядка могут быть изучены при помощи характеристической квадратичной формы ...».

Форма, действительно, важна. Её матрица не изменяется при сдвиге кривой. А при повороте меняется, но «как надо». В частности, сохраняются след и определитель матрицы, а также её собственные значения — корни уравнения
$\begin{bmatrix} a_{11}-\lambda &a_{12}\\a_{21}&a_{22}-\lambda \end{bmatrix}=0$
Т.е. след, определитель, собственные значения — инвариантны относительно сдвигов и поворотов. Собственные значения $\lambda_1, \lambda_2$ несут информацию, хоть и не совсем полную, о типе кривой (у эллипса оба значения одного знака, у окружности ещё и равны, у гиперболы разных знаков, у параболы одно равно нулю). Приведению квадратичной формы к диагональному виду ортогональным преобразованием соответствует такой поворот системы координат, чтобы в новых координатах было $\bar a_{12}=\bar a_{21}=0$. При этом на диагонали будут стоять как раз собственные значения $\lambda_1, \lambda_2$. Важны и собственные векторы матрицы — они дают направления главных осей.

B@R5uk в сообщении #1113750 писал(а):
Я так понимаю, это только поворот уже центрированной кривой ($D=0, E=0$) вокруг этого центра?
Да. (Хотя формулы дают просто координаты вершин, не обязывая что-то поворачивать.) Действительно, СК выбрана так, чтобы центр кривой совпадал с началом. В общем случае надо:
$\bullet$ найти координаты центра $x_0, y_0$ (формулы (2.4-8), эквивалентные Вашим);
$\bullet$ найти свободный член в новых координатах: $\bar a_{33}=\frac A D$ (формула 2.4-9), определения $A$ и $D$ — формула (2.4-2);
$\bullet$ найти вершины в новых координатах по моим формулам для центрированной кривой, подставив в качестве $F$ этот свободный член; остальные величины те же, что и для исходной кривой;
$\bullet$ прибавить к координатам вершин $x_0, y_0$.

 Профиль  
                  
 
 Re: Вершины кривой второго порядка в общем виде
Сообщение11.04.2016, 12:08 
Заслуженный участник
Аватара пользователя


23/07/08
10887
Crna Gora
Чтобы не находить определитель третьего порядка, а воспользоваться тем, что уже вычислено, свободный член в новых координатах (где кривая центрирована) можно записать и так:
$\bar a_{33}=a_{13}x_0+a_{23}y_0+a_{33}$
Поэтому координаты вершин на большой полуоси в исходной системе координат (общий случай):
$x=x_0\pm\sqrt{-\frac{a_{13}x_0+a_{23}y_0+a_{33}}{2\lambda_2}\left(1+\frac{a_{22}-a_{11}}{\lambda_1-\lambda_2}\right)}$
$y=y_0\mp\sigma\sqrt{-\frac{a_{13}x_0+a_{23}y_0+a_{33}}{2\lambda_2}\left(1+\frac{a_{11}-a_{22}}{\lambda_1-\lambda_2}\right)}$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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



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

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


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

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