private double[] rootsToPolynomial(Complex[] x){ /* Returns a double array of coefficients of the polynomial, assuming the each complex root has it's conjugate in the same array. */ PolynomialFunction[] polynomialFunctionArray = new PolynomialFunction[x.length/2]; PolynomialFunction product = new PolynomialFunction(new double[]{1}); for(int i = 0; i < x.length / 2; i++){ PolynomialFunction complexRoot = new PolynomialFunction(new double[]{-x[i].getReal(), 1}); complexRoot = complexRoot.multiply(complexRoot); complexRoot = complexRoot.subtract(new PolynomialFunction(new double[]{-1 * x[i].getImaginary() * x[i].getImaginary()})); System.out.println((complexRoot)); polynomialFunctionArray[i] = complexRoot; } for (PolynomialFunction aPolynomialFunctionArray : polynomialFunctionArray) product = aPolynomialFunctionArray.multiply(product); return product.getCoefficients(); }
.subtract(bPolys[j - leadIndex + n] .multiply(aNew[leadIndex])); for (int j = leadIndex - n; j < leadIndex; ++j) { aNew[j] = aNew[j].multiply(bPolys[n]) .subtract(bPolys[j - leadIndex + n] .multiply(aNew[leadIndex])); PolynomialFunction t1 = mat[i][j].multiply(mat[k][k]); PolynomialFunction t2 = mat[i][k].multiply(mat[k][j]); PolynomialFunction t = t1.subtract(t2); mat[i][j] = PolynomialUtils.polynomialDivision(t, c);