2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Поиск аппроксимирующей функции по заданным параметрам
Сообщение03.12.2017, 16:16 


03/12/17
2
Доброго времени суток, коллеги.
Прошу помощи в поиске аппроксимирующей функции, которая описывает лопасть, изображённую на картинке.
Дано:
1) углы: \alpha_{1}, \alpha_{2}, \alpha_{3}, \alpha_{4}
2) радиусы: \mathsf{R}, \mathsf{r}_{1}, \mathsf{r}_{2}
3) конец отрезка: \mathsf{b}
4) сжимающий коэффициент: \gamma

Если присмотреть, то картинка отображает лопасть винта в профиле, но в расчёт берётся не вся лопасть (без пунктира).
Окружности вписаны для наглядности, так как наиболее важен их радиус, который задаёт отклонение двух кривых друг от друга.
\mathsf{R} - максимальное отклонение.

По какому закону описываются кривые я не знаю, предположительно они должны описываться полиномом Эрмита 3-4 степени.
Большую степень брать не следует, так как могут возникать колебания (на рис. справа сверху). Также предполагается, что
для того, чтобы сгладить колебания, возможно стоит использовать функцию \boldsymbol{e}^{-\boldsymbol{p}\boldsymbol{x}^2}

Изображение

 Профиль  
                  
 
 Re: Поиск аппроксимирующей функции по заданным параметрам
Сообщение03.12.2017, 16:34 
Заслуженный участник


23/07/08
10626
Crna Gora
Что Вы точно можете сделать сами: для каждой из кривых (верхней и нижней) написать координаты трёх точек (две по краям, одна в середине), через которые она должна проходить. Пусть эти точки обозначены, например, $A, B, C$, а их координаты $(x_a, y_a), (x_b, y_b), (x_c, y_c)$ (можете предложить свои обозначения). Важны также производные в этих точках, Вы их задали углами наклона.

Далее мы работаем не со сложными выражениями, которые Вы получите (зачем они нам?), а с этими простыми значками.

 Профиль  
                  
 
 Re: Поиск аппроксимирующей функции по заданным параметрам
Сообщение03.12.2017, 18:16 


17/10/08

1313
У меня есть программа, которая находит вид функции по экспериментальным данным. Не исключено, что с помощью нее можно найти подходящую функцию и для этой задачи.

Судя по картинке, нужно найти функцию от одного аргумента x, т.е. функцию $y = P(x)$. Очевидно, что эта функция зависит от параметров углов и радиусов.

Первый же вопрос - сколько функций нужно найти, одну или две? На картинке две кривые - должна ли задача решаться задача поиска двух функций? Или это задача поиска одной функции, для которой обе кривые совпадут при нулевых радиусах?

Второй вопрос - это задание ограничений для искомой функции (функций). Как уже отметил svv, ограничения для функции проще задавать в виде координат и производных. Если все же нужно искать одну функцию, то параметров всего 4:
* Производная в 0
* Производная в 1 (b можно положить равным 1)
* Точка $(\gamma, y_{max})$
Ну, и далее следует задать ограничения на функцию:
* Функция строго вогнутая
* Производная в $\gamma$ равна нулю
* Для гладкости можно задать что-то вроде этого $\int\limits_0^1 (P(x)'')^2 dx\to min$

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

 Профиль  
                  
 
 Re: Поиск аппроксимирующей функции по заданным параметрам
Сообщение06.12.2017, 02:57 


29/09/06
4552
Master Magistrov,
правильно ли я понимаю, что Вы в перечне параметров забыли указать $h$ --- ординату центра окружности радиуса $R$ (абсцисса которого указана как $\gamma b$)?
Или она Вам в натуре до лампочки?

 Профиль  
                  
 
 Re: Поиск аппроксимирующей функции по заданным параметрам
Сообщение06.12.2017, 08:16 


29/09/06
4552

Master Magistrov в сообщении #1271442 писал(а):
лопасть винта в профиле,
К сожалению, я плохо знаю, что такое "лопасть винта", но наличие этих слов привело меня к следующим подозрениям.
  • Вы решаете задачку из области Computer Aided Desing (геометрического моделирования).
    Master Magistrov в сообщении #1271442 писал(а):
    предположительно они должны описываться полиномом Эрмита
  • Вы хотите описать свои кривые однозначными функциями типа $y=P(x)$ не потому что так надо, а потому что другие способы Вам не особо известны, или Вы их избегаете, или...
Вас действительно не устраивает, если участки $P_1P_2,\,P_2P_3,\;P_4P_5,\,P_5P_6$ на рисунке (вставить который явно мне, как обычно, не удалось) будут, например, кривыми Безье?

Аппроксимацию на рисунке я сделал по-быстрому с помощью бидуг (т.е. каждый из перечисленных участков реализован двумя круговыми дугами) для $$\alpha_1=30,\; \alpha_2=50,\;  \alpha_3=40,\; \alpha_4=50\;\text{(градусов)},\;
r_1=10,\;  r_2=14,\;   R= 30,\; h= 80,\; b=400, \gamma=0.55.$$А можно Безьями, или другими кривыми. Разумеется, не все варианты Вас устроят. Но, скажем, выпуклость кривых, ежели она требуется, не при всяких значениях параметров реализуема.

Невыносимо муторная, на первый взгляд, задача оказалась, с третьего взгляда, не такой уж трудной и противной.

 Профиль  
                  
 
 Re: Поиск аппроксимирующей функции по заданным параметрам
Сообщение08.12.2017, 12:16 


03/12/17
2
Алексей К. здравствуйте!
Ордината сама непосредственно будет варьироваться. Таким образом будет контролироваться "степень выпуклости" (параметры на вход будут подаваться "хорошие").
Возможно стоит отойти от полиномов Эрмита, я с вами согласен. Просто хотел использовать как-то своё приложение, в котором уже реализована аппроксимация ортогональными многочленами для данной задачи.
О кривых Безье я наслышан, но дело с ними иметь до сих пор не приходилось. Пока не знаю насколько трудно будет получить аналитическое представление будущей функции.
Я думаю бидуги не подойдут, поскольку на мой взгляд это разрывная функция (для первой и второй точки это одна дуга и одна функция, для других это другая), которая не подойдет. Хотя Ваши решения впечатляют и мне даже нравятся.
Я тога думаю, видимо придётся аппроксимировать производные на концах отрезка и по трём точкам провести кривую Безье.

-- 08.12.2017, 13:19 --

mserg
Функция всего одна. Она должна быть непрерывна и "достаточно гладкая".
Сможет ли Ваша программа справиться с такой задачей? Если да, то прошу написать в л.с.
Спасибо!

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

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



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

Сейчас этот форум просматривают: Vladimir Pliassov


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

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