Вы находитесь на странице: 1из 36

MAXIMA CON WXMAXIMA: UN ASISTENTE MATEMTICO

L UIS OYONARTE & PACO V ILLEGAS

ESTALMAT - ANDALUCA

Maxima con wxMaxima NDICE Parte 1. Introduccin 1. Introduccin 2. Objetivos Parte 2. Comenzando con Maxima 3. Introduccin a Maxima (wxMaxima) 3.1. Normas y convenios de teclado. 3.2. Normas para ejecutar las rdenes de wxMaxima 4. Comencemos

Estalmat-Andaluca 07/08

3 4 5 6 7 7 8 10 15 16 20 23 23 31 31 31 32 34 35 36

Parte 3. Actividades 5. Clculos aritmticos 6. Resolucin de problemas 7. Introduccin histrica a la criptologa: criptosistemas clsicos 7.1. Criptosistemas clsicos 8. Resolucin de ecuaciones 8.1. Ecuaciones de 1 grado. 8.2. Ecuaciones de 2 grado. 9. Sistema lineal de ecuaciones 10. Sistema no lineal de ecuaciones Tabla de funciones Referencias

Pgina 2

Luis Oyonarte & Paco Villegas

Parte 1.

Introduccin

Maxima con wxMaxima 1. I NTRODUCCIN

Estalmat-Andaluca 07/08

Pero es posible, y yo dira que muy deseable, que las mquinas se encarguen en el futuro de tantos desarrollos rutinarios y tantas demostraciones clnicas que mantienen ocupados a demasiados matemticos quienes, incansables, publican obviedad tras obviedad. Llenando sin cesar, con mutuas referencias, el registro de esa grotesca casa de citas que tiene su sede en Filadela. Liberados por las mquinas, podran estos artistas, siguiendo el buen ejemplo de Wiles y Hales, dedicar sus esfuerzos a resolver problemas realmente difciles e interesantes que tengan luego cabida en Annals of Mathematics. Diario El Pas, 04/01/2006 Para trabajar las matemticas, el ser humano siempre ha necesitado de herramientas que le faciliten la representacin y comprensin de los conceptos o le permitan aumentar la rapidez de clculo. El recorrido ha sido largo, desde los calculus de los pastores de la antigedad, el baco, las regletas o palos de Neper (siglo XVI), la mquina aritmtica de Pascal (siglo XVII), la mquina de Leibniz, la analtica de Babbage hasta llegar al ordenador actual basado en la lgica de Turing y Von Neumann.

Debemos utilizar el potencial de la tecnologa de los ordenadores para aumentar la capacidad de resolver problemas. Ahora que la cuestin ya no es si hay que utilizar o no las calculadoras o el ordenador en la enseanza, el reto es cmo utilizarlos. Los conceptos matemticos siempre han dependido de los mtodos de clculo y de escritura. La numeracin decimal, la escritura de smbolos, la construccin de tablas numricas ha precedido a las ideas modernas de nmero real y de funcin. Los cientcos han calculado integrales mucho antes de que surgieran los conceptos de integral de Riemann o de Lebesgue. De manera anloga, se puede esperar que los nuevos mtodos de clculo y de escritura con los ordenadores permitan el surgimiento de nuevos conceptos matemticos. El lgebra siempre ha ocupado un lugar importante en el currculo de matemticas. Sin embargo, lo importante no es que los alumnos sean expertos en grandes manipulaciones algebraicas sino que aprendan a considerar el lgebra como una herramienta natural para resolver problemas en situaciones diversas.

Pgina 4

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

El software referente a programas de matemtica simblica comenz con grandes ordenadores hacia 1970 (MACSYMA, REDUCE, MAPLE, MATHEMATICA). Maxima es un magnco paquete matemtico de clculo simblico. La versin actual es un descendiente de DOE Macsyma que fue desarrollado en los laboratorios del MIT. Est implementada usando COMMON LISP y mantenida por W ILLIAM F. S CHELTER. Maxima es un sistema de clculo simblico escrito en Lisp1. Maxima desciende del sistema Macsyma, desarrollado en el MIT (Massachusetts Institute of Technology) entre los aos 1968 y 1982 como parte del proyecto MAC. El MIT pas una copia del cdigo fuente al DOE (Department of Energy) en 1982, en una versin conocida como DOE-Macsyma. Una de estas copias fue mantenida por el Profesor William F. Schelter de la Universidad de Texas desde el ao 1982 hasta su fallecimiento en 2001. En 1998 Schelter haba obtenido del Departamento de Energa permiso para distribuir el cdigo fuente de DOEMacsyma bajo licencia GNU-GPL, iniciando en el ao 2000 el proyecto Maxima en SourceForge con el n de mantener y seguir desarrollando DOE-Macsyma, ahora con el nombre de Maxima. Manual de Maxima Maxima no necesita muchos requerimientos de ordenador, adems, la facilidad de uso que incorporan sus interfaces grcas (xMaxima y wxMaxima), as como una gran potencia de clculo, numrico y simblico, ha hecho que se haya extendido enormemente. Podemos utilizar Maxima para la manipulacin de expresiones algebraicas que incluyan constantes, variables y funciones. Permite calcular lmites, integrales, derivadas, resolver ecuaciones algebraicas y diferenciales, representar funciones de una y dos variables, etc. Es tambin un lenguaje de programacin, lo que nos permite ampliar sus capacidades. Maxima ha sido sin duda un programa que ha marcado el camino a otros de estas caractersticas como Maple o Mathematica. La pgina principal del programa es http://maxima.sourceforge.net/. Desde ella podemos bajarnos una amplia documentacin del programa en formato pdf (en ingls). En castellano, podemos consultar la bibliografa. 2. O BJETIVOS

