Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please use Java to complete the following: - Write a method that wil input a seq

ID: 3828696 • Letter: P

Question

Please use Java to complete the following:

- Write a method that wil input a sequence of coefficients and exponents and form them into a linked polynomial.

- Write a method that will subtract two polynomials.

- Write a method that will compute the first, second, and third derivative of a polynomial.

- Write a method that will multiply a polynomial by a scalar.

- Write a method that, given a polynomial and an integer, evaluates the polynomial at that number.

- Write a method that will print a polynomial as a sequence of coefficients and exponents, arranged attractively.

Be sure to include an appropriate driver for your code.

Explanation / Answer

/* Code for Polynomial equation */

public class Java_polynomial {
    private int[] coef;
    private int deg;


    public Java_polynomial(int a, int b) {
        coef = new int[b+1];
        coef[b] = a;
        deg = degree();
    }

   

    // return c = a + b
    public Java_polynomial plus(Java_polynomial b) {
        Java_polynomial a = this;
        Java_polynomial c = new Java_polynomial(0, Math.max(a.deg, b.deg));
        for (int i = 0; i <= a.deg; i++) c.coef[i] += a.coef[i];
        for (int i = 0; i <= b.deg; i++) c.coef[i] += b.coef[i];
        c.deg = c.degree();
        return c;
    }

    // return (a - b)
    public Java_polynomial minus(Java_polynomial b) {
        Java_polynomial a = this;
        Java_polynomial c = new Java_polynomial(0, Math.max(a.deg, b.deg));
        for (int i = 0; i <= a.deg; i++) c.coef[i] += a.coef[i];
        for (int i = 0; i <= b.deg; i++) c.coef[i] -= b.coef[i];
        c.deg = c.degree();
        return c;
    }

    // return (a * b)
    public Java_polynomial mul(Java_polynomial b) {
        Java_polynomial a = this;
        Java_polynomial c = new Java_polynomial(0, a.deg + b.deg);
        for (int i = 0; i <= a.deg; i++)
            for (int j = 0; j <= b.deg; j++)
                c.coef[i+j] += (a.coef[i] * b.coef[j]);
        c.deg = c.degree();
        return c;
    }

    public boolean eq(Java_polynomial b) {
        Java_polynomial a = this;
        if (a.deg != b.deg) return false;
        for (int i = a.deg; i >= 0; i--)
            if (a.coef[i] != b.coef[i]) return false;
        return true;
    }


public int degree() {
        int d = 0;
        for (int i = 0; i < coef.length; i++)
            if (coef[i] != 0) d = i;
        return d;
    }


// use Horner's method to compute and return the polynomial evaluated at x
    public int evaluate(int x) {
        int p = 0;
        for (int i = deg; i >= 0; i--)
            p = coef[i] + (x * p);
        return p;
    }


   
    // differentiate this Java_polynomial and return it
    public Java_polynomial differentiate() {
        if (deg == 0) return new Java_polynomial(0, 0);
        Java_polynomial deriv = new Java_polynomial(0, deg - 1);
        deriv.deg = deg - 1;
        for (int i = 0; i < deg; i++)
            deriv.coef[i] = (i + 1) * coef[i + 1];
        return deriv;
    }

    // convert to string representation
    public String toString() {
        if (deg == 0) return "" + coef[0];
        if (deg == 1) return coef[1] + "x + " + coef[0];
        String s = coef[deg] + "x^" + deg;
        for (int i = deg-1; i >= 0; i--) {
            if      (coef[i] == 0) continue;
            else if (coef[i] > 0) s = s + " + " + ( coef[i]);
            else if (coef[i] < 0) s = s + " - " + (-coef[i]);
            if      (i == 1) s = s + "x";
            else if (i > 1) s = s + "x^" + i;
        }
        return s;
    }

    // test client
    public static void main(String[] args) {
        Java_polynomial zero = new Java_polynomial(0, 0);

        Java_polynomial p1   = new Java_polynomial(5, 3);
        Java_polynomial p2   = new Java_polynomial(3, 2);
        Java_polynomial p3   = new Java_polynomial(6, 4);
        Java_polynomial p4   = new Java_polynomial(7, 1);
        Java_polynomial p    = p1.plus(p2).plus(p3).plus(p4);

        Java_polynomial q1   = new Java_polynomial(7, 2);
        Java_polynomial q2   = new Java_polynomial(2, 0);
        Java_polynomial q    = q1.plus(q2);                    

        /* To Add Both Polynomial */
        Java_polynomial r    = p.plus(q);
  /* Multiply Both Polynomial */
  Java_polynomial s    = p.mul(q);
      
        System.out.println("p(x) =        " + p);
        System.out.println("q(x) =        " + q);
        System.out.println("p(x) + q(x) = " + r);
     System.out.println("q(x) - p(x)    = " + q.minus(p));
        System.out.println("p(x) * q(x) = " + s);
  System.out.println("p(3)        = " + p.evaluate(3));
        System.out.println("p'(x)       = " + p.differentiate());
        System.out.println("p''(x)      = " + p.differentiate().differentiate());
  System.out.println("p'''(x)      = " + p.differentiate().differentiate().differentiate());
   }

}