Как убедиться, что полиномиальная кривая монотонна на интервале [a, b]? - PullRequest
1 голос
/ 02 ноября 2009


Если у меня есть полиномиальная кривая, и я хочу найти все сегменты монотонной кривой и соответствующие интервалы путем программирования.
Какой лучший способ сделать это ...
Я хочу избежать решения уравнения типа f '(x) = 0;
Использование некоторых хороших численных способов сделать это, например, би-сечение, является предпочтительным.
Доступно выражение f '(x).

Спасибо.

Добавить дополнительную информацию. Например, я получаю кривую в 2-мерном пространстве, и ее многочлен равен

x: f (т) у: г (т)

т [0,1]

Итак, если я хочу получить его монотонный сегмент кривой, я должен знать положение t, где его касательный вектор равен (1,0).

Одним из прямых способов решения этой проблемы является установка уравнения "f '(x) = 0".

Но я хочу использовать наиболее эффективный способ сделать это.

Например, я пытаюсь использовать рекурсивные способы, чтобы найти это. Разделите диапазон [0,1] на четыре части и проверьте, находятся ли проекции четырех касательных на вектор (1,0) в одном направлении, и достаточно ли близки две точки. Если нет, продолжайте делить диапазон на 4 части, пока они не окажутся в одном направлении в (1,0) и (0,1) и не закроются достаточно близко.

Ответы [ 3 ]

6 голосов
/ 02 ноября 2009

Я думаю, вам нужно будет найти корни f '(x), используя числовой метод (не стесняйтесь реализовывать любой алгоритм поиска корней , который вы хотите, в Википедии есть список). Корни будут теми точками, где градиент достигает нуля; скажем, х1, х2, х3.

Затем у вас есть набор интервалов (-inf, x1) (x1, x2) и т. Д., Непрерывность полинома гарантирует, что градиент всегда будет положительным или всегда отрицательным между определенной парой точек.

Таким образом, оценка знака градиента в точке в пределах каждого интервала покажет вам, монотически ли увеличивается этот интервал или нет. Если вам не нужен «строго» увеличивающийся участок, вы можете соединить смежные интервалы с положительным градиентом (поскольку точка перегиба будет отображаться как один из корней f '(x) = 0).

1 голос
/ 02 ноября 2009

В качестве альтернативы вычислению корней f ', вы также можете использовать Последовательности Штурма .

Они позволяют подсчитать количество корней (здесь корней f ') в интервале.

0 голосов
/ 02 ноября 2009

Сегменты монотической кривой ограничены корнями f '(x). Вы можете найти корни, используя итерационный алгоритм, такой как метод Ньютона .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...