1. Capacitar a los alumnos para el uso de sistemas de clculo simblico en el contexto de otras asignaturas. 2. Utilizar sistemas de clculo simblico para resolver e investigar problemas. 3. Utilizar sistemas de clculo simblico como pizarra electrnica y/o para crear documentos con los que se pueda interactuar.

Lenguaje de programacin

Pgina 5

Luis Oyonarte & Paco Villegas

Parte 2.

Comenzando con Maxima

Maxima con wxMaxima 3.

Estalmat-Andaluca 07/08 I NTRODUCCIN A Maxima (wxMaxima)

Normalmente un programa como wxMaxima se aprende utilizando un mnimo de instrucciones iniciales. No se propone la enseanza del programa por s mismo, sino como una herramienta auxiliar para las matemticas. Antes de comenzar con las actividades, se darn un mnimo de instrucciones como las que vienen a continuacin. No obstante, si alguien quiere profundizar en todas las posibilidades de Maxima, deber consultar el manual que lo acompaa y/o bibliografa que sobre el programa se enumera al nal del tema 3.1. Normas y convenios de teclado. Una letra, grupo de letras o un smbolo signica que hay que pulsar dicha tecla. Ejemplos: , , , son los cursores. Shift es la tecla de maysculas (hay dos). es la tecla tabulador (encima de Shift ). la barra espaciadora Esc , Insert , etc. vienen as en el teclado. A veces hay que pulsar dos teclas simultneamente (un pequeo truco consiste en mantener pulsada la primera tecla y pulsar a continuacin la segunda). Esto se indicar anidndolas con el signo +: Ctrl + a Shift + F1 la tecla de maysculas con F1 Hay diversos smbolos en el teclado que se obtienen pulsando dos teclas. Por ejemplo hay teclas que tienen tres smbolos: + ] pulsando la tecla sola se obtiene el signo de sumar +, con Shift y la tecla se obtiene el signo , se obtiene ]. En estos de la multiplicacin *, y con AltGr , situada a la derecha de la casos se indicar el resultado nal, es decir, * . Hay otra tecla que vamos a utilizar con frecuencia: es el smbolo ^, que se pone para la potenciacin. Si seguimos los pasos del ejemplo anterior este smbolo se obtiene pulsando Shift y la tecla [ pero aparentemente no sale nada. Esto se debe a que es un acento y como tal est esperando que se pulse una tecla tras de l (si es una vocal saldr encima de la misma, en cualquier otro caso sale a la izquierda de la letra, nmero o smbolo tecleado. Para que salga slo pulsamos la y a continuacin podemos escribir cualquier carcter).

Pgina 7

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

3.2. Normas para ejecutar las rdenes de wxMaxima. La pantalla inicial del programa es similar a la captura que sigue:

Hay varias partes en esta pantalla: 1. En la parte inferior de la pantalla se encuentra el rea de botones o atajos, pulsando en los botones de la barras atajos agilizamos las funciones que realiza el programa. 2. Encima del rea de atajos nos encontramos con el rea de entrada. Es la zona que usaremos para interactuar con el programa (introducir datos) 3. Colocada encima del rea de entrada est el rea de salida o ventana de trabajo. En ella aparecern las expresiones, resultados y grcos. Inicialmente aparece en blanco. 4. Encima de la ventana de trabajo estn las barras de iconos. 5. Las rdenes se eligen de los mens de opciones. Para ejecutar una orden podemos seleccionarla con el ratn o bien con la combinacin de teclas Alt +"Letra Subrayada del men. El grco de abajo es el men inicial al cargar el programa

En el programa las rdenes se eligen a travs de diversos mens de opciones. Hay tres formas de ejecutarlas. Una consiste en pulsar con el ratn sobre la opcin deseada del men correspondiente. Con la combinacin de teclas Alt +Letra Subrayada del men. Por ejemplo, Alt + a abre el men de archivo. Pulsando sobre los iconos que aparecen en el rea de botones2 o atajos

2Ya veremos que se puede ampliar el nmero de botones disponible en este rea

Pgina 8

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Antes de seguir, un lugar de obligada visita, la magnca ayuda del programa a la que se accede desde Ayuda Ayuda de Maxima. Pero ese men merece la pena, las opciones a las que permite acceder hay que analizarlas mejor, ya veremos algunas despus. Por ahora, optaremos por acceder a la ayuda pulsando sobre la tecla de funcin
F1

Pgina 9

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima 4. C OMENCEMOS

Estalmat-Andaluca 07/08

Dependiendo del sistema operativo con el que trabajamos, podemos acceder a wxMaxima de diferentes formas, por ejemplo desde Guadalinex se accede desde la cadena de mens: Aplicaciones Otras wxMaxima. Desde entornos Linux, la forma ms genrica es abrir un terminal y ejecutar el comando: $ wxmaxima Desde Windows, en general usaramos el icono que deberamos tener en el escritorio y que permite arrancar el programa. La primera pantalla que vemos al ejecutar wxMaxima es la siguiente3:

Vamos a introducirnos en este programa. Comencemos escribiendo en el rea de entrada 264

3La captura indica con qu versin se ha trabajado en estos apuntes, se trata de:

Sistema: Guadalinex V4.1 Versin de maxima: 5.14.0 Versin de wxMaxima: 0.7.4

Pgina 10

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Para obtener el resultado, podemos pulsar sobre el grco cualquier caso obtendremos:

o pulsar la tecla

, en

En menos de una dcima de segundo tenemos en la pantalla el astronmico nmero de veinte cifras, calculado de forma exacta (esta es una de las virtudes de Maxima, si lo comparamos con las calculadoras cientcas).

!: En Maxima, para terminar la ejecucin de un comando tenemos que nalizarlo con ;


y despus la tecla . En wxMaxima no es necesario, el caracter ; lo escribe l. Podemos observar cmo ha ido variando el rea de trabajo y por ejemplo, ahora nos dice que lo ltimo ejecutado es simplicar la expresin %i1 (la primera entrada, de input en ingls) y que el resultado obtenido es %o1 (de salida en ingls, es decir de output). Con esos nombre podremos despus hacer referencia a los valores que representan. Pero ya veremos esto mejor despus. Con %i2 maxima nos indica que espera nuestra segunda instruccin. Pero el nmero de granos a calcular es 264 1. Vamos a corregir nuestros clculos. Para ello, con la expresin remarcada utilizamos la secuencia de mens Editar Editar Entrada, la combinacin de teclas Ctrl + e , pulsamos sobre el botn derecho del ratn y despus sobre

Pgina 11

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

o mejor, pulsando en la tecla procedemos a editar la expresin, la modicamos a nuestro antojo, y una vez realizados los cambios pulsamos sobre Ctrl + , el resultado:

Vamos a seguir explorando un poco ms las capacidades aritmticas del programa. Cul sera la descomposicin en factores primos del nmero anterior?. Un problema difcil de abordar incluso con calculadora. Seleccionamos la expresin ( %i2) hasta que quede en vdeo inverso. Pulsamos sobre el botn del rea de botones, en pocas dcimas de segundo se obtiene esta sorprendente descomposicin en la que un factor tiene 5 dgitos y otro 7 dgitos!.

Calculemos el valor del nmero . En el rea de entrada escribimos %pi y veremos que el programa no muestra lo que esperbamos:

Pgina 12

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Esto se debe que Maxima, por defecto opera de forma exacta, y claro ya sabemos que no puede ser calculado. Pero supongamos que lo que queremos es obtener algunas cifras decimales del nmero , en ese caso podamos haber escrito %pi,numer; el resultado sera:

aparece el nmero con 16 cifras. Pero cmo obtener ms cifras?. El nmero de cifras signicativas puede ser elegido pulsando Numrico Establecer precisin y se abre la ventana:

Vamos a optar porque sean 100, obtendramos:

Para obtener el resultado, y tras optar por una precisin de 100, pulsamos sobre la salida del primer comando y, una vez en vdeo inverso, usamos desde el rea de men: Numrico A real grande (bigoat) ...

Pgina 13

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Pero no sale como esperamos, y es que los 43 dgitos de en medio salen truncados, para eso, pulsamos sobre Maxima Cambiar pantalla 2D y optamos por ascii

Ya s:

Hay otros valores interesantes de conocer: Smbolo Maxima Descripcin %pi rea del crculo de radio 1 (aprox. 3.14159...) e %e base de los logaritmos neperianos (2.71828...) i %i unidad imaginaria (raz cuadrada de -1) Si queremos salir de wxMaxima pulsamos

y en el men desplegable que aparece terminamos la sesin con Salir (o Ctrl + Q , nos preguntar si queremos guardar la sesin actual y pulsaremos en Aceptar para salir sin guardar nada.

Pgina 14

Luis Oyonarte & Paco Villegas

Parte 3.

Actividades

Maxima con wxMaxima 5. C LCULOS ARITMTICOS

Estalmat-Andaluca 07/08

Veamos cmo realizar las operaciones bsicas con wxMaxima. Los operadores aritmticos usuales son: Suma Resta Multiplicacin Divisin Potencia + * / ^ o ** Por ejemplo: Como se puede observar, Maxima por defecto no opera de forma aproximada, y si deseamos un valor aproximado, tenemos que indicrselo. Un aspecto a tener en cuenta es el de la prioridad en las operaciones y el buen uso de los parntesis. Otra cosa a tener en cuenta, el carcter % (ya ha salido) tiene un sentido especial, referencia siempre la ltima expresin obtenida, as por ejemplo si:

( %i1) 2+3*5; ( %o1) 17 ( %i2) %-7; ( %o2) 10


Recordar que podemos operar las etiquetas que aparecen a la derecha del rea de trabajo, as por ejemplo, si escribimos:

( %i3) %o1* %o2; ( %o3) 170


Pero manos a la obra, es la hora de trabajar con el programa: Problema 5.1. 1. Halla el valor exacto y aproximado de 2 2 a) 7 +3 +3 4 7 b)
2 7

