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())
Пример #2
0
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")