Radici di polinomi

L'applicazione è stata creata per risolvere il problema del calcolo delle radici reali di un dato polinomio in un modo unico.

Descrizione

L'applicazione a riga di comando accetta coefficienti polinomiali e un parametro di precisione, calcolando gli zeri reali del polinomiale.

Descrizione del codice

Applicazione Java a riga di comando.

Il concetto di questo algoritmo prevede le seguenti fasi:

  • Identificare le regioni in cui la funzione derivata è uguale a zero. Ciò può essere ottenuto calcolando gli zeri del derivato
  • Applicare il teorema di Bolzano all'interno di ciascuna di queste regioni per individuare gli zeri del polinomio originale.

Tuttavia, c'è un catch-22: dobbiamo prima calcolare gli zeri della funzione derivata per definire gli zeri del polinomio stesso!

Soluzione: Applichiamo la ricorsione fino a quando non raggiungiamo un polinomio che consente un facile calcolo dei suoi zeri. Questo processo può essere ripetuto fino a quando non deriviamo una funzione di affinità


Svantaggi:

  • Se il grado del polinomio (n) è grande, la derivazione può produrre numeri molto alti (come n!), il che può complicare i calcoli.
  • La complessità delle operazioni dipenderà dalla dimensione dei numeri, che possono essere rappresentati in funzione del log(n!)

Per i gradi realistici che si trovano nella vita reale, non ci dovrebbe essere alcun problema


L'algoritmo è stato progettato senza assumere dati a virgola mobile, utilizzando invece i generici Java.

L'applicazione supporta l'uso di Double o BigDecimal, ma una versione Float potrebbe essere facilmente implementata

È una prova del concetto. Programmarlo per BigDecimal da solo sarebbe bastato, ma l'uso dei generici rende gli algoritmi più freddi e più illustrativi per i principianti


Non ho ancora ampiamente testato l'applicazione e c'è la possibilità che possa essere messa a punto per migliorare la precisione e la funzionalità in più scenari. Tuttavia, credo che il codice abbia un grande potenziale.

Penso che possa essere efficacemente adattato per funzionare in tutti gli scenari.

Finestre

Radici polinomiali (2023)

Scarica

Versioni

image

I calcolatori di radici polinomiali sono un punto fermo nel campo delle carriere in informatica.

Contribuisco con la mia versione della soluzione al problema.

Non è una soluzione molto efficiente poiché la complessità computazionale nel peggiore dei casi è O(G2), dove G rappresenta il grado polinomiale.

Tuttavia, penso che si ottiene il lavoro fatto in modo efficace


L'algoritmo si basa sul calcolo delle radici di un polinomio, supponendo che le radici della sua funzione derivata siano note.

In base a questa ipotesi, è semplice calcolare le radici perché possiamo determinare il limite di intervallo delle radici.(Vedi:Proprietà delle radici polinomiali)

In questo modo, possiamo determinare l'intervallo di ogni radice potenziale utilizzando le radici della funzione derivata e possiamo calcolare gli zeri applicando il teorema di Bolzano.

Ma... abbiamo bisogno della funzione per calcolare le radici della funzione derivata!

Nessun problema. Usiamo la ricorsione per calcolare le radici di un polinomio. La funzione ricorsiva ha un caso di terminazione per lo scenario di un polinomio di grado zero (una costante), che riteniamo non abbia radici.

Poiché la funzione derivata ha un grado in meno rispetto al polinomio originale, utilizzando la ricorsione, possiamo calcolare le radici di un polinomio a zero gradi, rendendolo un semplice problema da risolvere.


Questo modo di procedere può richiedere precisione nei nostri calcoli, ma questo non è un problema se usiamo la classe Java BigDecimal.

Scaricamenti