+3

+3 4 7
34 2+ 3 4 2 4

2. Comprueba que ne? Problema 5.2.

2 3

24154384459256550625 121439531096594251776 .

Qu valor aproximado tie-

1. Para hallar la factorizacin de un nmero (o polinomio) solo tenemos que usar el botn . Factoriza el nmero 12345678901234567890 2. El factorial de un nmero natural (se representa con el signo ! despus de ese nmero) es el producto de todos los nmeros naturales anteriores o iguales a l, por ejemplo: 3! = 3 2 1 = 6.

Pgina 16

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

a) wxMaxima usa ! para calcular factoriales, halla 4! y 100!. b) Factoriza los resultados obtenidos. 3. Con el comando primep podemos saber si el nmero entero n es o no primo, devolviendo true o false segn el caso. Por ejemplo: ( %i1) primep(3); ( %o1) true ( %i2) primep(4); ( %o2) false Es primo? 2305843009213693951 y? 12305843009213693957

Los primos de Mersenne (nmeros primos de la forma 2 p 1 donde p es un nmero primo) se encuentran entre los ms grandes primos hallados. Actualmente el primo de Mersenne ms alto encontrado es el cuadragsimo cuarto y es el nmero 232582657 1 que tiene 9.808.358 dgitos y fue descubierto el 4 de septiembre de 2006 gracias al proyecto de computacin distribuida GIMPS en la direccin http: // www. mersenne. org . http: // es. wikipedia. org/ wiki/ Nmero_ primo 4. Como no puede ser de otra forma, con wxMaxima podemos obtener el MCD y MCM de dos nmeros. Por ahora nos conformamos con el MCD, para eso hay que usar Anlisis Mximo Comn Divisor

