Python Forum
Generating a polynomial equation
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Generating a polynomial equation
#4
You can describe polynomial without classes. Any polynomial is defined by its coefficients, so standard data types such as tuple or list can describe a polynomial.

my_polynomial = (1, 2, 3) # we assume that we have a polynomial:  1*x^0 + 2*x + 3*x^2
Further, we need some helper functions that will allow to perform basic operations over such polynomials.

We wish to print the polynomial in human readable form:

def print_polynomial(p, default_argument_name='x'):
    """Print polynomial

    p: a list or a tuple, polynomial coefficients
    """
    result = ''
    for power, coefficient in enumerate(p):
        result += '{}*{}^{} +'.format(coefficient, default_argument_name, power)
    # This is dirty implementation, it doesn't handle +/- signs properly
    print(result[:-1])  # drop `+`
Also, we would like to calculate value of the polynomial at specified point. So, we need to define
a function, e.g. get_polynomial_value,

def get_polynomial_value(p, x):
    """Evaluates polynomial at specified point
    """
    result = 0.0
    for power, coefficient in enumerate(p):
        result += coefficient * x ** power
    return result
You can also wish to be able to export polynomial to Tex/LaTex-format. Thats easy, just write a helper function for this.

def export_to_latex(p):
    """Returns latex-formatted representation of a polynomial"""
    result = r""
    for power, coefficient in enumerate(p):
        result += r'{coefficient}\cdot x^{}'.format(coefficient, power) + '+' if (power != len(coefficient)) else '' # drop `+` for the last polynomial term
    return result
I didn't test these function. You can definitely improve them (e.g. an issue with +/- handling when printing a polynomial), define you own help functions, e.g. define add_polynomials(p1, p2), multiply_polynomials(p1,p1) etc.
Reply


Messages In This Thread
Generating a polynomial equation - by BinaryStar - Mar-17-2019, 12:23 AM
RE: Generating a polynomial equation - by scidam - Mar-17-2019, 07:57 AM
RE: Generating a polynomial equation - by scidam - Mar-18-2019, 12:53 AM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020