Корені многочленів

Програму було створено для розв' язання проблеми обчислення справжніх коренів заданого многочлена у унікальний спосіб.

Опис

Програма командного рядка приймає багаточленні коефіцієнти і параметр точності, обчислюючи справжні нулі многочлена.

Опис коду

Програма Java командного рядка.

Поняття цього алгоритму складається з таких кроків:

  • Визначте області, де похідна дорівнює нулю. Це можна зробити під час обчислення нулів похідної.
  • Застосуйте теорему Бользано у кожній з цих областей, щоб знайти нулі початкового многочлена.

Однак, є пастка-22: спочатку ми повинні обчислити нулі функції похідної, щоб визначити нулі самого многочлена!

Вирішення: ми застосуємо рецидив до часу, коли досягнемо многочлена, за допомогою якого можна спростити обчислення нулів. Цей процес можна повторити до того часу, доки ми не отримаємо функцію acine.


Недоліки:

  • Якщо коефіцієнт многочлена (n) великий, то похідні числа можуть бути дуже високими (напр. n!), що може ускладнювати обчислення.
  • Складність операцій залежатиме від розміру чисел, які можна представити як функцію logn!)

Щоб знайти реалістичні ступені в реальному житті, не повинно бути жодних проблем.


Алгоритм було розроблено, не враховуючи даних з плаваючою комою, замість цього використання Java- загальних

Програма підтримує використання подвійної або цифрової версії, але версію з плаваючою комою можна легко застосовувати

Це доказ концепції. Сама програма для BigDecimal достатньо, але використання загальних засобів робить алгоритми холоднішими і більш зображеними для початківців


Я ще не ретельно перевіряв програму, і можливо, що код має великий потенціал для покращення точності та функціональності.

Я думаю, що це можна ефективно пристосувати до роботи у всіх сценаріях.

Вікна

Багаторічні корені (2023)

Звантажити

Версії

image

Поліномальні корені калькуляторів є основою в галузі комп'ютерної наукової кар'єри.

Я додаю свою версію вирішення проблеми.

Це не є дуже ефективним рішенням, оскільки обчислювальна складність у найгіршому випадку - O'G^2), де G відповідає многочлену.

Проте, я думаю, що це робить роботу ефективно


Алгоритм засновано на обчисленні коренів многочлена, припускаючи, що корені його похідної функції відомі

Під цим припущенням, легко обчислити корені, тому що ми можемо визначити межу коренів(Дивіться:Властивості многочленового кореня)

Таким чином, ми можемо визначити діапазон кожного потенціального кореня використовуючи корені похідної функції, і ми можемо обчислити нулі за допомогою застосування теореми Бользано.

Але... нам потрібна функція для обчислення коренів похідної функції!

Без проблем. Для обчислення кореня многочлена ми використовуємо рефракційну функцію. Рекурсивна функція має регістр завершення для сценарію многочлена нульового градуса ( константи), який, як ми вважаємо, не має коренів.

Оскільки похідна функція має на один градус менше за початковий многочлен, за допомогою рецидиву ми можемо обчислити корінь многочлена у нульовому ступені, що робить його простою проблемою для розв'язання.


Цей спосіб продовження може вимагати точності в наших розрахунках, але це не проблема, якщо ми використаємо GongDecimal клас Java.

Звантаження