worm2 писал(а):
Или можно попробовать сначала найти все отрезки, в пределах которых корень существует, используя метод Штурма:
Я не очень понимаю источник задачи. В принципе, речь идёт, судя по всему, о конкретных (не глобальных) свойствах к.Б. Это означает, что мы ограничены отрезком
![$[0, 1]$ $[0, 1]$](https://dxdy-03.korotkov.co.uk/f/e/8/8/e88c070a4a52572ef1d5792a341c090082.png)
для значений параметра.
Теоретически, быть может, существует к.Б. с шестью точками пересечения с окружностью. Практически — вряд ли. Кривые с точкой перегиба встречаются редко, с двумя — это экзотика, Т.е., я к тому, что программа не должна ломаться в таких случаях, но и не должна быть сверх эффективной. Чаще всего мы имеем дело с 1-2 корнями.
Практически есть два подхода к оценке количества корней. Первый — алгебраический — метод Штурма и иже с ним. Второй — геометрический — основан на том, что к.Б, находится внутри своего охватывающего многоугольника. А значит, если многоугольник не пересекается с окружностью, то и к.Б. Не пересекается. Тут есть ловушка: проверять пересечение отрезка с окружностью тоже не очень приятно (вычислительно). Но — вполне возможно. А наличие алгоритма деления к.Б. пополам делает возможным разделение корней и дихотомию. Впрочем, тоже относится и к методу Штурма, после того как мы посчитали коэффициенты полинома.
Виталий, простите, но Вам всё-таки нужно почитать что-нибудь по вычислительным методам и аналитической геометрии. Не потому, что никто не хочет Вам помочь. А потому, что Ваша работа требует от Вас более глубокого понимания этих вопросов. Вам не нужно идти далеко, но решение алгебраических уравнений, уравнение прямой — это, обычно, самое начало.