Personalmente, un polinomio per me è un vettore di coefficienti
a0 + a1*x + a2*x^2... + an*x^n
Quindi lo andrei a rappresentare con un array di Razionale.
Ossia, avrei un costruttore Poly:
codice:
public Poly(Razionale[] r) {
//r è un array di n+1 elementi, dove n è il grado massimo del polinomio
}
poi puoi fare tutti i metodi accessori che vuoi (per esempio, dato il grado di un monomio, ritornare il Razionale coefficiente del tale monomio)
Per quanto riguarda il verificare se un Razionale è zero, visto che quella classe non è tanto user-friendly, puoi inventarti questo:
codice:
Razionale zero = new Razionale(0,1);
if (zero.lessOrEqual(tuoRazionale) && tuoRazionale.lessOrEqual(zero)) { // è 0
}