Práctica 1. Órdenes y funciones básicas En esta práctica aprenderás a introducir datos, ha Objetivos: cer cálculos con operaciones y funciones matemáticas más frecuentes y a dibujar algunas gráficas. 1. Los caracteres. Si nunca te pusiste delante de un teclado esta sección va dedicada especialmente para ti. Si es ası́, vete haciendo a la idea de que vas a pasarte, al principio, un buen rato buscando teclas. Intentaremos a continuación darte una ayuda de cómo obtener los caracteres usados en el desarrollo de las prácticas. Observa la siguiente figura que representa un teclado tı́pico, compáralo con el que vas usar para comprender las indicaciones que le siguen. CAR S E R E T AC En la zona en la que se encuentran los caracteres (letras, números y sı́mbolos) puedes observar tres tipos de teclas: Teclas con un sólo carácter: Con estas teclas podemos obtener las distintas letras del alfabeto. Pulsándolas se obtienen las minúsculas y si pulsas simultáneamente una de las teclas de mayúscula (las señaladas con ⇑) y cualquier letra, verás que se obtiene la mayúscula correspondiente (para esta operación deberı́as usar las dos manos, con una mantienes pulsada la tecla ⇑ mientras que con la otra pulsas la letra). Si quieres que todas las letras salgan mayúsculas basta con presionar una sola vez la tecla de fijar mayúsculas Bloq (observa que una luz se enciende arriba a Mayús la derecha marcada con “Bloq Mayús” o “Caps Lock”). Pulsando de nuevo esta tecla volverás a obtener minúsculas. Teclas con dos caracteres: De este tipo suelen ser la mayorı́a de las teclas que tienen los números: en la parte inferior aparece el número y en la superior aparece un sı́mbolo. Si pulsas este tipo de teclas obtendrás el caracter inferior, para obtener el superior debes pulsar simultáneamente la tecla de mayúscula ⇑ (no pulses la de fijar mayúsculas porque no obtendrás los sı́mbolos superiores, esta tecla sólo afecta a las letras). Teclas con tres caracteres: Observa que existen teclas de caracteres que tienen dibujados tres sı́mbolos: dos a la izquierda (uno arriba y otro abajo) y uno a la derecha. Los de la izquierda se obtienen como las teclas con dos caracteres: pulsándolas resulta el carácter inferior y con la tecla de mayúscula el superior. Para obtener el carácter de la derecha deberás pulsar simultáneamente (como se hace con la mayúscula) la tecla Alt Gr , que se encuentra a la derecha de la barra espaciadora, y dicha tecla. Para obtener el carácter { debes pulsar tecla que tiene { Alt Gr y la No pienses que sólo puedes obtener los caracteres que aparecen en el teclado existe un procedimiento fácil mediante el cual puedes obtener todos los caracteres por su código (un número menor que 256 = 28 ). Para conseguirlo basta que presiones la tecla Alt y sin soltarla teclea un código, al soltar la tecla Alt saldrá el carácter correspondiente (no introduzcas códigos menores que 32 porque algunos de ellos no producen caracteres sino que realizan tareas especiales según en el programa que te encuentres). Podemos obtener la letra A pulsando Alt y el código 65. Podemos obtener ~ pulsando Alt y el código 126. El carácter ˆ será usado frecuentemente en el programa; para obtenerlo no basta con pulsar su tecla será necesario que pulses además la barra espaciadora. 1.1. Borrando caracteres. Existen en el teclado dos teclas que sirven para eliminar un carácter introducido anteriormente: Una tecla gris marcada con ← que se encuentra por encima de la tecla de retorno de carro ( ) y otra más a la derecha marcada con Supr . Las dos teclas borran pero de distinta forma: La primera de ellas va eliminando, cada vez que se pulsa, el carácter situado a la izquierda del cursor, la segunda elimina el carácter señalado por el cursor. Puedes moverte entre los caracteres introducidos a derecha e izquierda, sin borrarlos, usando las teclas correspondientes, de color gris, que se encuentran abajo a la derecha (están las cuatro solas y están marcadas con flechas en las cuatro direcciones). 2. Entrando en el programa Mathematica. Cuando entremos en el ordenador estaremos en el entorno de Windows. En este entorno aparecerán iconos representado los distintos programas o grupos de ellos. Prepárate ahora a usar el ratón: déjalo apoyado en la mesa, bajo tu mano y de forma que tu dedo ı́ndice descanse sobre el botón de la izquierda. Deslı́zalo lentamente sobre la mesa y verás que la flecha se mueve por la pantalla del ordenador. Coloca la flecha sobre el icono de la ventana del Práctica 1. Órdenes y funciones básicas Mathematica y pulsa 2 el botón izquierdo del ratón dos veces (dos golpes secos y seguidos) procurando que no se mueva el ratón. De esta forma entrarás en el programa Mathematica. Verás como aparece en la parte superior el menú y debajo una ventana en blanco en la que sólo aparece una linea horizontal, que está titulada con [Untitled-1] o algo similar (según la versión del Mathematica). Usando el menú File puedes cambiar este nombre para guardar los resultados). 2.1. Abandonando el programa. Para salir del programa o para cerrar cualquier ventana basta con desplazar la flecha sobre el aspa que se encuentra en la esquina superior derecha de cada ventana y pulsar sobre el ratón. Si has estado realizando cálculos aparecerá una ventana que te preguntará si deseas guardar lo que has hecho. 3. Los primeros cálculos. Cuando introduces por primera vez algún carácter, el programa abre una celda (un corchete de color aparece a la derecha) y el cursor aparece en forma de lı́nea. Podemos introducir en esta celda cuantos cálculos deseemos que realice, cada vez que se introduce un cálculo damos a la tecla de retorno de carro: . Verás que con esta tecla no conseguimos que el programa nos dé el resultado. Puedes pulsar en medio de una expresión si ésta es demasiado larga. Esta tecla nos servirá para organizar las distintas expresiones una debajo de otra como en el siguiente ejemplo: Usa la tecla para ejecutar cálculo. Intro 3+5 7-4 9.4-0.5 un Podemos conseguir que el programa realice los cálculos introducidos en la celda de una las siguientes formas: • Pulsando la tecla gris Intro . • Pulsando simultáneamente las teclas de mayúscula (⇑) y retorno de carro ( ). Cuando ejecutamos los cálculos aparece en la celda de introducción de datos (Input) la marca In[1] y se crearán tantas celdas de resultados (Output) como cálculos se han pedido, cada una de ellas llevará la marca Out[· · ·]. Todas las celdas de Input y Output se agrupan en una nueva celda y una linea horizontal aparecerá tras esta celda de grupo. Si volvemos a introducir más cálculos el proceso se repite. Si un cálculo se retrasa se podrá observar que el corchete de la celda tiene doble linea y no podremos editarla hasta que el cálculo haya concluido. Todo cálculo puede ser abortado usando el menú desplegable elegir abortar evaluación. Kernel y Si deseamos volver a una celda de Input podemos hacerlo usando el ratón: basta con pulsar el botón izquierdo una vez elegido el lugar de inserción. También puedes usar los cursores. Práctica 1. Órdenes y funciones básicas 3 Todas las expresiones contenidas en una celda pueden ser usada posteriormente de la siguiente forma: Uso de una celda Input: Escribir In[n] (n es el número de la celda de Input). Uso de una celda Output: Escribir Out[n] o más fácilmente %n. Si queremos usar la última salida basta con escribir %. 3.1. Operaciones básicas. a+b. . . . . . . . . . . . . . . . . . . . a-b. . . . . . . . . . . . . . . . . . . . a*b ó a b . . . . . . . . . . . . . a/b. . . . . . . . . . . . . . . . . . . . a^b. . . . . . . . . . . . . . . . . . . . a a a a a más b menos b por b partido o divido por b elevado a b Para el producto entre un número y una variable no es necesario dejar ab es el nombre de espacios: 3a es 3 por a. una variable y no a Es necesario usar paréntesis para que el producto o cociente sea introducido por b 7−x adecuadamente. Por ejemplo, si deseamos introducir deberás escribir 7+x (7-x)/(7+x) No esperes que el programa te dé el resultado de dividir 4 entre 7 si introduces 4/7 ya que por defecto siempre realiza los cálculos de forma exacta. Basta con escribir 4./7 para entender que deseas cálculos aproximados. • Realiza los cálculos 4/7 y 4./7 y observa los resultados. Otra posibilidad es usar el comando N de cualquiera de las siguientes formas: expr//N: realiza los cálculos de expr de forma aproximada y con un número de decimales que tiene por defecto. N[expr]: idéntico al anterior. N[expr,n]: Da el resultado con n decimales. El número π se escribe Pi, el número e = 2.718281 . . . se escribe E y es I. Procura no usar estos nombres para variables. √ −1 • Usa el comando N para dar 100 decimales del número π. Expresiones algebraicas (por ejemplo, polinomios y cociente de polinomios) pueden ser simplificadas, desarrolladas o factorizadas con los siguientes comandos: Simplify[expr]: Simplifica la expresión expr aunque no siempre como esperamos. Expand[expr]: Desarrolla los paréntesis de la expresión expr. Factor[expr]: Saca factor común y factoriza la expresión expr. Práctica 1. Órdenes y funciones básicas 4 (y 2 + 2yz + z 2 )(y 2 − z 2 ) (y 3 − y 2 z − yz 2 + z 3 )(y + z) (procura usar los paréntesis necesarios). • Simplifica la expresión matemática • Factoriza el polinomio 2x5 − 11x4 + 15x3 + 5x2 − 17x + 6. Si escribimos detrás de una expresión que contiene, por ejemplo, la variable x la expresión /. x->3, el programa sustituye en la expresión x por 3. • Calcula el valor numérico del polinomio anterior cuando x = −2 • Calcula (2x + 3)4 − (2x + 1)4 + (x − 2)3 . 4. Las funciones matemáticas usuales. En la tabla I tienes las funciones más frecuentes, en ella puedes observar que todas comienzan con letra mayúscula y el argumento va entre corchetes. Ten en cuenta que el programa distingue entre minúsculas y mayúsculas. Si el nombre de una función o comando incluye varias palabras, éstas se escriben sin espacio y cada palabra comienza con mayúscula. Si cometes un error de este tipo el programa te avisará. ! → Recuerda que el argumento de las funciones trigonométricas debe estar en radianes. Con las funciones trigonométricas puedes usar el comando Simplify de un modo similar a como se hizo antes, pero si quieres que el programa te dé aquellas fórmulas trigonométricas que estudiaste debes usar TrigExpand • Simplifica la expresión trigonométrica cos(a − b) − cos(a + b) sen(a + b) + sen(a − b) En la siguiente, quizás tengas que usar tus conocimientos: • Sabiendo que tan(a + b) = 4 y tan a = −2, calcula tan(2b) y tan(a − b) Práctica 1. Órdenes y funciones básicas 5 Tabla I: Funciones matemáticas usuales. √ Sqrt[x] . . . . . . . . . . . . . . . x n! . . . . . . . . . . . . . . . . . . . . . n! Exp[x] . . . . . . . . . . . . . . . . ex Mod[m,n]. . . . . . . . . . . . . . resto de ! m entre n m Abs[x] . . . . . . . . . . . . . . . . |x| Binomial[m,n] . . . . . . . . n Sin[x] . . . . . . . . . . . . . . . . sen x Divisors[n] . . . . . . . . . . divisores de n Cos[x] . . . . . . . . . . . . . . . . cos x Prime[n]. . . . . . . . . . . . . . n-ésimo número primo Tan[x] . . . . . . . . . . . . . . . . tan x Floor[x]. . . . . . . . . . . . . . mayor entero menor que x Cot[x] . . . . . . . . . . . . . . . . cot x Sign[x] . . . . . . . . . . . . . . . signo de x ArcSin[x] . . . . . . . . . . . . arcsen x Abs[z] . . . . . . . . . . . . . . . . módulo de z ArcCos[x] . . . . . . . . . . . . arccos x Re[z] . . . . . . . . . . . . . . . . . parte real de z ArcTan[x] . . . . . . . . . . . . arctan x Im[z] . . . . . . . . . . . . . . . . . parte imaginaria de z Sec[x] . . . . . . . . . . . . . . . . sec x Arg[z] . . . . . . . . . . . . . . . . argumento de z Conjugate[z] . . . . . . . . . conjugado de z Csc[x] . . . . . . . . . . . . . . . . csc x 5. Definiendo variables. El nombre de una variable puede ser una o varias letras y distingue entre minúsculas y mayúsculas. Si defines una variable con un nombre parecido a otra variable, ya existente, el programa te avisará pero no te impide que lo hagas. Existen dos caminos para dar un valor a una variable y es muy importante que los distingas: Asignación directa: Usaremos para esto el signo = y la variable base=8 altura=7 area=base*altura La variable area tomará el valor 56. Hasta aquı́ parece lógico, pero si cambiamos el valor de las variables: base=10 altura=7 area El valor de la variable area sigue siendo 56 y su valor no se ve alterado por los cambios de las otras variables. Asignación diferida: Usaremos para esto el signo := y la variable tomará el valor asignado cuando sea usada. Si en el ejemplo anterior hubiéramos hecho base=8 altura=7 area:=base*altura Al cambiar el valor de base y de altura también cambiará el valor de area. Práctica 1. Órdenes y funciones básicas 6 Por todo ello si vas a asignar una constante a una variable usa = pero si vas asignar a una variable un valor que depende de otras usa :=. Para que una variable x deje de estar asignada basta con escribir x=. 6. Definiendo funciones. Con Mathematica puedes definir funciones de una o más variables como en el siguiente ejemplo (observa que usamos la asignación diferida y que las variables están entre corchetes seguidas de , el cual se obtiene con ⇑ y -): funcion[x ,y ]:=5x y/(x^2 + y^2 +1) x √ x • Define la función f (x) = 2πx y halla los valores aproximae dos de f (2)/2!, f (5)/5! y f (100)/100! con 10 decimales. Las funciones pueden representarse fácilmente: si es de una variable usamos el comando Plot y si la función es de dos variables usamos Plot3D. En ambos casos hemos de indicar el rango de las variables; por ejemplo, si queremos que dibuje la gráfica de f (x) = x sen x, para x entre -7 y 7, escribiremos Plot[ x Sin[x], {x,-7,7} ] La función de dos variables funcion[x,y] definida anteriormente puede representarse, para x entre -5 y 5 e y entre -4 y 7, de la siguiente forma: Plot3D[ funcion[x,y], {x,-5,5}, {y,-4,7} ] • Representa las anteriores funciones. • Usa la orden ContourPlot en vez de Plot3D para obtener un “plano”, con sus curvas de nivel, de la función funcion[x,y]. Si lo quieres en color añade, con una coma y después del rango de y la opción ColorFunction -> Hue En el siguiente ejemplo se define una sucesión o función por recurrencia: a[0]=1 a[1]=2 a[n ]:=4 a[n-1]-3 a[n-2] Puedes hacer que el programa guarde los valores calculados anteriormente de la siguiente forma (¿por qué?): a[n ]:=a[n]=4 a[n-1]-3 a[n-2] Procura hacerlo siempre ası́, te ahorrarás mucho tiempo. Práctica 1. Órdenes y funciones básicas 7 • Define por recurrencia la sucesión de Fibonacci 1, 1, 2, 3, 5,... sabiendo que esta sucesión tiene la propiedad de que cada término es la suma de los dos anteriores. Halla sus 10 primeros términos (no olvides poner después del argumento al definir la función). Podemos definir funciones más complicadas (por ejemplo las definidas a trozos) usando un comando muy sencillo llamado If. Su estructura es simple, tiene tres argumentos: el primero es un test y si el test resulta verdadero hace el segundo argumento y si es falso hace el tercero. Dentro del test puedes usar los siguientes sı́mbolos: igual distinto menor mayor menor o igual mayor o igual “y” lógico “o” lógico == != < > =< => && || Observa en el siguiente ejemplo cómo definimos la función ( f (x) = f[x ]:= If[ x2 si x < 1 3x − 2 si x ≥ 1 x<1, x^2, 3x-2 ] En el siguiente se define la función g(x) = 0 √ 1− x2 0 g[x ]:= If[ x<-1 || si x < −1 si − 1 ≤ x ≤ 1 si x > 1 x>1, 0, Sqrt[1-x^2] ] En el test aparece ||, el “o” lógico y se interpreta: si x<-1 o x>1 ... • Usa el comando Plot para representar las funciones anteriores f (x) y g(x). • Define una función llamada Fasta usando If y la función Mod (ver tabla I), tal que Fasta(n)=n/2 si n es par y Fasta(n)=3n+1 si n es impar. Usa esta función para definir una sucesión por recurrencia, llamada Ganda, tal que, comenzando por Ganda(0)=21, Ganda(n) nos dé el resultado de aplicar n veces la función Fasta al primer número Ganda(0). Hallar el menor número n tal que Ganda(n)=1. Cambia el valor de Ganda(0) y vuelve a contestar a esta pregunta. ¿Sea cual sea el valor de Ganda(0) existirá un n para el que Ganda(n)=1?. ¿Seguro?. Práctica 1. Órdenes y funciones básicas 8 • (OPTATIVA) ¿Podrı́as averiguar qué significan las asignaciones siguientes?. f[x,y]:=x^2-x y+2y g[x,y]=x^2- x y+2y h[x ,y ]=x^2- x y+2y ¿Definen variables?. ¿Funciones?. Haz las pruebas necesarias para contestar a estas preguntas. Práctica 1. Órdenes y funciones básicas 9 7. Listas. Para el programa Mathematica una lista es un conjunto ordenado de números, variables, expresiones, etc. escritas entre llaves y separados por comas. Por ejemplo, un vector es una lista de números {2.3,5,4.3,-7} El argumento de cualquier función matemática de la Tabla I puede ser una lista de valores. En el siguiente ejemplo el programa da una lista con la raı́z cuadrada de los números de la lista de entrada: Sqrt[{23,14,8,7,3}]//N También podemos usar con el comando Plot una lista de funciones para que sean representadas simultáneamente: Plot[ {3x-1, x^2, x^3-2x^2+7},{x,-5,6} ] Para generar una lista usamos el comando Table: Impares=Table[2n-1,{n,1,20}] {n,1,20} significa que n tomará los valores de 1 a 20. En realidad hubiera bastado con escribir {n,20} ya que el programa entiende que se quiere comenzar por 1. Si deseamos que tome del 1 al 20 de 3 en 3 bastarı́a con escribir {n,1,20,3}. • Usa Table para generar una lista con los cuadrados de los números enteros del 3 al 15 Con el comando ListPlot podemos representar una lista de puntos: ListaDePuntos={ {1,2}, {2,-3}, {5,-1}, {3,-2} } ListPlot[ ListaDePuntos ] Puedes unir cada punto con el siguiente, mediante un segmento usando PlotJoined->True: ListPlot[ ListaDePuntos, PlotJoined->True ] • Genera con Table una lista formada por los puntos {n, Prime[n]} para n de 1 a 20. Representa después esta lista de puntos. Si escribimos Impares[[7]] (observa los dobles corchetes) nos referimos al séptimo elemento de la lista. • Define una función llamada ProductoEscalar cuyos argumentos sean vector1 y vector2 (vectores de R3 ) y que dé el producto escalar de ambos vectores. Usala para hallar (1, −1, 2) · (4, −3, 1). Práctica 1. Órdenes y funciones básicas 10 Es posible sumar o multiplicar los elementos de una sucesión finita con los comandos Sum y Product. En el siguiente ejemplo puedes ver como se usan 20 13 X Y n n para hallar y 2+1 n 3 n=1 n=1 Sum[ n/(n^2+1),{n,1,20}] Product[ n/3, {n,1,13}] • Calcula la suma y producto anterior. notas complementarias Práctica 1. Órdenes y funciones básicas 11 —. Índice Asignación diferida, 6 Asignación directa, 6 ColorFunction, 7 ContourPlot, 7 Definición de funciones, 7 Expand, 4 Factor, 4 Funciones matemáticas, 5 If, 8 In, 3 Listas, 10 ListPlot, 10 N[ , ], 4 Operaciones básicas, 4 Out, 3 Plot, 7 Plot3D, 7 Product, 11 Recurrencia, 7 Simplify, 4 Sum, 11 Table, 10 Variable, 6 Vector, 10 12