from Polynomial import Polynomial # = TheClass() coefficients = [10, 3, 3, 4] coefficients1 = [1, 5, 2] coefficients2 = [1, 5] c = Polynomial(coefficients) d = Polynomial(coefficients1) e = Polynomial(coefficients2) print(c.tostr()) print(d.tostr()) print("_________________") print("Eval: " + str(c.eval(2))) print("Sum :" + str(c.addition(d).tostr())) print("Sub: " + c.substraction(d).tostr()) print("Mult: " + c.multiplication(d).tostr()) #print("Div: " + c.division(d).tostr()) print("Deri: " + e.differentiate().tostr())
def polynomialFunctions(PolExpr): newpoli = 0 for c in PolExpr: if c == '[': newpoli = 1 elif c == ']': newpoli = 0 if c == '+' and newpoli == 0: operation = PolExpr.split('+', 1) pol1 = strtoPolynomialArray(operation[0]) pol2 = strtoPolynomialArray(operation[1]) polynomial1 = Polynomial(pol1) polynomial2 = Polynomial(pol2) print (polynomial1.tostr()) print (polynomial2.tostr()) print ("+__________________") return (polynomial1.addition(polynomial2).tostr() + "\n") elif c == '-' and newpoli == 0: operation = PolExpr.split('-', 1) pol1 = strtoPolynomialArray(operation[0]) pol2 = strtoPolynomialArray(operation[1]) polynomial1 = Polynomial(pol1) polynomial2 = Polynomial(pol2) print (polynomial1.tostr()) print (polynomial2.tostr()) print ("-__________________") return (polynomial1.substraction(polynomial2).tostr() + "\n") elif c == '*' and newpoli == 0: operation = PolExpr.split('*', 1) pol1 = strtoPolynomialArray(operation[0]) pol2 = strtoPolynomialArray(operation[1]) polynomial1 = Polynomial(pol1) polynomial2 = Polynomial(pol2) print (polynomial1.tostr()) print (polynomial2.tostr()) print ("*__________________") return (polynomial1.multiplication(polynomial2).tostr() + "\n") elif c == '/' and newpoli == 0: operation = PolExpr.split('/', 1) pol1 = strtoPolynomialArray(operation[0]) pol2 = strtoPolynomialArray(operation[1]) polynomial1 = Polynomial(pol1) polynomial2 = Polynomial(pol2) print (polynomial1.tostr()) print (polynomial2.tostr()) print ("/__________________") if polynomial1.degree() < polynomial2.degree(): return "Numerator must have a higher or equal degree compare with the denominator to be able divide both" if polynomial2.degree() == 0: return "Division by 0 error" result = [] result = polynomial1.division(polynomial2) if len(result) == 3: return result[0].tostr() + " + " + result[2].tostr() + "/" + "(" + result[1].tostr() + ")" + "\n" return (result[0].tostr() + "\n") elif c == '#' and newpoli == 0: operation = PolExpr.split('#', 1) pol1 = strtoPolynomialArray(operation[0]) polynomial1 = Polynomial(pol1) print (polynomial1.tostr()) print ("#__________________") return (polynomial1.differentiate().tostr() + "\n") elif c == '@' and newpoli == 0: operation = PolExpr.split('@', 1) pol1 = strtoPolynomialArray(operation[0]) evalnum = (operation[1].replace("(", "")).replace(")", "") polynomial1 = Polynomial(pol1) print (polynomial1.tostr()) print ("@__________________") return (str(polynomial1.eval(int(evalnum)))+ "\n")