Приложение командной линии принимает полиномиальные коэффициенты и параметр точности, вычисляя реальные нули полиномиала.
Это приложение было создано для решения проблемы расчета реальных корней данного полинома уникальным образом.
Приложение командной линии принимает полиномиальные коэффициенты и параметр точности, вычисляя реальные нули полиномиала.
Командная линия Java.
Концепция этого алгоритма включает следующие этапы:
Тем не менее, есть улов 22: мы должны сначала вычислить ноли производной функции, чтобы определить нули самого полиномиала!
Решение: Мы применяем рекурсию до тех пор, пока не достигнем полиномиала, который позволяет легко рассчитать его нули. Этот процесс может быть повторен до тех пор, пока мы не выработаем аффиновую функцию.
Недостатки:
Для реалистичных степеней, найденных в реальной жизни, не должно быть проблем
Алгоритм был разработан без допущения каких-либо данных о плавающей точке, используя вместо этого Java generals
Приложение поддерживает использование Double или BigDecimal, но версия Float может быть легко внедрена
Это доказательство концепции. Программирование только для Большого Decimal было бы достаточно, но использование общих алгоритмов делает алгоритмы круче и более иллюстративными для начинающих
Я еще не тщательно проверил приложение, и есть вероятность, что оно может быть отточено, чтобы повысить точность и функциональность в большем числе сценариев.
Я думаю, что его можно эффективно адаптировать к работе во всех сценариях.
Полиномические корневые калькуляторы являются основным элементом в области компьютерной науки.
Я представляю свою версию решения проблемы.
Это не очень эффективное решение, поскольку вычислительная сложность в наихудшем случае - O(G)2), где G представляет полиномиальную степень.
Тем не менее, я думаю, что это позволит нам эффективно выполнять свою работу.
Алгоритм основан на вычислении корней полиномиала при условии, что корни его производной функции известны.
При этом предположении легко рассчитать корни, потому что мы можем определить предел дальности корней.(См.:Свойства полиномических корней)
Таким образом, мы можем определить диапазон каждого потенциального корня, используя производные корни функции, и мы можем вычислить нули, используя теорему Болзано.
Но... нам нужна функция, чтобы рассчитать корни производной функции!
Нет проблем. Мы используем рекурсию для расчета корней полинома. Рекурсивная функция имеет случай прекращения сценария полиномия градуса ноль (константа), который, как мы полагаем, не имеет корней.
Поскольку производная функция имеет на 1 градус меньше первоначального полиномиала, используя рекурсию, мы можем рассчитать корни полиномиала при нулевых градусах, что делает это простой проблемой
Такой способ работы может потребовать точности в наших расчетах, но это не проблема, если мы используем класс Java BigDecimal.