/** Divide, si es posible */ public void divide() { if (operandos.size() > 1) { Polinomio p = operandos.pop(); Polinomio q = operandos.pop(); if (p.getGrado() > q.getGrado()) { operandos.add(p.divida(q)); } else { operandos.add(q.divida(p)); } } }
/** Integra, si es posible */ public void integre() { if (operandos.size() > 0) { Polinomio p = operandos.pop(); int[][] q = new int[p.getGrado() + 2][2]; q[0][0] = 0; q[0][1] = 1; for (int i = 0; i < p.getGrado() + 1; i++) { q[i + 1][0] = p.getCoeficiente(i) .multiplique(new Fraccionario(i + 1).inverso()) .numeradorSimplificado(); q[i + 1][1] = p.getCoeficiente(i) .multiplique(new Fraccionario(i + 1).inverso()) .denominadorSimplificado(); } operandos.push(new Polinomio(q)); } }
/** Deriva, si es posible */ public void derive() { if (operandos.size() > 0) { Polinomio p = operandos.pop(); int[][] q = new int[p.getGrado()][2]; for (int i = 1; i < p.getGrado() + 1; i++) { q[i - 1][0] = p.getCoeficiente(i).multiplique(new Fraccionario(i)).numeradorSimplificado(); q[i - 1][1] = p.getCoeficiente(i).multiplique(new Fraccionario(i)).denominadorSimplificado(); } operandos.push(new Polinomio(q)); } }