import numbers
|
|
class Polynomial:
|
def __init__(self, coe):
|
if coe[-1] == 0.0:
|
raise RuntimeError("Coefficient invalid")
|
self._coe = tuple(coe)
|
|
def getExponent(self, n):
|
"""
|
:param: n der n-Expoment des Polynom
|
"""
|
return self._coe[n]
|
|
def getExponents(self):
|
return tuple(self._coe)
|
|
def eval(self, x:float) -> float:
|
"""
|
Den Wert des Polynoms an der Stelle x berechnen
|
"""
|
wert = 0
|
for c in self._coe[-1:0:-1]:
|
wert = (wert + c)*x
|
print(c, wert)
|
wert += self._coe[0]
|
return wert
|
|
def __call__(self, value:float) -> float:
|
if isinstance(value, numbers.Number):
|
return self.eval(value)
|
else:
|
raise TypeError("Bad argument, expected a number")
|
|
def __getitem__(self, idx:int) -> float:
|
if idx >= 0 and idx < len(self._coe):
|
return self._coe[idx]
|
else:
|
raise IndexError("idx invalid")
|