Я припускаю, що ви розглядаєте поліноми з цілими коефіцієнтами.
Ви взяли неправильну вихідну точку для своїх розслідувань; ваша мета - знайти хороші оцінки реальних коренів. Шукати алгебраїчну формулу, щоб ви могли її оцінити з достатньою точністю - це щось, що ви можете зробити, але це насправді не правильно. (якщо, звичайно, " k
найкрупніший справжній корінь полінома" є однією з ваших алгебраїчних операцій)
Набагато кращою відправною точкою є використання теореми Штурма для виділення коренів многочлена. Потім ви можете робити кращі оцінки за допомогою двійкового пошуку, але якщо це занадто повільно, ви можете використовувати метод Ньютона для швидкого отримання оцінок високої точності.
Але це лише про те знайти сертифікати. Досі залишається питання про те, які сертифікати можуть існувати.
По-перше, я зазначу, що ви можете безпосередньо обчислити, чи два корені є рівно одиницями, наприклад, обчисливши gcd ( p ( x ) , p ( x - k ) ) . Вам також доведеться вирішити, що ви хочете зробити щодо повторних коренів, і мати справу з відповідним чином. Я припускаю, що ви будете розбиратися з цією справою спеціально.kgcd(p(x),p(x−k))
Якщо ми знаємо, що два корені не є рівно одиницями, це означає, що ви можете дати оцінку достатньої точності, щоб довести, що вони або більше, або менше k одиниць. наприклад, є два типи сертифікатів:kk
Перший вид (доказ у негативі) - це
- - не корінь pap
- не має коренів у ( a - k , a )p(a−k,a)
- має три корені в ( a , ∞ )p(a,∞)
Другий вид (доказ у позитиві) - це
- - не корінь pap
- має щонайменше два корені в ( a - k , a )p(a−k,a)
- має два корені в ( a , ∞ )p(a,∞)
Сертифікат можна перевірити, використовуючи теорему Штурма. Тепер, ваше запитання про розмір сертифіката зводиться до знаходження , скільки бітів точності потрібно представляти .a
Іншими словами, які межі на можливі значення , де a , ba−b−ka,b - корені ?f
Я не впевнений у чудовому підході, але той, який повинен вам щось дати, - це спостерігати, що всі ці значення є корінням многочлена:
g(x)=Resy(f(y),f(x+y+k))
Чому? Нагадаємо, що результат двох монічних многочленів є добутком усіх відмінностей їх коренів, так
g(x)=cd2∏a,b(b−(a−x−k))=∏a,b(x−(a−b−k))
де - провідний коефіцієнт, а d - ступінь f . (можливо, я написав формулу для - g ( x ) замість g ( x ) ; я ніколи не впевнений у знаку)cdf−g(x)g(x)
Отже, питання полягає в тому, щоб знайти оцінку, наскільки великі можуть бути коефіцієнти , а потім, коли ви це знаєте, знайдіть оцінки, наскільки близький корінь ggg може бути нуль.
(або, як альтернатива, знайти найбільшу величину, яку може мати корінь зворотного многочлена ; коріння зворотного многочлена є зворотами коренів g )gg