1. Halla MCD(138844468224, 184624895000) a) Sabiendo que si a y b son dos nmeros, entonces a b = MCM (a, b) MCD(a, b). Halla el MCD del par de nmeros anteriores.4

4Cargando el paquete adecuado es posible hacerlo de forma automtica, se trata de cargar el paquete functs.mac

desde Ayuda Cargar Paquete.

Pgina 17

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Problema 5.3. Le preguntan a varios especialistas: A qu es igual el nmero ? 1 El ingeniero responde: es aproximadamente 3 7 El fsico: es 3, 14159 El matemtico (despus de una corta meditacin): es igual a En 1873 y tras un trabajo de casi toda la vida el ingls Willian Sanks public las primeras 707 cifras del nmero . En 1945, usando ordenadores se comprob que ese inmenso trabajo era errneo desde la cifra 528. En en 2004 fueron capaces de sacar 1,3511 billones de lugares decimales de usando algoritmos ultrarrpidos. Ahora te toca, halla una aproximacin de con 1000 cifras decimales. Problema 5.4. Una hermosa leyenda cuenta que cuando un matemtico oriental invent el juego de ajedrez, el monarca de Persia qued tan entusiasmado con el juego que quiso conocer y premiar al inventor. Y cuenta el rabe Al-Sefadi que el rey ofreci a dicho inventor concederle el premio que solicitara. El matemtico le pidi como premio lo que sigue: 1 grano de trigo por la primera casilla del tablero de ajedrez, 2 por la segunda, 4 por la tercera y as sucesivamente, siempre doblando, hasta la ltima de las 64 casillas. El soberano persa casi se indign de una peticin que, a su parecer, no haba de hacer honor a su liberalidad. No quieres nada ms? pregunt. Con eso me bastar, le respondi el matemtico. El rey dio la orden a su gran visir de que, inmediatamente, quedaran satisfechos los deseos del sabio. Pero cul no sera el asombro del visir, despus de hacer el clculo, viendo que era imposible dar cumplimiento a la orden! 1. Cuantos granos de trigo contendra la ltima casilla? 2. Qu expresin tendra la suma de granos escrita en forma de una suma de potencias de 2? 3. Podemos usar Maxima para que nos calcule el resultado. Usa el men Anlisis Calcular la suma... Necesitas ajustar los campos:

Pgina 18

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

4. Realiza el mismo clculo si en la ventana anterior optas por Nosum 5. Si 1000 granos de trigo pesan aproximadamente 35 gramos. Cuntas toneladas de trigo representa la cantidad anterior? 6. La produccin promedio anual de trigo en el mundo asciende a unas 592 millones de toneladas. Compara esa cifra con la obtenida anteriormente. Problema 5.5. Con Maxima podemos crear funciones. Por ejemplo podemos prepararnos una frmula para obtener el rea de un rectngulo:

Crea una frmula que te d el rea de un tringulo y halla el rea de los tringulos de base y altura: base 6 23 350 altura 3 45 300

Pgina 19

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima 6. R ESOLUCIN


DE PROBLEMAS

Estalmat-Andaluca 07/08

Dada una cartulina de tamao 15 cm por 20 cm, quitamos cuatro cuadraditos en las esquinas y doblando hacemos una caja sin tapa. Cunto debe medir el lado del cuadradito para que la caja tenga la mxima capacidad posible? Podemos materializar construyendo diversas cajas, quitando cuadraditos de 1, 2, 3, ... cm. de lado. Y el volumen para cada uno de ellos sera: x volumen 1 18131 = 234 cm3 2 16112 = 352 cm3 3 1492 = 378 cm3 Esta tabla podemos hacerla con Maxima de esta forma: Primero introducimos la funcin volumen (20 2x)(15 2x)x f (x) := (20 2 x) (15 2 x) x y despus hallamos: f (1) f (2) .... Problema 6.1. Comprubalo y halla hasta f (5) Problema 6.2. Ahora vamos a hacer una tabla de valores en la que x tomar los valores de 0 a 8 de uno en uno mediante la orden lgebra Construir Lista

( %i1) makelist((20-2*x)*(15-2*x)*x, x, 0, 8); ( %o1) [0,234,352,378,336,250,144,42,-32]


As vemos que el valor de x debe estar entre 2 y 4 cm (para valores enteros sera 3 cm). Tambin observamos que para x = 8 cm el volumen es negativo (no se puede construir dicha caja). Problema 6.3. Grca de la funcin volumen. Pulsa sobre obtn como resultado la grca de la barra de atajos y

Pgina 20

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Problema 6.4. Podemos usar las posibilidades que como lenguaje de programacin nos brinda Maxima

