2014 dxdy logo

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

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


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


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

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

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

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

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



Начать новую тему Ответить на тему
 
 Нахождение локального экстремума функций
Сообщение11.07.2013, 12:59 


05/07/13
9
Здравствуйте.
Есть система из двух нелинейных функций: $f(x, y)$ и $g(x, y)$, которые требуется минимизировать.
Как находить экстремумы для одной функции - умею, для систем - не сталкивался.
Подскажите, пожалуйста, какие-нибудь методы.
Спасибо.

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 14:56 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Punisher174 в сообщении #745078 писал(а):
Есть система из двух нелинейных функций: $f(x, y)$ и $g(x, y)$, которые требуется минимизировать.

Что значит "минимизировать систему"?
Экстремумы ищут у функций со значениями в $\mathbb R$.
У Вас две таких функции. Можно смотреть на их пару как на функцию из $\mathbb R^2$ в $\mathbb R^2$. Но у такой функции векторные значения. Можно искать минимум нормы этой вектор-функции, например. Если нужно именно это. Так что все-таки нужно?

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 17:05 


05/07/13
9
Как вы правильно сказали, нужно минимум нормы вектор-функции.

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 17:09 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Ну а норма вектор-функции - это обычная скалярная функция из $\mathbb R^2$ в $\mathbb R$, экстремум которой Вы, говорите, искать умеете.

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 18:05 


05/07/13
9
Попробую сформулировать по-другому.
Есть две параметрических кубических функции. Функции не пересекаются. Требуется найти ближайшие точки на функциях.
Постановка задачи, как мне кажется, может быть выражена в виде:

$$
\begin{cases}
\lVert x_1(t_1) - x_2(t_2)\rVert \to \min$\\
\lVert y_1(t_1) - y_2(t_2)\rVert \to \min$\\
\end{cases}
$$

Ну и минимизировать надо по $t_1 \text{ и } t_2$.

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 18:27 
Заслуженный участник
Аватара пользователя


18/01/13
12065
Казань
Что значит "функции не пересекаются"? Каков смысл букв $x,y,t$? Это скаляры или векторы? Зачем вам два минимума?

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 18:42 


05/07/13
9
Минимум нужен один, просто я некорректно записал. "Не пересекаются значит", что на рассматриваемом отрезке изменения параметра не существует таких $ t_1 \text{ и } t_2 $, т.е нет корней у рассматриваемой системы нелинейных уравнений.

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 18:47 
Заслуженный участник


11/05/08
32166
Punisher174 в сообщении #745158 писал(а):
Требуется найти ближайшие точки на функциях.
Постановка задачи, как мне кажется, может быть выражена в виде:
$$\begin{cases}\lVert x_1(t_1) - x_2(t_2)\rVert \to \min$\\\lVert y_1(t_1) - y_2(t_2)\rVert \to \min$\\\end{cases}$$

Это лишь кажется; это оптическая иллюзия. Ближайшие точки -- это пара точек, на которой достигается минимум одной функции $\rho(\vec r_1,\vec r_2)=\|\vec r_1-\vec r_2\|.$ А уж что понимать под нормой -- дело вкуса. Вы, скорее всего, неудачно попытались понимать под ней $\|\vec r_1-\vec r_2\|_{\infty}=\max\{|x_1-x_2|,|y_1-y_2|\}$ (выбор, надо сказать, не самый лучший, хотя в принципе и допустимый).

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 18:50 
Заслуженный участник
Аватара пользователя


23/07/08
10907
Crna Gora
У автора две кривые, заданные параметрически: $\mathbf r_1(t)=(x_1(t), y_1(t))$ и $\mathbf r_1(t)=(x_2(t), y_2(t))$.
Он хочет найти такие значения $t_1$ и $t_2$, при которых расстояние между точками $\mathbf r_1(t_1)$ и $\mathbf r_2(t_2)$ минимально. Ну, и затем найти само это расстояние.

Кривые по условию задачи не пересекаются (иначе точка пересечения и давала бы решение).

Punisher174, для этого Вам надо найти такие $t_1$ и $t_2$, при которых минимальна скалярная функция
$(x_1(t_1)-x_2(t_2))^2+(y_1(t_1)-y_2(t_2))^2$
Квадратный корень здесь изначально был, но его можно убрать.

Punisher174, у Вас кривые Безье? (я почти уверен в этом)

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 19:13 


05/07/13
9
ewert, спасибо.
svv, да Вы абсолютно правильно меня поняли.
Цитата:
Punisher174, у Вас кривые Безье? (я почти уверен в этом)

Вы умеете читать мысли. У меня кубические сплайны, хотя алгоритм должен быть похожим.
Цитата:
Punisher174, для этого Вам надо найти такие $t_1$ и $t_2$, при которых минимальна скалярная функция
$(x_1(t_1)-x_2(t_2))^2+(y_1(t_1)-y_2(t_2))^2$
Квадратный корень здесь изначально был, но его можно убрать.

Решить чем-нибудь наподобие градиентного спуска?
Еще вопрос.
В случае, когда точки пересечения имеются, я решал эту проблему "в лоб", просто как систему уравнений. Считаю это не слишком оптимальным. Есть ли другие методы?
Намного ли производительнее будет находить точки пересечения, если одну кривую аппроксимировать отрезками?

 Профиль  
                  
 
 Re: Нахождение локального экстремума функций
Сообщение11.07.2013, 23:10 
Заслуженный участник
Аватара пользователя


23/07/08
10907
Crna Gora
Как решить это численно — пусть лучше Вам посоветуют другие участники, у кого больше опыта.

Допустим, чтобы найти минимум, я продифференцировал по $t_1$ и $t_2$ эту функцию,
$(x_2(t_2)-x_1(t_1))^2+(y_2(t_2)-y_1(t_1))^2$,
и приравнял частные производные нулю. Получатся уравнения:
$(x_2(t_2)-x_1(t_1))\; x'_1(t_1)+(y_2(t_2)-y_1(t_1))\;y'_1(t_1)=0$
$(x_2(t_2)-x_1(t_1))\; x'_2(t_2)+(y_2(t_2)-y_1(t_1))\;y'_2(t_2)=0$
Хорошие уравнения, красивые.

(Оффтоп)

Эти уравнения имеют простой геометрический смысл. Введем векторы:
$\mathbf R=\mathbf r_2(t_2)-\mathbf r_1(t_1)=(x_2(t_2)-x_1(t_1), y_2(t_2)-y_1(t_1))$ — это вектор, соединяющий точки $\mathbf r_1$ и $\mathbf r_2$,
$\mathbf u_1(t_1)=(x'_1(t_1), y'_1(t_1))$ — это касательный вектор к первой кривой при $t=t_1$,
$\mathbf u_2(t_2)=(x'_2(t_2), y'_2(t_2))$ — это касательный вектор ко второй кривой при $t=t_2$.
Тогда уравнения можно записать так:
$(\mathbf R, \mathbf u_1)=0$
$(\mathbf R, \mathbf u_2)=0$
Это значит, что когда расстояние достигает минимума, вектор, соединяющий ближайшие точки, перпендикулярен обеим касательным.
Но есть одна неприятность. Эти уравнения не отлавливают случаи, когда одна (или обе) из "ближайших" точек находится на конце кривой (или на концах кривых). В таком случае $t_1$, $t_2$, обеспечивающие минимум, не обязаны быть решениями записанных уравнений. А вероятность такой ситуации (навскидку) высока.
То есть при таком способе надо дополнительно проверять концы кривых.

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

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



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

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


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

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