2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Линия с наибольшей кривизной
Сообщение15.04.2021, 20:44 


29/12/09
366
Привет, всем!
Дайте пожалуйста идеи, как получить алгоритм с помощью которого можно найти линию с наибольшей кривизной.
Даны два набора точек $\{x_i,Y^{\max}_i\}$ и $\{x_i,Y^{\min}_i\}$ красные и синие точки соответственно. Значения $Y^{\max}_i$ и $Y^{\min}_i$ - погрешность измерения некоторой функции $g(x)$

Изображение

Я взял все точки, красные и синие и построил аппроксимацию рядом Фурье (черная линия):
$f(x) =  a_0 + a_1\cos(\omega x) + b_1\sin(\omega x) + a_2\cos(2\omega x) + b_2\sin(2\omega x)$
Мне нужно выбрать такие точки $y_i$ из диапазона $(Y^{\max}_i, Y^{\min}_i)$, чтобы получить функцию $f(x)$ с наибольшей кривизной (примерно в зеленой точке).
Первое что пришло в голову, это перебрать крайние точки $Y^{\max}_i$ и $Y^{\min}_i$ во всех возможных вариантах, но простой перебор всех возможных вариантов дает $2^n$ расчетов, где $n$- число точек $(n\approx20)$. Таким образом перебор крайних значений не подходит. Посоветуйте, как выбрать такие точки из диапазона, чтобы через них проходила гладкая кривая с наибольшей кривизной.

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение15.04.2021, 22:18 
Заслуженный участник
Аватара пользователя


23/07/08
10909
Crna Gora
Это примерно так должно получиться?
Изображение
Просто меня не покидает ощущение, что Вы имели в виду наименьшую кривизну (примерно как у чёрной линии).

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение15.04.2021, 22:29 
Заслуженный участник


27/04/09
28128
Или наибольшая кривизна только в той точке, а в остальных поменьше?.. Тогда просто взять один узенький пик как у svv, а в остальных местах приближаться к исходной чёрной, возможно даже опустив её пониже. Но я не очень представляю, что именно при этом оптимизируется — мы могли бы всё увеличивать и увеличивать кривизну до бесконечности, уменьшая собственно радиус кривизны пика.

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение15.04.2021, 22:55 


29/12/09
366
svv в сообщении #1514516 писал(а):
Это примерно так должно получиться?

Нет, не так. У меня было ощущение, что меня не правильно поймут. Тогда, наверно все таки нужно зафиксировать, что функция всегда будет рядом Фурье: $f(x) =  a_0 + a_1\cos(\omega x) + b_1\sin(\omega x) + a_2\cos(2\omega x) + b_2\sin(2\omega x) $ $(1)$
хотя вид функции заранее не известен, но у нее точно не должно быть много максимумов и минимумов.

arseniiv в сообщении #1514518 писал(а):
Или наибольшая кривизна только в той точке, а в остальных поменьше?.. Тогда просто взять один узенький пик как у svv, а в остальных местах приближаться к исходной чёрной, возможно даже опустив её пониже. Но я не очень представляю, что именно при этом оптимизируется — мы могли бы всё увеличивать и увеличивать кривизну до бесконечности, уменьшая собственно радиус кривизны пика.

Да, понимаю, тогда точно вид функции придется зафиксировать.
Значит теперь нужно понять, как от выбранных точек будет зависеть коэффициенты ряда Фурье, которые будут влиять на максимальную кривизну...

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение15.04.2021, 23:08 
Заслуженный участник
Аватара пользователя


03/06/08
2320
МО
alexey007 в сообщении #1514529 писал(а):
нужно зафиксировать, что функция всегда будет рядом Фурье

alexey007 в сообщении #1514529 писал(а):
у нее точно не должно быть много максимумов и минимумов

Вы полагаете, что первое влечет второе? Почему?
alexey007 в сообщении #1514529 писал(а):
У меня было ощущение, что меня не правильно поймут

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

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение15.04.2021, 23:30 


29/12/09
366
пианист в сообщении #1514532 писал(а):
alexey007 в сообщении #1514529 писал(а):
нужно зафиксировать, что функция всегда будет рядом Фурье

alexey007 в сообщении #1514529 писал(а):
у нее точно не должно быть много максимумов и минимумов

Вы полагаете, что первое влечет второе? Почему?

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