( %i2) f(x):=(20-2*x)*(15-2*x)*x; ( %o2) f(x):=(20-2*x)*(15-2*x)*x ( %i3) for i:0 thru 8 step .1 do display(f(i)); Qu se obtiene? El ltimo comando signica: Halla los valores de f (x) desde que la variable i toma el valor 0 hasta que llegue a valer 8, incrementando ese valor de dcima en dcima. Podemos optar por otros valores lmites o modicar el valor del incremento. A partir del resultado anterior podemos obtener que para x entre 2.8090 y 2.8484 el volumen es 379.0337. ( %i1) f(2.8); ( %o1) 379.008 ( %i2) f(2.9); ( %o2) 378.8559999999999 Pero una vez obtenidos estos valores cercanos a la solucin podemos alcanzar la precisin deseada haciendo tablas de valores adecuadas. Por ejemplo, para obtener una aproximacin hasta las centsimas, podemos tomar valor inicial de x 2.80, valor nal 2.85 y valor del incremento 0.01 (as x tomar los valores 2.80, 2.81, 2.82, 2.83, 2.84 y 2.85) y podemos ver en la gura siguiente que el valor ms alto que toma el volumen es 379.0377 para x = 2,83. De forma anloga se podra aproximar hasta las milsimas... Pero para el problema real de la cartulina una aproximacin de mm (es decir dcimas de cm) es ms que suciente, y en este caso sera 2.8 cm.
Problema 6.5. Halla t las tablas anteriores y comprueba todo lo que se arma en el prrafo anterior.

Pgina 21

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Problema 6.6. Tenemos la cartulina el doble de larga (15cm x 40cm) y queremos hacer la caja con tapadera. Halla las dimensiones para que el volumen sea mximo.

Problema 6.7. Determina las dimensiones de un bote cilndrico de 1 litro de capacidad (1000 cm3 ) para que utilice la menor cantidad de material posible. (Recuerda que la supercie total de un cilindro es 2 r2 + 2 rh).

Pgina 22

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima 7. I NTRODUCCIN

Estalmat-Andaluca 07/08

HISTRICA A LA CRIPTOLOGA : CRIPTOSISTEMAS CLSICOS

La criptologa es la ciencia encargada del estudio de los criptosistemas, es decir, de los sistemas de comunicacin que, mediante alguna tcnica de cifrado, permiten la comunicacin entre interlocutores de forma que nadie excepto ellos pueda conocer el contenido de la informacin que intercambian. Las reas de mayor inters en criptologa son la criptografa, el criptoanlisis y esteganografa. La criptografa, arte de escribir con clave secreta o de un modo enigmtico, es el rea que estudia mtodos de cifrado y descifrado de mensajes que resulten seguros, es decir, que no sean fcilmente descifrables por personas ajenas a los grupos que se comunican. El criptoanlisis en cambio es el rea encargada de intentar descifrar los mensajes cifrados que hayan sido interceptados mientras viajaban en el canal de comunicacin de dos interlocutores. La esteganografa estudia las maneras de ocultar el envo de mensajes entre interlocutores de forma que nadie ajeno a ellos pueda conocer la existencia de tales envos. 7.1. Criptosistemas clsicos. El primer sistema de cifrado que se conoce, la esctala, fue utilizado por los lacedemonios en el siglo V A.C. y consiste en enrollar una cinta alrededor de un bastn y escribir sobre ella, de manera longitudinal, el mensaje que se quiere enviar. Al desenrollar la cinta, lo que puede leerse es simplemente un conjunto de letras sin ningn sentido aparente. La llave que abre este sistema es pues el grosor del bastn que se emplea, pero no existe ningn tipo de modicacin en el mensaje, o dicho de otro modo, el texto enviado es el texto en claro, lo que se traduce en una debilidad muy importante, con el riesgo que eso conlleva.

Posteriormente, a mediados del siglo II A.C., un historiador griego llamado Polybios invent el mtodo de cifrado por sustitucin (permutacin de letras) ms antiguo que se conoce. Este mtodo consiste en sustituir cada letra del mensaje en claro (mensaje sin cifrar) que se quiere enviar, por el par de letras que indican la la y la columna (en ese orden) en que la letra original se encuentra en una tabla de 5 5 caracteres. Problema 7.1. Segn el siguiente ejemplo de tabla de Polybios (adaptada al espaol) A B C D E A A F L Q V B C D E B C D E G H IJ K M N O P R S T U W X Y Z

Pgina 23

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima cifra el mensaje ATACAMOS MAANA".

Estalmat-Andaluca 07/08

