У меня есть полиномы нетривиальной степени (4+), и вам необходимо надежно и эффективно определить, имеют ли они корень в интервале [0, T]. Точное местоположение или количество корней меня не интересуют, мне просто нужно знать, есть ли хотя бы один.
Сейчас я использую интервальную арифметику как быструю проверку, чтобы проверить, могу ли я доказать, что корни не существуют. Если я не могу, я использую Jenkins-Traub для решения всех полиномиальных корней. Это явно неэффективно, поскольку он проверяет все реальные корни и находит их точные позиции, информацию, которую я не нуждаюсь.
Есть ли стандартный алгоритм, который я должен использовать? Если нет, есть ли другие эффективные проверки, которые я мог бы сделать, прежде чем делать полный Дженкинс-Трауб для всех корней?
Например, одна оптимизация, которую я мог бы сделать, это проверить, имеет ли мой многочлен f (t) один и тот же знак при 0 и T. Если нет, в интервале, очевидно, есть корень. Если это так, я могу решить для корней f '(t) и оценить f на всех корнях f' в интервале [0, T]. f (t) не имеет корня в этом интервале тогда и только тогда, когда все эти оценки имеют тот же знак, что и f (0) и f (T). Это уменьшает степень полинома I, чтобы корень найти на единицу. Не огромная оптимизация, но, возможно, лучше, чем ничего.