close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 12 years ago

Closed 12 years ago

#1615 closed defect (goodtrick)

Dudas con polinomios

Reported by: lmperez@… Owned by: Víctor de Buen Remiro
Priority: normal Milestone: Mantainance
Component: Kernel Version: 3.1
Severity: normal Keywords:
Cc:

Description

Hola Tol, probando a hacer algunos polinomios he visto las siguientes dudas:

Set monomes1 = Monomes(Polyn ?); // Devuelve cero monomios, correcto

Set monomes2 = Monomes(Polyn 1); // Devuelve un monomio, correcto

Set monomes3 = Monomes(Polyn 0); // Devuelve cero monomios ¿es esto correcto correcto? ¿no debería devolver un monomio "0"?

segunda:

Polyn p1 = 0+0*B; // devuelve el polinomio 0

Polyn p2 = ?+?*B; // devuelve el polinomio 0, ¿no debería ser el polinomio desconocido?

Un saludo

Change History (2)

comment:1 Changed 12 years ago by Víctor de Buen Remiro

No hay nada correcto ni incorrecto, es lo que queramos poner, pues no hay ningún estándar en este tipo de operaciones, ya que nos lo hemos inventado nosotros.

De hecho se podría defender lo contrario, que ? debería devolver un monomio ?*B^0 y que 0 no debería devolver ningún monomio.

No existe el operador matemático de monomios, y en todo caso devolvería un conjunto infinito con todos los coeficientes, sean positivos, negativos, ceros, desconocidos o infinitos. Eso nos lo da virtualmente el operador

  Real Coef(Polyn pol, Real degree) 

Para evitar dar infinitos, el convenio es obviar los monomios con coeficiente cero, pues todos los polinomios tienen coeficiente cero a partir de un número determinado que se conoce como grado del polinomio. En nuestro caso tenemos dos grados porque admitimos monomios en F=B^-1.

Del mismo modo que no aparecen los monomios de coeficiente 0 de grados positivos 0*B ó 0*B^2, ni los de grados negativos 0*F ó 0*F^2, tampoco aparece el de grado 0 0*B^0.

Quizás lo más sensato sería que siempre se devolvier al menos un monomio con el coeficiente de gardo 0, pero lo malo es que está función se usa en bastantes sitios y me parece peligroso cambiarla.

Habría que ver cuáles son las ventajas y cuáles los inconvenientes.

Respecto al segundo punto, los polinomios no hacen ningún tratamiento especial de los omitidos por lo que pueden pasar cosas de este tipo debido a la forma de tratarse el omitido en C++ de forma usual.

En principio no está previsto el uso de omitidos en polinomios y lo que hay que hacer es no usarlo.

comment:2 Changed 12 years ago by Víctor de Buen Remiro

Resolution: goodtrick
Status: newclosed
Note: See TracTickets for help on using tickets.