Unos cincuenta aos despus, en el siglo I A.C., aparece un cifrador llamado mtodo de Csar, que no depende de ninguna tabla, sino que aplica un desplazamiento constante de tres lugares a cada letra del texto sin cifrar. Por supuesto este mtodo puede fcilmente ser alterado y hacer cualquier tipo de desplazamiento, no slo de tres lugares. Problema 7.2. Utilizando el mtodo de Csar, cifra el mensaje TITO LIVIO TE RECIBIRA MAANA". Problema 7.3. Descifra el siguiente mensaje sabiendo que se ha empleado el criptosistema de Csar con un desplazamiento de cinco lugares: PFKPTYFXZGQFWNRFJXYFJRQFWIJPHTWFP". En cualquier caso, el criptoanlisis de este tipo de cifrado resulta elemental. La primera tcnica de criptoanlisis en la que uno piensa resulta ser efectiva, y esta tcnica no es otra que aplicar de la siguiente forma las estadsticas del lenguaje en el que se escribe: estudios estadsticos demuestran que la letra ms empleada en el lenguaje castellano es la E, seguida de la A, la O, la S, ... As, si la letra que ms se repite en un texto cifrado es la D, parece razonable pensar que se ha utilizado la correspondencia E D a la hora de cifrar el mensaje, y proceder de esta manera haciendo coincidir las estadsticas. Por supuesto este mtodo no es, ni mucho menos, infalible, y adems hay que tener en cuenta que las diferencias estadsticas entre algunas letras son mnimas, lo que hace ms difcil que las correspondencias estadsticas se cumplan. Si esto ocurriera, es decir, si la correspondencia E D no diera lugar a nada razonable, se podra intentar la correspondencia de la E con la segunda letra ms usada en el texto cifrado, o cualquier otra variante que se nos ocurra. En realidad, este tipo de proceso de cifrado corresponde a una ecuacin matemtica: podemos sustituir cada letra del mensaje en claro por un nmero (A=0, B=1,...), aplicar la ecuacin y = x + 3 (si usamos el mtodo de Csar) a cada nmero, y sustituir el nmero resultante por la letra que le corresponde. Pero existe un pequeo problema en este proceso, sabes cul es?. Cmo lo solucionaras?. Si despus de pensar un rato no encuentras la solucin, puedes utilizar las pistas 2-4 (empezando por la 2), abriendo slo las que precises para llegar a la solucin. Una vez formalizado el proceso de cifrado, descifrar debe consistir en aplicar la ecuacin inversa, que en el caso del mtodo de Csar es x = y 3. Como hemos dicho antes, este modelo de criptosistema resulta demasiado vulnerable, pues de hecho, utilizando las estadsticas del lenguaje, slo necesitamos acertar con una correspondencia de letras ya que tenemos una ecuacin (y = x + b) con una incgnita (b).

Pgina 24

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Podemos intentar complicar el criptosistema un poco ms aadiendo una nueva variable, y en lugar de aplicar un cifrado del tipo y = x + b, aplicar una ecuacin de la forma y = ax + b. Pero claro, hay que tener en cuenta que al igual que codicamos, debemos ser capaces de descodicar, para lo cual debemos exigir que a no sea mltiplo de 3, siempre bajo la suposicin de que los textos estn escritos usando el alfabeto castellano (33 = 27 caracteres). La razn de esta exigencia es que la ecuacin que hay que aplicar para descifrar es x = (y b), en donde es el nico nmero entero que verica: a) 1 26, b) el resto de la divisin de a entre 27 es 1, y existen razones matemticas para armar que si 3 divide a a entonces no es posible calcular . Por supuesto a nadie le gustara verse en la situacin de utilizar un criptosistema que ni siquiera l mismo puede romper. Pese a lo que pueda parecer, el clculo de este nmero es bien sencillo. De hecho es incluso mecnico, pues existen algoritmos (algoritmo de Euclides) que permiten su clculo. No obstante no vamos a entrar en frmulas toda vez que el programa Mxima" permite su clculo de forma directa sin ms que ejecutar el comando inv_mod, y ser inv_mod(a, 27). Problema 7.4. Tienes que ayudar a un amigo tuyo corredor de bolsa avisndole de que, contra todo pronstico, el precio del valor IBERTEX, del que l tiene numerosas acciones, va a venirse abajo tras la apertura de la sesin de maana, pero nadie ms debe enterarse de esto pues tu advertencia no servira para nada. As, debes hacerle llegar el mensaje: FUERTE CAIDA INMINENTE IBERTEX" (tienes que tener en cuenta que en todos los mercados burstiles, los telfonos, correos electrnicos y todos los medios de comunicacin estn supervisados por administradores de sistemas de ms alto rango que tu amigo, por lo que no es posible ponerse en contacto con l sin que alguien se entere, es decir, aqu no puedes emplear ninguna tcnica de esteganografa). Como respuesta, tu amigo te hace llegar el siguiente mensaje que ha cifrado utilizando la frmula y = 5x + 3: QXEANPXDRXGMDRWQIWWBPNPXQ". Como pudiste comprobar cuando cifraste el texto para tu amigo, lo interesante de todo esto es inventar, elegir la mejor forma de hacer las cosas, pero una vez hechas, los clculos, que siempre son los mismos, no ensean demasiado cuando ya se han efectuado un par de veces. Por eso, para descifrar el mensaje que te manda tu amigo puedes usar el programa Mxima de la siguiente forma: sabes que la frmula para descifrar cada carcter es x = (y 3), y tambin sabes qu es y cmo se calcula con Mxima. Por eso puedes denir la ecuacin de descifrado como una funcin f (x) y ejecutar la sentencia for i:0 thru 26 step 1 do display(f(i))

Pgina 25

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Obtendrs inmediatamente la correspondencia numrica que te permitir descifrar todas las letras del alfabeto. El siguiente paso a la hora de complicar el criptoanlisis de cualquier criptosistema consiste en incluir una clave de la siguiente forma: en primer lugar se realiza la transformacin del alfabeto segn el mtodo de cifrado que se haya elegido. Por ejemplo, si ciframos usando la frmula y = 4x + 1, el alfabeto de cifrado ser el siguiente: A B C D E F G H I J K L MNO P QR S T UVWXY Z B F J N Q U Y C G K R V Z DHLO S WA E I M P T X A continuacin se escribe la clave, que ser una frase, empezando en una posicin de letra que se debe conocer, y sin repetir caracteres. Por ejemplo, si la clave es LAURAy debe introducirse en la posicin p = 2, tendramos la siguiente correspondencia alfabtica: A B C D E F G H I J KLMNOPQRSTUVWXYZ L A U R Finalmente se escribe, a partir de la ltima letra de la clave, el resto de los caracteres siguiendo el orden dado por la transformacin alfabtica que construimos en el primer paso, y por supuesto sin repetir los caracteres ya escritos, es decir: A B C D E F G H I J K L MNO P Q R S T U V WX Y Z T X L A U R B F J N QY C GKV Z DHO S W E I M P Ya tenemos nuestro alfabeto de cifrado!.

