2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 18:36 


19/04/19
12
Захотел сделать некоторый способ проведения гладкой кривой через точки на плоскости, такой чтобы он формулировался математически наиболее просто. Оставим в стороне вопрос о том, не сделано ли это уже давно другими способами, чем тот что указан ниже. Если где-то сделано именно этим (у меня не получилось найти) - хорошо, посмотрю там результат.

Кривая задаётся функцией $\vec f(l)$, где $l$ - линейная координата вдоль траектории кривой (можно и не ставить это обязательным условием, но тогда в уравнениях появятся лишние коэффициенты). У кривой есть мера её качества (чем численно меньше - тем больше подходит кривая): $$I_F = \int F dl = \int \left( \frac{1}{r^2} + a \right) dl = \int \left( (\vec f''(l))^2 + a \right) dl$$, где $r = r(l)$ - радиус кривизны кривой в заданной точке её траектории, $\left| \vec f''(l) \right| = \frac{1}{r(l)}$ - модуль второй производной функции по $l$, равный обратному радиусу кривизны, а $a$ - параметр задачи, указывает насколько нам важно стремиться уменьшить полную длину кривой. В попытках получить из этого интеграла какие-то намёки на то, какой должна быть искомая кривая, проварьировал его: $\vec h(l) = \vec f(l) + \vec g(l)$, где $\vec g(l)$ - функция первого порядка малости, а $\vec h(l)$ - новая функция, от которой будет брать интеграл. Её аргумент $l$ уже не равен координате вдоль траектории этой функции, он равен координате вдоль траектории исходной функции $\vec f(l)$, от точки которой смещена текущая точка функции $\vec h(l)$.

Получается (формула усложнилась т.к. модуль первой производной функции уже не равен единице, как это было изначально):
$$I_H = \int H dl = \int \left( \frac{\left( \vec f'' + \vec g'' \right)^2}{\left( \vec f' + \vec g' \right)^4} + a \right) \left| \vec f' + \vec g' \right| dl$$

Требуется найти такую кривую $\vec f(l)$, где для любой малой $\vec g(l)$ из допустимых граничными условиями выполняется неравенство $I_H \geqslant I_F$. Граничными условиями для $g(l)$ будет её равенство нулю в зафиксированных точках из условия задачи.

Для удобства расчётов были сделаны следующие подстановки/названия переменных: $$\vec v(l) = \vec f'(l) = (\cos \alpha, \sin \alpha)$$, $$\left| \alpha' \right| = \left| \vec v' \right| = \left| \vec f'' \right| = \frac{1}{r}$$, где $\vec v$ - единичный вектор направления траектории кривой, $\alpha$ - угол этого же направления. Также на функцию $\vec g$ наложено ограничение, которое не повлияет на итог: она должна быть направлена перпендикулярно траектории: $\vec g = g \cdot (-v_y, v_x)$, и в дальнейшем используется только $g$ (не вектор).

