Írj egy osztályt, melynek elemei polinomok.
fok_szam
attribútumban.mutasd_meg
!Mivel ebben a feladatban a pylab
több funkcióját használni fogjuk, először ezt töltsük be!
%pylab inline
Ezután létrehozzuk a polinom osztályt. Két változója van, az egyikben az együtthatókat tárolja, a másikban a fokszámot. Az inicializációkor mind a két változó megkapja az értékét a paraméterül kapott tömb alapján.
Ezen kívül, az osztály még két függvényt tartalmaz, a kiszamol
és a mutasd_meg
nevű függvényeket. A kiszamol
függvény egy paraméterül kapott tömb értékeihez kiszámolja a polinom által hozzájuk rendelt értéket, és az eredményt szintén tömb formájában visszaadja. A mutasd_meg
függvény pedig, a kért függvény, ami a $\left[ -1, 1 \right]$ intervallumon ábrázolja a polinomot.
class polinom:
'''Ez egy polinom osztály'''
def __init__(self, *args): # Inicializációkor értéket ad a változóknak
self.egyutthato = array(args)
self.fok_szam = len(args)
def kiszamol(self, *args):
'''A paraméterül kapott tömb elemeihez hozzárendel értékeket'''
eredmeny = zeros(len(args)) # A később visszaadandó eredmény-tömböt létrehozzuk
for i in range(0, self.fok_szam): # Majd az együtthatókon végigmenve, kiszámoljuk a függvényértékeket
eredmeny += self.egyutthato[i]*(array(args)**i)
return eredmeny # És végül a függvény visszaadja az eredményt
def mutasd_meg(self):
'''A [-1, 1] intervallumon ábrázolja a polinomot'''
x = linspace(-1, 1, 100)
plot(x, self.kiszamol(*x), 'r-', lw=3)
xlabel("x tengely")
ylabel("y tengely")
Végül, létrhozunk egy teszt-polinomot, hogy megvizsgáljuk, jól működik-e a létrehozott osztály:
teszt = polinom(1, 2, 2, 2)
teszt.mutasd_meg()