Problema 7.5. Un compaero de tu equipo de ftbol del colegio te ha hecho llegar el mensaje MKVZYVKOYXTKEQWKQBTYEMKEYCKX que ha cifrado utilizando la llave 2x + 2 y la clave PARTIDO. No conoces en qu posicin hay que introducir la clave pero sabes que la I se ha cifrado como T. Para calcular el alfabeto de cifrado previo a la introduccin de la clave, puedes ayudarte con el programa Mxima (ya lo has hecho antes), pero ten en cuenta que la funcin que debes denir ahora es la de cifrado, no la de descifrado. Como dijimos antes, el criptoanlisis de un criptosistema de este tipo es ms complicado, pues requiere utilizar las estadsticas del lenguaje de una forma mucho ms exhaustiva y eciente (ya no basta conocer la correspondencia de dos pares de letras del alfabeto).

Pgina 26

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

Por supuesto todos los mtodos explicados responden slo a una introduccin muy supercial de la criptografa, toda vez que la potencia de clculo que hoy en da poseen los ordenadores rompera cualquiera de estos criptosistemas en cuestin de segundos. En cualquier caso, el objetivo de este tema no era otro que hacer entender las bases de la criptografa. Ms profundidad se alcanzar en la sesin dedicada especcamente a la criptografa. No obstante, y slo como adelanto que sirva para aumentar la curiosidad del que est interesado, cabe resaltar que los criptosistemas que destacan hoy en da (sobretodo cuando se trata de enviar informacin condencial entre personas y administraciones) son los de llave pblica, es decir, sistemas que cifran a partir de llaves que puede conocer cualquier persona, pero que slo permiten descifrar al que cifra el mensaje. De entre estos criptosistemas el ms extendido es el RSA.

Trabajo en grupo Cinco grupos. Cada uno debe descifrar el mensaje AUZHINHZHRVHIEQTH, que ha sido cifrado con la llave y = 5x + 7. Gana el equipo que termine antes. A continuacin deben cifrar otra vez el mensaje que han obtenido pero utilizando la llave y = 7x + 5. Gana el equipo que termine antes.

Pgina 27

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Pgina 28

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Pgina 29

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima Pista 1

Estalmat-Andaluca 07/08

Ninguna de las estadsticas que razonablemente se puede ocurrir funciona, pero si pensamos un poco podemos decir que una letra por la que es muy fcil que empiece una frase es la L. Esto ayuda adems a aprender que a la hora de cifrar no slo hay que buscar buenos mtodos, sino que hay que ser lo menos previsible posible.

Pista 2 El problema es que no podemos hacer las operaciones aritmticas tal y como estamos acostumbrados, o al menos, tras hacerlas, hay que trabajar un poco ms, y la razn es que, dado que el alfabeto castellano tiene 27 letras y empezamos a contar por el 0, tras el nmero 26 no existe nada... aparentemente; efectivamente, si queremos codicar por el mtodo de Csar, la X (nmero 24) debera escribirse como una A (nmero 0). Sin embargo, segn la ecuacin y = x + 3, la X debera ser codicada por la letra cuyo nmero sea el 24 + 3 = 27, que no existe.

Pista 3 Efectivamente la idea es construir un bucle de la Z a la A de forma que la sustitucin de letras se convierta en un ciclo. Pero matemticamente, >qu signica esto? O mejor dicho, hacer un ciclo de 27 nmeros signica que dos nmeros a y b representan a la misma letra siempre que el nmero de letras que sobren cuando pasamos la Z por ltima vez (pensemos que si a o b son grandes puede que haya que pasar la Z varias veces) sea el mismo para a y para b. >cmo se lleva esto a la prctica con nmeros?

Pista 4 Cuando el resto de la divisin de a entre 27 sea el mismo que el resto de la divisin de b entre 27. Cuando esto ocurre decimos que a y b son congruentes mdulo 27 y lo escribimos como a b (mod 27) a 27 b. En denitiva, para conocer qu letra corresponde a la M (nmero 12) mediante el criptosistema de llave 13x + 6, tenemos que calcular el resto de la divisin de 13 12 + 6 = 162 entre 27, que es 0, as que le corresponde la A.

Pista 5 La letra A se repite bastante en el texto.

Pgina 30

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima 8.

Estalmat-Andaluca 07/08 R ESOLUCIN DE ECUACIONES

8.1. Ecuaciones de 1 grado. Resolvamos la siguiente ecuacin: 45x 65 + 346 21x = 497 + 8x Para ello Maxima 45*x-65+356-21*x=497+8*x y tras marcarla pulsar sobre Problema 8.1. Resolver la ecuacin 1. 17x 21(4 x) + 5x 33 = 220 32x 8.2. Ecuaciones de 2 grado. Resolvamos la ecuacin x2 5x + 6 = 0 pulsando sobre el botn .

( %i1) solve([x^2-5*x+6], [x]); ( %o1) [x=3,x=2] Veamos ahora las soluciones grcamente. Seleccionamos la expresin (x2 5x + 6 = 0) y tras
pulsar sobre representemos grcamente la funcin. Problema 8.2. Veamos como Maxima obtiene la frmula que nos da las soluciones de la ecuacin de 2 grado: a*x^2+b*x+c=0 y . Este ejemplo nos muestra que Maxima puede resolver ecuaciones con parmetros y esto puede ser muy til para introducir frmulas. Problema 8.3. Maxima resuelve de forma exacta ecuaciones de 3 y 4 grado. (Para las de grado mayor sabemos que no hay frmula posible). 1. Por ejemplo, si en Maxima introducimos a*x^3+b*x^2+c*x+d=0 Al cabo de unos momentos veremos tres soluciones enormes en la pantalla. 2. Como ejemplo de una de cuarto podemos escribir: 3*x^4+7*x^3-3*x^2+25*x-7=0 Veremos las cuatro soluciones, dos reales y dos complejas, que podemos aproximar. 3. Resolver las siguientes ecuaciones: a) 2x3 x2 4x + 2 = 0 b) 3x4 + 2x3 16x2 10x + 5 = 0