пианист в сообщении #1514532 писал(а):
Возможно, стоит побольше рассказать о задаче.

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

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 00:32 
Заслуженный участник
Аватара пользователя


01/09/13
4656
alexey007 в сообщении #1514533 писал(а):
которая даст наибольшее искривление.

Каждый позвонок выбит в свою сторону....

-- 16.04.2021, 00:41 --

А что означают точки, и почему их два семейства?

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 06:30 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
У Вас не ряд Фурье. У Вас два слагаемых из него. Когда Вы получили приближение - возьмите вторую производную и найдите её максимум.

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 11:44 


29/12/09
366
ОООО, я кажется понял. Спасибо, что подтолкнули меня посмотреть на эту задачу с другой стороны.
Я думаю, что лучше всего аппроксимировать кривую полиномом 4-ой степени, потому, что у $S$-образных сколиозов всегда 3 изгиба. Т.е. задача теперь формулируется так. Нужно найти линию, которая имеет вид $f(x)=a_0+a_1x+a_2x^2+a_3x^3+a_4x^4$ и проходит внутри границ $Y^{\min}_i\ll f(x_i)\ll Y^{\max}_i$, при этом, в точках экстремума $f'(z_k)=0, k=1,2,3$ функция должна иметь максимальную кривизну, наверное условие должно быть записано как то так $f''(z_1)^2+f''(z_2)^2+f''(z_3)^2\to \max$
Вот как теперь искать точки $y_i\in[Y^{\min}_i,Y^{\max}_i]$ через которые пройдет такая кривая. Ведь у полинома 4-ой степени 5 коэффициентов, а точек $n\approx 20$

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 12:21 


14/01/11
3040
Всё-таки что собой представляют синие и красные точки в терминах исходной задачи?

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 13:02 


29/12/09
366
Sender в сообщении #1514572 писал(а):
Всё-таки что собой представляют синие и красные точки в терминах исходной задачи?

Это диапазон неопределенности положения центра позвонка человека во фронтальной плоскости.
Примерно как на картинке:
Изображение

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 13:04 
Заслуженный участник
Аватара пользователя


01/09/13
4656
alexey007 в сообщении #1514574 писал(а):
Это диапазон неопределенности положения центра позвонка человека во фронтальной плоскости.

Тогда ведь нужно учитывать, что размер позвонков меняется?

-- 16.04.2021, 13:07 --

alexey007 в сообщении #1514566 писал(а):
и проходит внутри границ

Это плохая задача - она сильно зависит локальных выбросов.

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 13:24 


29/12/09
366
Geen в сообщении #1514575 писал(а):
alexey007 в сообщении #1514574 писал(а):
Это диапазон неопределенности положения центра позвонка человека во фронтальной плоскости.

Тогда ведь нужно учитывать, что размер позвонков меняется?

В этом диапазоне неопределенности все учтено. Нужно лишь провести линию $f(x)=a_0+a_1x+a_2x^2+a_3x^3+a_4x^4$ в границах этого диапазона (внутри красных и синих точек), у которой будет максимальная кривизна, чтобы консервативно учесть, максимальное искривление позвоночника, которое может быть.

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение16.04.2021, 14:44 


14/01/11
3040
Нужен какой-никакой критерий "хорошести" искомой кривой, иначе получится нечто весьма далёкое от реальности.

 Профиль  
                  
 
 Re: Линия с наибольшей кривизной
Сообщение17.04.2021, 13:40 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Если искать не кривизну $\kappa(x)=\frac {|f, а лишь максимум второй производной, пренебрегая влиянием на значение кривизны знаменателя, задача может быть сведена к задаче линейного программирования. Пусть $x_i$ есть коэффициенты при i-той степени и при этом параметры задачи ЛП (ограничение $x_i \ge 0$ не предусматривается). Тогда значения в каждой точке $z_k$ будут составлять матрицу ограничений $Y_k^{min}\le x_0+x_1 z_k+x_2 z_k^2$+x_3 z_k^3+x_4 z_k^4\le Y_k^{max}. Вторая производная в каждой точке будет
$v_k= x_1+2x_2 z_k+3 x_3 x_k^2+4x_4 x_k^3$
Если число точек не слишком велико, то можно решать задачу 2m раз, беря в качестве целевой функции вторую производную (и затем её же с обратным знаком) в каждой точке и максимизируя её. Или же можно добавить переменные и ограничения и решать задачу единожды.

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

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



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

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


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

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