Python - división de polinomios

   
Vista:

división de polinomios

Publicado por Rocío (11 intervenciones) el 03/06/2012 23:13:35
Quiero hacer una función dentro de una clase llamada Polinomio, para dividir polinomios. Ya tengo hecha la suma, resta y multiplicación, y en la divisón tengo este código:

1
2
3
4
5
6
7
8
9
10
11
def __div__(self,otro):
        lista = []
        dividendo = self
        divisor = otro
        while dividendo.Grado() >= divisor.Grado():
            resultado = dividendo.lMonomios[0] / divisor.liMonomios[0]
            lista.append(resultado)
            dividendo = dividendo - (Polinomio([resultado]) * divisor)
 
 
        return lista

La función Grado es una función que te devuelve el grado del polinomio. lMonomios es una lista de monomios que forma el polinomio( así inicializo la clase). Me da este error :

dividendo = dividendo - (Polinomio([resultado]) * divisor)
File "C:\Documents and Settings\Administrador\Mis documentos\.py", line 277, in __sub__
while i < len(self.lMonomios) and j < len(otro.lMonomios):
AttributeError: 'list' object has no attribute 'lMonomios'

Lo último viene de una función para restar polinomio, que funciona perfectamente. ¿Alguien sabría qué debo hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

división de polinomios

Publicado por xve (1229 intervenciones) el 04/06/2012 07:25:16
Hola Rocío, la verdad es que es un poco complicado saber que puede ser sin ver las funciones, pero una cosa que veo rara, es que le pasas una lista a la función Polinomio([...]) es eso correcto? es decir, hay que pasarle una lista??
Si es así, ponle una coma, que quede así:
dividendo = dividendo - (Polinomio([resultado,]) * divisor)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

división de polinomios

Publicado por Rocío (11 intervenciones) el 04/06/2012 10:26:57
Efectivamente, hay que pasarle una lista, ya que el polinomio lo he construido con una lista de monomios. He puesto la coma y aún así sigue saliendo el mismo error. La función con la que da error es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def __sub__(self,otro):
        lista= []
        i = 0
        j = 0
        while i < len(self.lMonomios) and j < len(otro.lMonomios):
            if self.lMonomios[i].grado == otro.lMonomios[j].grado:
                lista.append(self.lMonomios[i] - otro.lMonomios[j])
                i +=1
                j += 1
            elif self.lMonomios[i].grado > otro.lMonomios[j].grado:
                lista.append(self.lMonomios[i])
                i += 1
            elif self.lMonomios[i].grado < otro.lMonomios[j].grado:
                lista.append(otro.lMonomio[j])
                j += 1
        return lista


Es sobre la resta de polinomios (lista de monomios).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar