Results 1 to 18 of 18
  1. #1
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Trouble with creating Method and functionality for multiplying a polynomial

    Hello i am trying to work out how to multiply two polynomials entered from keyboard input together. Have got the addition working, and multiplying by a constant. But am unable to get the multiplication method and functionality right.
    You can see my attempt at multiplication under multiply by a monomial code.

    Any help is appreciated.

    thanks


    Java Code:
    import java.util.*;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.text.*;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.Scanner;
    
    
    public class Polynomial
    {
       private Monomial head;
       private int TOLERANCE = 0;
    
    
    
    
    
    /******************  the  Monomial (inner) class   ********************************/
    
       private class Monomial
       {
          private DecimalFormat precision = new DecimalFormat("#.####");
          private int deg;     // degree of polynomial
          private int coeff; // coefficients
          private Monomial next; // Pointer to next term
    
    
          public Monomial(int coeff, int deg, Monomial next)
          {
             this.coeff = coeff;  	//coefficient
             this.deg = deg;  		// Degree
             this.next = next;		// Pointer
          }
          public String toString()
          {
             String form = precision.format(Math.abs(coeff));
    
             if(deg == 0) return form ;
             else
             if(deg == 1) return form + "x";
             else
             return form +"x^" + deg;
          }
          public boolean equals(Monomial mono)
          {
             return coeff == mono.coeff && deg == mono.deg;
          }
    
       }
    
    //*********************************************************************************************
    
       public Polynomial()
       {
          head = null;
       }
    
     /***************************************************************************
       *  Adds a new term into the polynomial, assuming that the polynomial
       *  is sorted in order from smallest to largest exponent.
     **************************************************************************/
       public void addTerm(int coeff, int deg)
       {
          if( Math.abs(coeff) < TOLERANCE ) return;
    
          if( head == null || deg < head.deg )
          {
             head = new Monomial(coeff, deg, head);
             return;
          }
    
          Monomial cur = head;
          Monomial prev = null;
    
          while( cur != null && deg > cur.deg)
          {
             prev = cur;
             cur = cur.next;
          }
          if( cur == null || deg != cur.deg )
    			prev.next = new Monomial(coeff, deg, cur);
          else
          {
             cur.coeff += coeff;
             if( Math.abs(cur.coeff) < TOLERANCE )
               if(prev != null)
                   prev.next = cur.next;
                else
                   head = head.next;
          }
       }
    
       public String toString()
       {
          StringBuffer sb = new StringBuffer();
    
          for(Monomial tmp = head; tmp != null; tmp = tmp.next)
            if(tmp.coeff < 0 )
               sb.append(" - " + tmp.toString());
            else
               sb.append(" + " + tmp.toString());
    
          return sb.toString();
       }
    
    //*********************************************************************************************
    
    
    /*********************************************************************************************
    
       *  Return the degree of this polynomial
    
     **********************************************************************************************/
    
    
    
    //*********************************************************************************************/
    
    
    
    /*********************************************************************************************
       *  Multiplies Polynomial 1 to Polynomial 2
       *  The method does not change the original polynomial.
    **********************************************************************************************/
    
    
    
    
    
    //*********************************************************************************************/
    
    /*********************************************************************************************
       *  Adds Polynomial 1 to Polynomial 2
       *  The method does not change the original polynomial.
    **********************************************************************************************/
       public Polynomial add(Polynomial poly)
       {
          Polynomial res = clone();
    
          for(Monomial tmp = poly.head; tmp != null; tmp = tmp.next)
             res.addTerm(tmp.coeff, tmp.deg);
    
          return res;
       }
    
       public Polynomial clone()
       {
          Polynomial res = new Polynomial();
    
          for(Monomial tmp = head; tmp != null; tmp = tmp.next)
             res.addTerm(tmp.coeff, tmp.deg);
    
          return res;
       }
    
       public boolean equals(Polynomial poly)
       {
          Monomial tmp1 = head;
          Monomial tmp2 = poly.head;
    
          while(tmp1 != null && tmp2 != null)
          {
             if( !tmp1.equals(tmp2) ) return false;
             tmp1 = tmp1.next;
             tmp2 = tmp2.next;
          }
          return true;
       }
    
    //*********************************************************************************************/
    
    
    /*********************************************************************************************
       *  Multiplies by a Constant
       *  The method does not change the original polynomial.
    **********************************************************************************************/
    
       public Polynomial multiply(int num)
       {
          Polynomial res = clone();
    
          for(Monomial tmp = res.head; tmp != null; tmp = tmp.next)
             tmp.coeff *= num;
    
          return res;
       }
    
    //*********************************************************************************************/
    
    
     /*********************************************************************************************
       *  Returns a new polynomial that is the derivative of this polynomial.
     **********************************************************************************************/
       public Polynomial diff()
       {
          Polynomial res = new Polynomial();
    
          for(Monomial tmp = head; tmp != null; tmp = tmp.next)
          {
             if(tmp.deg != 0)
                res.addTerm(tmp.coeff * tmp.deg, tmp.deg - 1 );
          }
    
          return res;
       }
    
    //*********************************************************************************************/
    
    
     /*********************************************************************************************
       *  Returns a new polynomial that is the result of Monomial times polynomial.
       **  The method does not change the original polynomial.
     **********************************************************************************************/
    /*
    public Polynomial times(Polynomial poly)
       {
              {
          Polynomial result = new Polynomial();
    
    
    
             for(Monomial tmp2 = poly.head; tmp2 != null; tmp2 = tmp2.next)
             res.addTerm(tmp2.coeff, tmp2.deg );
    
    
             for(Monomial tmp = head; tmp != null; tmp = tmp.next)
             res.addTerm(tmp.coeff, tmp.deg);
    
          while(tmp != null && tmp2 != null)
          {
             result.addTerm(tmp.coeff * tmp2.coeff, tmp.deg + tmp2.deg);
             tmp = tmp.next;
             tmp2 = tmp2.next;
          }
          return result;
    
    
       }
    
       }
    */
    
    
    
    
    
    //*********************************************************************************************/
    
    
    
    
     /*********************************************************************************************
       *  Driver Program to Test Polynomial Class
     **********************************************************************************************/
    
       public static void main(String[] args)
    
       {
    
    //---------------- Code to chose between keyboard input or file input------------------------
    
    
    	  System.out.println("If you would like you enter the polynomial via a text file 'Polyinput.txt' PRESS 
    
    1. ");
    	  System.out.println("If you would like you enter the polynomial via the keyboard, PRESS ANY OTHER 
    
    INTEGER... ");
          Scanner inputquestion=new Scanner(System.in);
          System.out.print("Enter Option: "); // Prompts for selection choice
          int option=inputquestion.nextInt(); // Stores input in option
    
    		if (option == 1) // if loop to jump into read from text file
    		{
    
    
    
    //--------------  Read Input from File.------------------------------------------------------------
    
    
            String content = new String();
    		String name = new String();
    		File file = new File("polyinput.txt");
    		LinkedList<String> list = new LinkedList<String>();
    
    		try {
    			Scanner sc = new Scanner(new FileInputStream(file));
    				while (sc.hasNext()) {
    				name = sc.next();
    				content = sc.nextLine();
    				list.add(content);
    
    			}
    
    			sc.close();
    		} catch (FileNotFoundException fnfe) {
    			fnfe.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("\nProgram terminated Safely...");
    		}
    
    		Iterator<String> i = list.iterator();
    		while (i.hasNext()) {
    			System.out.println(name + i.next() + "\n");
    
    		}
    
    
    	} //------------ End if to enter input text file code---------------------------------------
    
    
    
    
    	else  //--------------start of else for keyboard input--------------------------------------
    	{
    
    	//------- Code to Prompt for Polynomial 1 
    
    -----------------------------------------------------------------
    
    
    	  Polynomial polynomial1 = new Polynomial();
    	  System.out.println( );
    	  System.out.println( );
    	  System.out.println("Enter first Polynomial");
    	  System.out.println("(Enter Zero (0) as Exponent value to move to second Polynomial");
    	  System.out.println( );
    
    	  //Insert do while loop exponent not equal 0
    	 int ExponentTest = 1;
    	  do {
    
          Scanner inputCoefficent=new Scanner(System.in);
          System.out.print("Enter Coefficient: "); // Prompts for coefficent
          int Coefficient=inputCoefficent.nextInt(); // Stores coefficent in coefficent
          Scanner inputExponent=new Scanner(System.in);
          System.out.print("Enter Exponent: "); // Prompts for Exponent
          int Exponent=inputExponent.nextInt(); // Stores Exponent in Exponent
    
            if (Exponent < 1)
              {
              	ExponentTest = 0;
              }
    
    
          polynomial1.addTerm(Coefficient, Exponent);
    
           } while (ExponentTest > 0);
            // ------ end do while loop ---------------
    
          System.out.println( );
          System.out.println( " Entered Polynomial is: " + polynomial1 );
    
    
    //----------------------------------------------------------------------------------------------------------
    
    //----------- Code to Prompt for Polynomial 2 -----------------------------------------------------------------
    
    	  Polynomial polynomial2 = new Polynomial();
    	  System.out.println( );
    	  System.out.println( );
    	  System.out.println("Enter second Polynomial");
    	  System.out.println("(Enter Zero (0) as Exponent value to complete Polynomial");
    	  System.out.println( );
    
    	  //Insert do while loop exponent not equal 0
    	 int ExponentTest2 = 1;
    	  do {
    
          Scanner inputCoefficent=new Scanner(System.in);
          System.out.print("Enter Coefficient: "); // Prompts for coefficent
          int Coefficient=inputCoefficent.nextInt(); // Stores coefficent in coefficent
          Scanner inputExponent=new Scanner(System.in);
          System.out.print("Enter Exponent: "); // Prompts for Exponent
          int Exponent=inputExponent.nextInt(); // Stores Exponent in Exponent
    
            if (Exponent < 1)
              {
              	ExponentTest2 = 0;
              }
    
    
          polynomial2.addTerm(Coefficient, Exponent);
    
           } while (ExponentTest2 > 0);
            // ------ end do while loop ---------------
    
          System.out.println( );
          System.out.println( " Entered Polynomial is: " + polynomial2 );
    
    //----------------------------------------------------------------------------------------------------------
    
    
    //------- Code to Prompt for Monomial (ax^k) to multiply both Polynomials by---------------------------------
    
    	  Polynomial monomial1 = new Polynomial();
    	  System.out.println( );
    	  System.out.println( );
    	  System.out.println("Enter details for the Monomial equation");
          Scanner inputMonomial=new Scanner(System.in);
                System.out.print("Enter Coefficent: "); //Prompts for Coefficient
                int num1=inputMonomial.nextInt(); // Stores Coefficient in num1
                System.out.print("Enter Exponent: "); // Prompts for Exponent
                int num2=inputMonomial.nextInt(); //Stores Exponenent in num2
                monomial1.addTerm(num1, num2); // Creates the Monomial equation
    
            System.out.println();
            System.out.println( "Monomial: " );
    	    System.out.println( monomial1 );
            System.out.println( );
    
    //----------------------------------------------------------------------------------------------------
    
    //------- Code to Prompt for constant to multiply by and then reads in the constant and stores in Constant1
    
       	  System.out.println("Enter integer to be used as the constant");
          Scanner inputConstant=new Scanner(System.in);
          System.out.print("Enter Constant: "); // Prompts for constant
          int Constant1=inputConstant.nextInt(); // Stores Constant in Constant1
    
          System.out.println( "Constant used to multiply polynomials: " );
    	  System.out.println( Constant1 );
          System.out.println( );
    
    //----------------------------------------------------------------------------------------------------------
    
    
    //------------------------ Returns display for operations onto the screen-----------------------------------
    
    
    	  System.out.println( );
          System.out.println( "Degree of Polynomial 1 ("+ polynomial1 + "): " /*+ polynomial1.degree()*/);
    
    
          System.out.println( );
          System.out.println( "Degree of Polynomial 2 ("+ polynomial2 + "): " );
    
          System.out.println( );
          System.out.println( "Multiply Polynomial 1 ("+ polynomial1 + ") by Polynomial 2 ("+ polynomial2 + "): " );
    
          System.out.println( );
          System.out.println( "Multiply Polynomial 1 ("+ polynomial1 + ") by Monomial ("+ monomial1 + "): " );
          Polynomial MultiplyMonomialResult1 = polynomial1.add(monomial1);
          System.out.println( monomial1 + " * " + polynomial1 + " = " + MultiplyMonomialResult1 );
          System.out.println( );
    
          System.out.println( );
          System.out.println( "Multiply Polynomial 2 ("+ polynomial2 + ") by Monomial ("+ monomial1 + "): " );
          Polynomial MultiplyMonomialResult2 = polynomial2.add(monomial1);
          System.out.println( monomial1 + " * " + polynomial2 + " = " + MultiplyMonomialResult2 );
          System.out.println( );
    
          System.out.println( );
          System.out.println( "Polynomial 1 (" + polynomial1 + ") plus Polynomial 2 (" + polynomial2 + "): " );
          Polynomial AdditionResult = polynomial1.add(polynomial2);
          System.out.println( polynomial1 );
          System.out.println( polynomial2 );
          System.out.println( "=" );
          System.out.println( AdditionResult );
          System.out.println( );
    
          System.out.println( "multiply Polynomial 1 ("+ polynomial1 + ") by constant entered into console (ie " + 
    
    Constant1 + "): " );
          Polynomial MultiplyConstant1 = polynomial1.multiply(Constant1);
          System.out.println( Constant1 + " * " + polynomial1 + " = " + MultiplyConstant1 );
          System.out.println( );
    
          System.out.println( "multiply Polynomial 2 ("+ polynomial2 + ") by constant entered into console (ie " + 
    
    Constant1 + "): " );
          Polynomial MultiplyConstant2 = polynomial2.multiply(Constant1);
          System.out.println( Constant1 + " * " + polynomial2 + " = " + MultiplyConstant2 );
          System.out.println( );
    
          System.out.println( "Derivative of Polynomial 1: " );
          Polynomial diffresult1 = polynomial1.diff();
          System.out.println( "Polynomial 1: " + polynomial1 );
          System.out.println( "Derivative =  " + diffresult1 );
          System.out.println( );
    
          System.out.println( "Derivative of Polynomial 2" );
          Polynomial diffresult2 = polynomial2.diff();
          System.out.println( "Polynomial 2: " + polynomial2 );
          System.out.println( "Derivative =  " + diffresult2 );
          System.out.println( );
    
    //-------------------------------End Screen output of operations for keyboard entry-------------------------
    
    } // End of else for keyboard input.------------------------------------------------------------------------
    
    
       }
    }

  2. #2
    gauravfzd's Avatar
    gauravfzd is offline Member
    Join Date
    Oct 2010
    Location
    India
    Posts
    72
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Keep your question to the point. I don't think no one has that much time to read ~500 lines.

    Point out those lines or methods that may be troubling you.....Don't quote your whole project

  3. #3
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Quote Originally Posted by gauravfzd View Post
    Keep your question to the point. I don't think no one has that much time to read ~500 lines.

    Point out those lines or methods that may be troubling you.....Don't quote your whole project

    Thank you

    i'm having problem with this code
    Java Code:
     /*********************************************************************************************
       *  Returns a new polynomial that is the result of Monomial times polynomial.
       **  The method does not change the original polynomial.
     **********************************************************************************************/
    /*
    public Polynomial times(Polynomial poly)
       {
              {
          Polynomial result = new Polynomial();
    
    
    
             for(Monomial tmp2 = poly.head; tmp2 != null; tmp2 = tmp2.next)
             res.addTerm(tmp2.coeff, tmp2.deg );
    
    
             for(Monomial tmp = head; tmp != null; tmp = tmp.next)
             res.addTerm(tmp.coeff, tmp.deg);
    
          while(tmp != null && tmp2 != null)
          {
             result.addTerm(tmp.coeff * tmp2.coeff, tmp.deg + tmp2.deg);
             tmp = tmp.next;
             tmp2 = tmp2.next;
          }
          return result;
    
    
       }
    
       }
    */
    and then referencing it with line
    Java Code:
    Polynomial MultiplyMonomialResult1 = polynomial1.times(monomial1);
    in the driver program

  4. #4
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    If you can multiply a polynomial by a constant, you can also multiply a polynomial by a monomial (a polynomial with one term); simply add the exponent of the monomial to the result of the multiplication. You claimed you can also add two poynomials, so your problem is solved ;-)

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

  5. #5
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    This is what i'm calling to multiply by constant:

    Polynomial MultiplyConstant1 = polynomial1.multiply(Constant1);

    and this is the code that performs the multiplication

    /************************************************** *******************************************
    * Multiplies by a Constant
    * The method does not change the original polynomial.
    ************************************************** ********************************************/

    public Polynomial multiply(int num)
    {
    Polynomial res = clone();

    for(Monomial tmp = res.head; tmp != null; tmp = tmp.next)
    tmp.coeff *= num;

    return res;
    }


    how do i change that to accept the monomial?

    thanks

  6. #6
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    i have changed the above code to be:

    public Polynomial times(Polynomial poly)
    {
    Polynomial res = clone();

    for(Monomial tmp = res.head; tmp != null; tmp = tmp.next)
    tmp.coeff *= poly.head;

    return res;
    }

    but i get the error

    Polynomial.java:314: operator * cannot be applied to int,Polynomial.Monomial
    tmp.coeff *= poly.head;
    ^
    1 error

    ??

  7. #7
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    ok i needed to put in poly.head.coeff to get rid of the error it ran but now only the coefficients are multiplying

    Multiply Polynomial 2 ( + 9 + 5x^2 + 3x^4) by Monomial ( + 5x^2):
    + 5x^2 * + 9 + 5x^2 + 3x^4 = + 45 + 25x^2 + 15x^4

  8. #8
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Do it by hand, multiply, say, 1+2*x+x^2 by the monomial 3*x; first multiply by a constant value 3, giving 3+6*x+3*x^2 (you claimed you could already do that and next increment the exponents by 1 (the exponent of the monomial), giving: 3*x+6*x^2+x^3; voila. Multiplying two polynomials is multiplying a polynomial by a bunch of monomials and adding the results (you alo claimed you can do addition, so all you have to implement is a bit of fiddling with the exponents; see above for an example).

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

  9. #9
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    ok i've got it kind of working. it works for the exponents, but now its doubling the coefficients.

    eg
    + 5x^2 * + 7 + 2x + 3x^4 = + 70x^2 + 20x^3 + 30x^6

    instead of what it should be which is: 35x^2 + 10x^3 + 15x^6


    here the code i implemented:

    public Polynomial times(Polynomial poly)
    {
    Polynomial res = clone();

    for(Monomial tmp = res.head; tmp != null; tmp = tmp.next)
    res.addTerm(tmp.coeff *= poly.head.coeff, tmp.deg += poly.head.deg);


    return res;
    }

  10. #10
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    System.out.println( ... ) is your friend; sprinkle in that statement and print out every relevant (intermediate) result and check it.

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

  11. #11
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    thanks heaps, i have the multiplication by a monomial sorted, am just working polynomial by polynomial. it only multiplying by first term in the polynomial at the moment

  12. #12
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Quote Originally Posted by bradoz View Post
    thanks heaps, i have the multiplication by a monomial sorted, am just working polynomial by polynomial. it only multiplying by first term in the polynomial at the moment
    It's not too difficult: if you want to multiply a polynomial p(x) by, say, a polynomial x^2+2*x+1 you have to multipy your polynomial p(x) by three monomials, x^2, 2*x and 1; add the three intermediate results and voila.

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

  13. #13
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    how do i split that second polynomial into the 3 monomials? and then how do i determine how many monomials i'll need? the second polynomial added could have a dozen terms etc

  14. #14
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Isn't a Polynomial just a list of Monomials?

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

  15. #15
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Yes though i am having trouble accessing that list.

    here is the code i am using:

    polynomial 1 used to get mutliplied by the first term in polynomial 2 and not by each term in polynomial 2.

    Below is my code:

    /************************************************** *******************************************
    * Multiplies Polynomial 1 to Polynomial 2
    * The method does not change the original polynomial.
    ************************************************** ********************************************/

    public Polynomial multiply(Polynomial poly)
    {
    Polynomial res = clone();

    for(Monomial tmp2 = poly.head; tmp2 != null; tmp2 = tmp2.next) //-------- LINE B

    for(Monomial tmp = res.head; tmp != null; tmp = tmp.next)
    res.addTerm(tmp.coeff *= poly.head.coeff, tmp.deg += poly.head.deg);
    double num = 0.5;
    for(Monomial tmp = res.head; tmp != null; tmp = tmp.next)
    tmp.coeff *= num;
    // Polynomial MultiplicationResult = res.add(res2); // add result of two multiplcations together
    // res + poly
    return res;

    }

    Now this is the result i'm getting

    Multiply Polynomial 1 by Polynomial 2:
    + 6x^7 + 3x^4 + 5x^2 + 8 *
    + 5x^7 + 9
    =
    + 300x^21 + 150x^18 + 250x^16 + 400x^14

    (If i remove that LINE B from the code above thats when i would get the result of 5x^7 * 6x^7 + 3x^4 + 5x^2 + 8)



    thanks

  16. #16
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    You only need one loop in your multiply method; something like this (pseudo code):

    Java Code:
    Polynomial mul(Polynomial q) { // multiply this polynomial by polynomial q
       Polynomial res= null; // result of this*q
       for (Monomial term : q) { // for each term of polynomial q
          if (res == null) res= mul(this, term); // multiply this by a monomial
          else res= add(res, res.clone().mul(this, term); // ditto but add to previous result
       }
       return res;
    }
    Note that 'res' is used for the sum of the product of this polynomial and the terms of polynomial q.

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

  17. #17
    bradoz is offline Member
    Join Date
    Mar 2012
    Posts
    16
    Rep Power
    0

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Thanks heaps, i got it sorted :)

  18. #18
    JosAH's Avatar
    JosAH is offline Moderator
    Join Date
    Sep 2008
    Location
    Voorschoten, the Netherlands
    Posts
    13,519
    Blog Entries
    7
    Rep Power
    20

    Default Re: Trouble with creating Method and functionality for multiplying a polynomial

    Well done; are you going to implement polynmial division now? ;-)

    kind regards,

    Jos
    cenosillicaphobia: the fear for an empty beer glass

Similar Threads

  1. Creating polynomial using linked lists
    By joe98 in forum New To Java
    Replies: 8
    Last Post: 08-06-2011, 05:29 AM
  2. Creating a node for polynomial linked list
    By Java-Guy in forum New To Java
    Replies: 8
    Last Post: 03-17-2011, 08:27 PM
  3. trouble creating stack using array
    By shashankc in forum New To Java
    Replies: 5
    Last Post: 01-20-2011, 12:49 PM
  4. Method for multiplying two polynomials
    By javaprgr in forum New To Java
    Replies: 3
    Last Post: 09-23-2010, 08:40 AM
  5. Trouble with creating TreeSet
    By MrKP in forum New To Java
    Replies: 1
    Last Post: 12-27-2009, 02:22 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •