Você está na página 1de 7

NUMEROS ALGEBRAICOS EN SQUEAK

Nuestro trabajo (realizado por Gerardo Richarte y Ariel Pacetti) fue la enseanza al
Squeak de los nmeros algebraicos. Para esto debimos modear primero algunas otras
clases, como la clase polinomios, matrices, tuplas, reductor de matrices y un caso un
poco ms general que es el reductor Eucldeo. Un resumen de dichas clases es el
siguiente:

1. Tuplas (Tuple): esta clase es una cadena de elementos ordenados de longitud


dada ( para los que nunca lo vieron pueden pensar por ahora que estos elementos
son nmeros , como en R n , y las operaciones se definen de forma anloga a los
vectores). Para ver las especificaciones de las mismas, pueden ver el "?" en el
browser del Squeak, y ah esta un poco explicado como se implemento y los
mtodos mas importantes.

2. Matrices (Matrix): esta clase son las matrices (la definicin matemtica de las
mismas), la nica observacin es que las matrices en general no tienen por que
tener solo nmeros, en general pueden tener otros objetos. En cuanto a la
implementacin y los mtodos mas importantes, la sugerencia es la misma que
con las Tuplas.

3. Polinomios (Polynomial): todos sabemos lo que son los polinomios, pero esta
clase fue implementada de una forma un poco ms complicada, ya que
modelamos polinomios en general, en varias variables. Lo mas complicado de
esta clase es que un polinomio en varias variables puede ser visto de varias
formas. Por ejemplo:

F (x) = x 2 y + x y = (x 2 x) y (esta ltima visto como polinomio en y)

Esta forma se usa cuando uno quiere derivar un polinomio respecto de una variable, o
quiere especializar un polinomio simplemente en algunas variables. Para informacin en
cuanto a la implementacin y mtodos, mirar en polinomios "?" y fjense la jerarqua de
clases del mismo , para ver todas las clases involucradas, y que funcin cumple cada
una (entre otras: Variable, RaicedVariable, Monomial, MonicMonomial,
Polynomial).

4) Reductor de Matrices (MatrixReducer): esta clase contiene un caso particular, en el


cual las matrices tienen elementos en un cuerpo, con lo cual usa los inversos, que en
general no tiene por que haber. En el caso que los elementos estn en un anillo, se usa la
clase EuclideanMatrixReducer, que supone que el anillo es Eucldeo, con lo cual usa
la funcin Eucldea para reducir la matriz. Ambas reducciones se usan en el caso de los
nmeros algebraicos para poder calcular determinantes, y el anillo en cuestin ser el de
los polinomios con coeficientes enteros.

Una vez terminada la introduccin, vamos a los nmeros algebraicos propiamente