Pgina 31

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima 9.

Estalmat-Andaluca 07/08 S ISTEMA LINEAL DE ECUACIONES

3x + y = 7 2x + 7y = 12 Para resolver sistemas utilizamos Ecuaciones Resolver Sistema Lineal... e introducimos el nmero de ecuaciones. Inicialmente ser un sistema de 2 ecuaciones con dos incgnitas. Despus escribimos: Resolvamos el sistema de ecuaciones:

el resultado: ( %i1) linsolve([3*x+y=7, 2*x+7*y=12], [x,y]); ( %o1) [x=37/19,y=22/19] Problema 9.1. Hallar las soluciones de los sistemas: 3x + 2y = 2 5x y = 2 2x + y + z = 7 x+z = 4 3x 2y + z = 2 Problema 9.2. Resuelve el sistema 3x + 5y = 7 2x + 7y = 12 La interpretacin grca puede ser til, por ello se propone la siguiente actividad. Hacer la grca de las dos rectas y comprobar que el punto de corte es (-1 , 2). Problema 9.3. En Economa la funcin que relaciona el precio de un producto con la cantidad de este producto que los consumidores estn dispuestos a comprar se llama curva de demanda. La funcin que relaciona el precio a que se pagara un producto con la cantidad del mismo que estn dispuestos a ofertar fabricantes y vendedores se llama curva de oferta. El punto de corte de ambas curvas es un punto de equilibrio al que se aproxima el mercado. Por ejemplo: Las curvas de oferta y de demanda de un cierto tipo de ordenadores son, respectivamente:

Pgina 32

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima

Estalmat-Andaluca 07/08

y = 2x 950 y = 0,5x + 2000 en donde x es el precio en euros de los ordenadores e y es el nmero de ordenadores ofertados (en el primer caso) o demandados (en el segundo). cul ser el punto de equilibrio de esta mercanca? Hacer una grca de las dos funciones y hallar el punto de interseccin.

Pgina 33

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima 10.

Estalmat-Andaluca 07/08 S ISTEMA NO LINEAL DE ECUACIONES

Por el mismo mtodo anterior Maxima nos va a resolver cualquier sistema. Pero si no son lineales tendremos que optar por Ecuaciones Resolver sistema algebraico... Por ejemplo, si introducimos:

se obtiene: ( %i1) algsys([x^2+y^2=25, x*y=12], [x,y]); ( %o1) [[x=-3,y=-4],[x=-4,y=-3],[x=4,y=3],[x=3,y=4]] Que corresponden a 4 soluciones. Problema 10.1. Resuelve el sistema no lineal: x2 + y2 = 25 2x y = 2 Problema 10.2. Resolver el siguiente sistema de ecuaciones no lineal: x2 y2 = 9 3x 2y = 7 Haz la grca de ambas ecuaciones y comprueba grcamente las soluciones. Problema 10.3. Las funciones de oferta y de demanda de un televisor de alta resolucin son: y = 0,2x2 + 42000 y = 0,08x2 siendo x el precio de una televisin de alta resolucin e y la cantidad de las mismas que se demandan o se ofrecen en un ao. Hallar el punto de equilibrio y hacer una grca.

Pgina 34

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima TABLA DE FUNCIONES F UNCIN abs(x) acos(x) acosh(x) asin(x) asinh(x) atan(x) atanh(x) binomial(m,n) csc(x) cos(x) cosh(x) cot(x) exp(x) oor(x) log(x) max(x1,x2,x3,...) min(x1,x2,x3,...) signum(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) x!

Estalmat-Andaluca 07/08

D ESCRIPCIN Valor absoluto de x Arco coseno de x Arco coseno hiperblico de x Arco seno de x Arco seno hiperblico de x Arco tangente de x Arco tangente hierblica de x m! Nmero combinatorio m n = n!(mn)! Cosecante de x Coseno de x Coseno hiperblico de x Cotangente de x Funcin exponencial, ex Parte entera de x Logaritmo Neperiano de x Mximo de x1 , x2 , x3 ... Mnimo de x1 , x2 , x3 ... Signo de x (1 si x > 0, 1 si x < 0, 0 si x = 0) Seno de x Seno hiperblico de x Raz cuadrada de x Tangente de x Tangente hiperblica de x Factorial de x

Pgina 35

Luis Oyonarte & Paco Villegas

Maxima con wxMaxima R EFERENCIAS

Estalmat-Andaluca 07/08

[1] Manual de Introduccin a la aplicacin matemtica Mxima. Miguel Arsuaga Franco y Rosa Ramos Palanco. http://www.guadalinex.org/mas-programas/descargas/contribuciones-de-usuario/ introduccion_a_maxima.pdf/view [2] Pgina de Mario Rodrguez Riotorto http://www.telefonica.net/web2/biomates/ [3] Libro sobre Maxima con wxMaxima, Rafa Rodrguez Galvn http://softwarelibre.uca.es/node/788

Pgina 36

Luis Oyonarte & Paco Villegas

Вам также может понравиться