В итоге (если пропустить промежуточные выкладки) получается (все слагаемые второй и выше степеней $g$ опущены):
$$H = F + g \cdot (\alpha')^3 + 2 \cdot g'' \cdot \alpha' - a \cdot g \cdot \alpha'$$

Как видно, разница $I_H-I_F = \int H dl - \int F dl$ меняет знак при смене знака $g$, а значит положительно определённый вариант для неё будет только в том случае, когда она строго равна нулю (а не ноль там получится из-за второго и следующих порядков $g$, ранее выкинутых - возможно это не совсем строгое утверждение но пока что и так сойдёт).

Итого, требуется найти такое $\vec f(l)$, проходящее через заданные точки (и, возможно, ещё с какими-то условиями), что
$$\int \left( g \cdot (\alpha')^3 + 2 \cdot g'' \cdot \alpha' - a \cdot g \cdot \alpha' \right) dl = 0$$ для любого $g(l)$, удовлетворяющего граничным условиям.

Что делать дальше, не особо понятно. Подозреваю, что это какая-то простая задача.

Хотелось бы в как можно более общем виде. Но даже частные случаи непонятно как решать, например такой:
$$\vec f(0) = 0, \vec f(L) = \vec f_L, \alpha(0) = 0$$
(всего две точки, первая в нуле координат, линия из неё выходит вдоль оси $x$, и должна попасть во вторую точку)
или такой:
$$\vec f(0) = 0, \vec f(L_1) = \vec f_{L1}, \vec f(L_2) = \vec f_{L2}$$
(просто три точки)

Есть конечно вариант с перебором разных известных кривых и выбором из них лучшей по данному критерию, но это не совсем то.

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

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 18:52 
Заслуженный участник


09/05/12
25179
Кажется, вы пытаетесь изобрести кубические интерполяционные сплайны.

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 19:47 


19/04/19
12
Может быть я не понял что-то, но по-моему там немного про другое.

1) из того что я про них прочёл - там интерполяция скалярной функции одного аргумента, а тут - произвольная кривая, никак не зависящая от поворотов осей координат,
2) там кривая порезана на много частей, каждая из которых почти что сама по себе, а тут - одно уравнение на всю кривую,
3) не вижу, почему именно кубические полиномы дадут минимум для $I_F$ и там нет параметра $a$.

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 19:57 
Заслуженный участник


09/05/12
25179
1) Какая разница? Это разные способы описания кривой, а не разные результаты.
2 и 3) Вы пытаетесь найти какую-то функцию. Конечно, сплайны - это ограничение класса возможных функций, но для них существует удобное представление. Не факт, что вы найдете что-то лучшее.

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

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 20:13 


19/04/19
12
Соглашусь что при большом желании можно почти любую кривую выразить в терминах $y = f(x)$, но не соглашусь что везде это будет интуитивно понятно и просто (например придётся вращать оси координат постоянно, чтобы не спотыкаться на вертикальных участках кривой). А первоначальная цель была в том числе и в простоте математического описания.

Задача возникла из практической задачи (наверно там и правда можно применить какое-то условно подходящее решение).

Но, будучи сформулированной, заинтересовала уже в теоретическом плане - хочется найти именно формально лучшее решение.

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


31/01/14
11018
Hogtown
firk в сообщении #1391004 писал(а):
Оставим в стороне вопрос о том, не сделано ли это уже давно другими способами, чем тот что указан ниже.
Нет, извините, оставлять не будем потому как при $a\ge 0$ ваша кривая это прямая, соединяющая эти самыедве точки.

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 20:21 


19/04/19
12
Red_Herring в сообщении #1391027 писал(а):
firk в сообщении #1391004 писал(а):
Оставим в стороне вопрос о том, не сделано ли это уже давно другими способами, чем тот что указан ниже.
Нет, извините, оставлять не будем потому как при $a\ge 0$ ваша кривая это прямая, соединяющая эти самыедве точки.


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

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение04.05.2019, 20:42 
Аватара пользователя


31/10/08
1244
firk
Вы знакомы с теорией вариационного исчисления?

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


31/01/14
11018
Hogtown
firk в сообщении #1391030 писал(а):
Если там всего две точки (или если больше, но все лежат на прямой) и нет дополнительных условий то конечно это будет прямая, но этот тривиальный случай я даже в примерах не привёл.


Т.е. вы хотите найти кривую $(x(t),y(t))$, минимизирующую ваш функционал (который вы пока не записали в удобном виде), и проходящую через несколько фиксированных точек?
Вот тут-то и таится пакость. Если действовать по наивному, вы получите уравнение четвертого порядка, но кривая-то должна быть только дважды дифференцируема и в фиксированных промежуточных точках уравнение не будет выполняться, просто хотя бы потому что ваши вариации должны быть равны $0$ в этих точках. Поэтому правильная постановка: иметь две точки, но при этом потребовать заданные не только концы, но и направления кривой в них. А потом сшить эти кривые.