dichos. Un numero algebraico es una raz de un polinomio en Z[x] (claramente, los
racionales son nmeros algebraicos). Luego un numero algebraico queda totalmente
determinado por un polinomio, que podemos suponer sin races mltiples (si no
dividimos al polinomio por el mximo comn divisor entre el y su derivado, que
obviamente esta implementado en Polynomial bajo el nombre #squareFree), que lo
tenga como raz, y un intervalo en el cual sea la nica raz. (Notar que esta ultima
condicin es necesaria, ya que si tomamos por ejemplo el polinomio x 2 - 2, claramente
las races son sqrt 2 y - 2 , y claramente no son iguales, a pesar de que ambas tienen
el mismo polinomio).

Fjense que en la definicin de los nmeros algebraicos, usamos un intervalo que tuviera
al nmero en cuestin como nica raz, lo cual se puede hacer usando el mtodo de
Sturn (para mayor informacin mirar la clase Sturn, que esta explicada, y tiene
ejemplos). El mismo mtodo fue usado en la suma, producto y otras operaciones de los
nmeros algebraicos. Para una explicacin completa, con varias propiedades, le pueden
mandar un mail al Dr. Leandro Caniglia pidindole el del mismo.

La implementacin que usamos, muestra al nmero algebraico (en el #printOn:) como


una aproximacin numrica con floats del mismo; dicha aproximacin puede ser
mejorada cuanto se quiere mediante el mtodo #aproximationError: (lean el
comentario del mismo para saber bien de que se trata, aunque ya se deben imaginar),
tambien existe un mensaje #asFloat que responde el Float que ms cerca esta al nmero
algebraico en cuestin.

Por ltimo, fjense que los nmeros algebraicos, fueron hechos de forma tal que saben
convivir con el ambiente, en el sentido de que un numero algebraico sabe sumarse a un
entero, evaluarse en un polinomio y varias otras cosas que pueden investigar.

En cuanto a las propiedades y demostraciones que usamos al hacer las cuentas con
nmeros algebraicos, a continuacin adjuntamos un apunte terico que preparo Ariel al
cursar la materia "Objetos Matemticos en Smalltalk", dictada por el profesor Dr.
Leandro Caniglia el segundo cuatrimestre del ao 1997.

Por cualquier duda o sugerencia , nos pueden escribir a las por e-mail a Ariel Pacetti o a
Gerardo Richarte (esta preferentemente).

Nmeros Algebraicos - Resultante


DEFINICION: dados dos polinomios f , g en A[X] , donde A es un anillo , se define la resultante entre f
y g como:

Si f = ai (x i ) y g = bi (x i )

| a0 0 0 b0 0 ... 0 |

| a1 0 0 b1 b0 ... 0 |

|.0..0|

| . . . . .|

| . . . . b0 |
Res (f , g) = det | . a . . b1 |
0

| . a1 bm bm-1 . |

| an an-1 . 0 bm . |

| 0 an . 0 0 . |

|.0....|

|......|

| 0 0 an 0 0 bm |

Propiedad: si dados dos polinomios , la resultante entre ambos es cero , entonces


existen polinomios P y Q en A[X] con deg (P) < deg (g) y deg (Q) < deg (f) tal que P f
+ Q g = 0.

Demostracin: sea L una transformacin bilineal de An-1 [X] x Am-1 [X] An+m-1 [X] la
funcin que vale:

L( r , s ) = r f + s g. Queda como ejercicio ver que es bilineal.

Si estudiamos el ncleo de L , son las funciones que cumplen deg (r) < deg (g) y deg (s)
< deg (f) tal que r f + s g = 0. Como L es lineal , si calculo la matriz de L , el ncleo
es no trivial si y solo si el determinante de la matriz es cero ; pero dicho determinante es
exactamente la resultante.

Propiedades:

1. Res ( x , g ) = (-1)deg (g) g(0). (g como antes )

Dem:

|0 0 ... 0 b0 |

|1 0 ... 0 b1 |

|0 1 ... 0 b2 |

Res ( x , g ) = det | . . . . |

|....|

|0 0 1 bm |
Consideremos la funcin f = x m+1 - g. Luego det (x Id - R) = f (x) ( es la matriz
compaera) ; donde Id es la matriz identidad y R es la matriz de la resultante. Luego ,
especializando en cero tenemos que f (0) = -g (0) = det (-R) = - (-1) m det (R) ; con lo
cual g (0) = (-1) m Res (x , g).

1. Res (x-a , g) = (-1) m g (a) . La demostracin queda como ejercicio ;


considerar el cambio de variables y = x-a.

1. Res (x f , g) = (-1) m g (0) Res (f , g). Sugerencia para la


demostracin: escribir quien es la matriz de la resultante y desarrollar por
la primer fila el determinante. Recordar que b0 = g (0).

2. Como Res (x , g) = (-1) m g (0) , se tiene que Res (x f , g) = Res (x ,


g) Res (f , g).

3. Res ((x-a) f , g) = Res (x-a , g) Res (f , g).

4. Res (X - ai) , g) = Res ((X - ai) , g). Sugerencia: usar induccin.

5. De lo anterior se deduce que si f = k (x - a0) (x - a1) ... (x - an)


entonces la Res (f , g) = k (deg (g)) (-1) (deg (f) deg (g)) g(a0) g(a1) ...
g(an).

Propiedad: dados dos polinomios en dos variables f(x , y) g(x , y) se tiene que Resy (f ,
g) (a) = Res (f (a , y) , g (a , y)) si y solo si no se anulan los coeficientes principales de f
y g como polinomios en A[x] [y] en el punto a. Sugerencia: escribir la Resy (f , g) , y ver
que especializar antes de tomar determinante o despus da lo mismo.

Ideales

Definicin: dado A un anillo , un subconjunto I de A se llama ideal si cumple que I es


un subgrupo y que a A , i I se cumple que (i a) I. ( I A I). Queda como
ejercicio ver que es lo mismo pedir que I + I I y que I A I.

Un ideal se dice generado por {a1 , a2 , . . . , an} si todo elemento del ideal se escribe como
combinacin lineal de ellos , donde los escalares estn en A. Verificar que el ideal < a1 ,
a2 , . . . , an > ( el generado por {a1 , a2 , . . . , an} realmente es un ideal.

Proposicin: todo ideal de K[X] , donde K es un cuerpo es cclico (generado por un


solo polinomio).

Dem: sea I un ideal de K[X]. Si I = {0} entonces es el generado por el cero. Si tiene
algn elemento distinto de cero , sea:
D = { deg (f) / f I , f 0 }

Luego D es un subconjunto no vaco de los naturales , con lo cual tiene un primer


elemento n. Sea f un elemento de I de grado n. Afirmo D = < f > (generado por f ).

Si g es un elemento de I , deg (g) <= deg (f). Como K es un cuerpo , tengo un algoritmo
de divisin para polinomios , luego f = q g + r , con r = 0 o deg (r) < deg (f). Si s 0 ,
r I pues

r = f - q g , y deg (r) < deg (f) que era el primer elemento de D .Absurdo. Luego D = <
f >.

Definicin: un nmero real se dice algebraico si existe un polinomio f Q[X] tal que
f () = 0. Notar que Q { nmeros algebraicos}. Si q Q , el polinomio f (x) = x - q
esta en Q[x] y f (q) = 0.

Dada la nocin de u nmero algebraico se define el polinomio minimal de como el


polinomio de grado mnimo que se anula en . Veamos que esta bien definido el
minimal.

Sea D = { f Q[X] / f () = 0 }.

Verificar que D es un Ideal de Q[x]. Luego por ser un ideal se tiene que D es cclico ,
digamos que

D = < q >. Ejercicio , probar que q es el minimal . (Sug. Ver que si existe f Q[x] , deg
(f) < deg (g) entonces g no genera , lo cual es un absurdo).

Observacin: notar que puede haber varios polinomios minimales , pero como todos
son del mismo grado y se tienen que dividir entre ellos , en realidad estn difiriendo en
constantes.

Ejercicio: probar que si f Q[x] , f es irreducible y f () = 0 entonces f es minimal. (f


irreducible quiere decir que si g \ f con g Q[x] entonces g = f k con k constante)

De ahora en mas nos vamos a preocupar en probar el siguiente teorema:

Teorema: los numero algebraicos forman un cuerpo.


Lo que hay que probar es que 0 y 1 son algebraicos (lo son porque estn en Q) , que
dados y algebraicos , son tambin algebraicos.

1. Si es algebraico , se f Q[x] tal que f () = 0 ; veamos algn polinomio que


mate a 1 / .

Si f = ai (x i) , al hacer f (1 / ) = ai ((1 / ) i) . Si sacamos (1 / ^ n de factor


comn (donde n = deg (f) ) tenemos:

(1 / n f (1 / ) = (1 / n ai ( n-i). Si consideramos g (x) = a n-i (x i).


Tenemos que g (1 / ) = 0 , y g Q[x]. Como queramos ver.

2. Para el caso basta probar que el producto de algebraicos es algebraico , pues


- = (-1) y (-1) Q luego es algebraico.

2 Veamos el caso de la suma de + . Sean f y g Q[x] dos polinomios


irreducibles tal que

f () = 0 y g () = 0 , queremos hallar un polinomio que mate a + Si hallamos dos


polinomios en dos variables tal que al especializar ambos en (+ se anulan , con
R , al hallar la resultante respecto de y de ambos , si los coeficientes principales no
se anulan en + sirve.

Sean F (x , y) = f (x - y) y G (x , y) = g (y). Ambos se anulan en (+ , con lo cual


solo restara verificar la otra condicin , que queda como ejercicio. ( usar que tanto f
como g los supuse irreducibles).

4. Resta ver el caso producto de dos nmeros algebraicos. Para eso voy a introducir
una pequea nocin de polinomio homogneo.

Definicin: un polinomio f R [x , y] se dice homogneo de grado k si (x , y) R 2


se tiene que si R es f (xy) = k f (x , y). Notar que esta nocin se puede
extender a polinomios en una cantidad arbitraria de variables.

Ahora si estamos en condiciones de hallar un polinomio para el producto. Como en el


punto 3) , vamos a construir dos polinomios en dos variables tal que al especializar en
() se anulen.

Sean G (x , y) = g (y) y F (x , y) el homogeneizado de f, que se construye de la siguiente


manera:

Si f (x) = ai x i , entonces F (x , y) = ai x i y n-i donde n = deg (f).

Queda como ejercicio verificar que F (x , y) es realmente homogneo. Luego vale que:
F (n F (1) = n f () = 0 ; adems G (0. Luego dejo
como ejercicio verificar que el coeficiente principal de F y G al escribirlos como
polinomios en y no se anulan , con lo cual la resultante respecto de y verifica que Ry
( = 0 , y como F y G Q [x , y] ,

Ry (x) Q [x] , como queramos ver.

Propiedades:

1. Si R , y f (x) Q [x] tal que f () = 0 , entonces quin mata a ? Es


fcil verificar que si consideramos el polinomio g (x) = f (x 2) cumple lo
pedido anteriormente.

2. Si R , y f (x) Q [x] tal que f () = 0 , entonces quin mata a 2 ?

Si f (x) = x F (x 2) + G (x 2) , entonces vale que G 2 (x) - x F 2 (x) es un polinomio en


Q [x] que mata a 2 . Notar que G 2 (x) - x F 2 (x) = ( G (x) + x F (x)) ( G (x) - x
F (x)) en R [x] , y dicho polinomio claramente se anula en 2 , como queramos ver.

Ejercicio: probar que si f (x) es irreducible en Q [x] , y F (x) 0 , entonces G 2 (x) - x


F 2 (x) es irreducible en Q [x].

Você também pode gostar