Распишите радиус кривизны в случае кривой $(x(t),y(t))$ где в этот момент $t$ просто какой-то параметр. Тогда у вас будет функционал $S=\int_0^T L(x(t), y(t), x'(t),y'(t), x''(t),y''(t))\,dt $, но при этом $t, x(t),y(t)$ явно в $L$ не входят (*). Запишите систему (я знаю, она будет выглядеть жутковато):
$$
\left\{\begin{aligned}
\frac{d^2}{dt^2} L_{x''} - \frac{d}{dt} L_{x'}+ L_{x}=0,\\
\ldots\ldots\ldots
\end{aligned}
$$
Теперь можно считать, что $t$ это длина дуги, и система резко упрощается. Более того, в силу (*) последние члены в уравнениях будут $0$ и можно проинтегрировать:
$$
\left\{\begin{aligned}
\frac{d }{dt } L_{x''} -  L_{x'} =\lambda,\\
\ldots\ldots\ldots
\end{aligned}
$$
Можно было бы заменить $x'(t),y'(t)$ на $u(t),v(t)$ с самогио начала? Конечно, но тогда появились бы дополнительные условия
$$S_1=\int _0^T u(t)\,dt = A, \qquad S_2=\ldots\ldots\ldots$$
и следовало бы записать $S^*:= S-\lambda S_1-\mu S_2$ и писать уравнения Э-Л для него. В любом случае получите ОДУ второго порядка от-но $x'(t),y'(t)$, содержащие 2 константы $\lambda,\mu$.

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение05.05.2019, 03:18 


19/04/19
12
Спасибо, так всё вроде получается. Только из-за того что интегрирование по длине, а не по абстрактному аргументу - в конце всё ещё упрощается: вместо двух (или векторного) уравнений второго порядка $2 \vec v'' + \vec v ( 3 (\vec v')^2 - a ) = \vec \lambda$ из-за связей между $v_x$, $v_y$ остаётся одно скалярное первого: $\alpha ' ^2 = a - \lambda_0 \cos (\beta - \alpha )$, где $\alpha$ - угол направления траектории, а всё кроме $\alpha$ - константы. Насчёт аналитического решения не уверен, а вот численно оно легко решается так:
Изображение
Нужные решения, наверно, лежат на первом витке этой спирали. "Движется" в сторону, противоположную $\vec \lambda = (\lambda, \mu) = \lambda_0 \cdot (\cos \beta, \sin \beta )$, при увеличении $\lambda_0$ вплоть до $a$ постепенно вырождается в прямую.

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


31/01/14
11018
Hogtown
firk в сообщении #1391087 писал(а):
Спасибо, так всё вроде получается

Не так быстро. Прежде всего, напоминаю, вдоль варьированной кривой $t$ длиной уже не будет, только вдоль неварьированной (можно обойти, но там свои заморочки). Кроме того у вас несколько, скажем три, точки, две "дуги" их соединяющих и на каждой дуге свои $\lambda,\mu$ и как то надо разобраться с граничными условиями в начальной и конечной точкац и с условиями сопряжения в промежуточной.

Рассмотрим теперь функционал $S^$ в полном виде:
$$
S= \sum_{0\le k\le N-1} \int_{t_k}^{t_{k+1}} L(x,x',x'') \,dt 
$$
и проварьируем его. Получим интегральные члены, равные $0$ из-за уравнения, которое мы вывели, и внеинтегральные
$$
\delta S= \sum_{0\le k\le N-1} \Bigl[ (\ldots ) \delta x + L_{x''} \delta x'\Bigr]_{t=t_k}^{t=t_{k+1}} + \text{таки же члены по $y$}
$$
На концах дуг $\delta x=0$, а вот собирая остальные члены мы получим и, учитывая, что $\delta x'(t_k)$ произвольны в начальной и конечной точках "большой" кривой и $\delta x'(t_{k}^-) =\delta x'(t_{k}^+)$ в остальном произвольны в промежуточных точках, получим граничные условия $L_{x''}(t_k)=0$, $k=0,N$ и $L_{x''} (t_k^-)= L_{x''} (t_k^+)$ в промежуточных точках $k=1,\ldots,N-1$ и аналогично по $y$ . Вот с этими условиями плюс фиксированные значения $x(t_k)$, $k=0,\ldots,N$ плюс условия непрерывности $x'(t_k^-)=x'(t_k^+)$ первых производных у нас будет полная (многоточечная) задача для системы ОДУ . Тут то можно и посчитать опять что $t$ на каждой кривой длина (и тогда мы получим условия в простом виде)

Не поленитесь и распишите здесь все

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение05.05.2019, 09:45 


19/04/19
12
Red_Herring в сообщении #1391091 писал(а):
Прежде всего, напоминаю, вдоль варьированной кривой $t$ длиной уже не будет, только вдоль неварьированной

Это я не забывал.

А то что для поиска направлений дуги в промежуточных точках надо будет знать зависимость величин этих интегралов от от них - не подумал. Хотел посчитать дуги по одной и "как-то" сшить их так чтобы было одинаковое направление в промежуточных точках.

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение05.05.2019, 11:11 


19/04/19
12
Red_Herring в сообщении #1391091 писал(а):
$\delta x'(t_{k+1}^-) =\delta x'(t_{k}^+)$

Не понял, почему? Или может я неправильно понял что тут написано? $\delta x'$ в конце и в начале каждой дуги равны?
Может так?
$\delta x'(t_{k}^-) =\delta x'(t_{k}^+)$ (в конце предыдущей равно в начале этой).

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


31/01/14
11018
Hogtown
firk в сообщении #1391104 писал(а):
в конце предыдущей равно в начале этой)

Да, это я и имел в виду (исправлено). И эти условия (равенствa для $L_{x''}$) нам дадут равенства для кривизн--в конечных точках $0$, a а в промежуточных с обеих сторон).

 Профиль  
                  
 
 Re: Поиск кривой, подходящей под интегральное уравнение
Сообщение08.05.2019, 19:36 


19/04/19
12
Если кому интересно, напишу что пока что получилось и вообще. Остались в основном кажется численные расчёты, на которые пока что не было времени.
Но вдруг в теоретической части где-то что-то неправильно и кто-то это заметит.

Всё кратко.
Обозначения:
$a$ - параметр задачи (константа)
$r(l)$ - радиус кривизны кривой
$t$ - аргумент двумерной функции, задающей кривую, в общем случае
$l$ - частный случай $t$ когда он равен длине длине вдоль дуги
$\vec f = \vec f(l)$ - функция, задающая кривую
$\vec v = \vec v(l) = \vec f'(l)$ - её производная, в случае $l$ - единичный вектор направления
$\alpha$ - угол направления, такой что $\vec v = (\cos \alpha, \sin \alpha)$

Формула "меры некачества" кривой, подлежащей минимизации: $$S(\vec f) = \int F dl = \int \left( \frac{1}{r^2} + a \right) dl = \int \left( \left( \frac{d^2 \vec f}{dl^2} \right)^2 + a \right) dl$$
В общем случае когда аргумент - не длина вдоль дуги, заменяем $dl = \left| d\vec f \right|$ и получаем $$S(\vec f) = \int \left(  ( \vec f'')^2 (( \vec f')^2)^{-3/2} + a (( \vec f')^2)^{1/2} \right) dt = \int L(\vec f, t) dt$$

Найдём такие кривые, у которых $\frac{d}{d\varepsilon}S(\vec f + \varepsilon \vec g) |_{\varepsilon=0} \geqslant 0$ для любых $\vec g(t)$, не нарушающих доп. условия.

$$\frac {dS}{d\varepsilon}  = \int \frac {dL}{d\varepsilon} dt = \int \left( L_{\vec f'} \vec g' + L_{\vec f''} \vec g'' \right) dt = \int \left( (L_{\vec f'} \vec g)' - L'_{\vec f'} \vec g + (L_{\vec f''} \vec g')' - ((L'_{\vec f''} \vec g)' - L''_{\vec f''} \vec g) \right) dt =$$ $$= \int_0^T \left( -L'_{\vec f'} + L''_{\vec f''} \right) \vec g dt + \left[ L_{\vec f'} \vec g + L_{\vec f''} \vec g' - L'_{\vec f''} \vec g \right]_0^T$$ (1)

$\vec g(0) = \vec g(T) = 0$ в любом случае т.к. это заданные края кривой.

Для начала рассмотрим случай, когда доп. условия заданы только в начале и конце кривой и они включают в себя и направления, то есть $\vec g'(0) = \vec g'(T) = 0$.
Тогда от формулы (1) остаётся только интегральная часть, и для выполнения условия минимума нужно чтобы множитель перед $\vec g$ был везде нулевым.

$$ L''_{\vec f''} - L'_{\vec f'} = 0 $$
$$ L'_{\vec f''} - L_{\vec f'} = \vec \lambda $$
где $\vec \lambda = \lambda (\cos \beta, \sin \beta)$ - некоторая произвольная векторная константа.

Ищем эти частные производные и одну производную по $t$, затем добавляем условие $\left| \vec f' \right| = 1$ (так как все остальные случаи приводятся к этому пересчётом аргумента), заменяем $t = l$ и получаем: $L'_{\vec f''} = 2 \vec f'''$, $L_{\vec f'} = \vec f' (-3 (\vec f'')^2 + a)$.
Подставляем это в уравнение выше и получаем: $ 2 \vec v'' +\vec v (3 (\vec v')^2 - a) = \vec \lambda$ (2).
Этому уравнению должны подчиняться все $\vec f(l)$, дающие локальный минимум функционала при зафиксированных концах кривой и направлениях на концах.

Введём несколько новых обозначений и распишем соотношения между ними:
$\vec v = (\cos \alpha, \sin \alpha)$
$\vec v' = \alpha' (-\sin \alpha, \cos \alpha) = -\alpha' \vec v_T$, $(\vec v')^2 = (\alpha')^2$
$\vec v'' = \alpha'' (-\sin \alpha, \cos \alpha) +  (\alpha')^2 (-\cos \alpha, -\sin \alpha) = -\alpha'' \vec v_T - (\vec v')^2 \vec v$

Умножая обе стороны уравнения (2) на $\vec v$, сразу получаем $(\vec v')^2 = \vec \lambda \vec v + a$ (3) - уравнение первого порядка от $\vec v$, с двумя особенностями: во-первых знак производной не зафиксирован, но он сохраняется при следовании вдоль кривой, и во-вторых, если $| \vec\lambda | > a$, то область определения уравнения ограничена $\vec \lambda \vec v \geqslant -a$. Подставив (3) в (2), получим $\vec v'' = \frac{\vec \lambda - \vec v(3(\vec\lambda \vec v) + 2 a)}{2}$ (4). Так же найдём $\vec v'' |_{\vec v' = 0} = \frac {\vec\lambda + \vec v a}{2}$ (5).

В попытках поиска аналитического решения нашёл ссылки на эллиптические функции, которые сами по себе аналитически, как я понял, не считаются, а с ними придётся ещё дальше считать интегралы т.к. нам нужно не $\vec v$ а $\vec f$ в итоге. Поэтому, как мне кажется, это уравнение лучше сразу решать численно, составить необходимые (см. ниже) таблицы свойств его решений в зависимости от $a$, $\vec \lambda$, $\vec v(0)$ для использования в исходной задаче.

Продолжение в следующем сообщении.

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

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



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

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


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

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