Story Transcript
` DEPARTAMENT DE MATEMATIQUES UNIVERSITAT JAUME I
FUNDAMENTOS ´ MATEMATICOS DE LA INGENIER´IA Pr´acticas de Laboratorio con Mathematica
Cristina Chiralt Fernando Casas Jorge Galindo Sergio Macario Manuel Sanchis
Prefacio El presente manual est´ a destinado a la realizaci´on de las pr´acticas de laboratorio correspondientes a las asignaturas de Fundamentos Matem´ aticos de la Ingenier´ıa I y II de la Ingenier´ıa Industrial en la Universitat Jaume I. Cada una de ellas tiene asignado 1 cr´edito (equivalente a 10 horas lectivas) dedicado a la realizaci´on de pr´acticas con el ordenador. Esas 10 horas se reparten en cuatro sesiones de 2.5 horas cada una, a raz´ on de dos sesiones en cada cuatrimestre. Las pr´acticas se desarrollan utilizando el programa Mathematica, y el objetivo de las mismas es doble. Por una parte, se trata de afianzar e ilustrar la materia impartida en el aula (clases de teor´ıa y de problemas) y por otra de cubrir aquellos aspectos del programa que dif´ıcilmente pueden desarrollarse durante dichas clases, como es todo lo relativo al c´alculo num´erico. En este sentido, se ha considerado importante dedicar una sesi´on entera a los aspectos gr´ aficos que el programa Mathematica ofrece. El manual se ha dividido en ocho cap´ıtulos o pr´acticas, cada uno de los cuales corresponde aproximadamente al material impartido en cada sesi´on de 2.5 horas. Como complemento, se ha incluido un ap´endice con material relativo a ecuaciones diferenciales no lineales, haciendo especial hincapi´e en los aspectos cualitativos de la teor´ıa. Este cap´ıtulo adicional se incluye por completitud y tambi´en porque puede darse el caso de que la primera pr´ actica (una introducci´on gen´erica a Mathematica) pueda reducirse al m´ınimo si los estudiantes ya disponen de conocimientos previos sobre el programa. Cada pr´ actica dispone de una peque˜ na introducci´on te´orica, siendo ´esta m´as amplia cuando el material tratado en la misma no se ha impartido previamente en el aula de teor´ıa. Esto es especialmente relevante en el caso de la pr´actica 4 (interpolaci´ on y aproximaci´ on de funciones) y la pr´actica 5 (integraci´on num´erica). Se ha intentado que el desarrollo de cada pr´actica est´e suficientemente detallado en los c´alculos y pasos intermedios, puesto que el objetivo es que el estudiante entienda cabalmente todo el proceso, as´ı como representar gr´aficamente los resultados, para que la asimilaci´ on de los conceptos sea m´as sencilla. Esperamos que este manual sea una herramienta u ´til para nuestros estudiantes en su proceso de aprendizaje de los Fundamentos Matem´ aticos de la Ingenier´ıa.
Los autores
´Indice general 1. Introducci´ on a Mathematica 1.1. Convenios sobre notaci´ on . . . . . . . 1.2. El Front End y el N´ ucleo . . . . . . . 1.3. Notaci´ on matem´ atica de Mathematica 1.4. Corchetes, par´entesis y llaves . . . . . 1.5. Funciones incorporadas . . . . . . . . 1.6. Definiendo funciones no incorporadas . 1.7. Listas y matrices . . . . . . . . . . . . 1.8. Resoluci´ on de ecuaciones . . . . . . . . 1.9. Reglas de sustituci´ on . . . . . . . . . . 1.10. Ayudas incorporadas . . . . . . . . . . 1.11. Ejercicios . . . . . . . . . . . . . . . .
. . . . . . . . . . .
1 1 2 3 6 6 8 9 12 13 13 15
´ 2. Algebra Lineal 2.1. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. C´ onicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 16 19 21
3. Gr´ aficas en dos y tres dimensiones 3.1. Gr´ aficas en dos dimensiones . . . . . . . . . . . . . . . 3.1.1. Gr´ aficas en coordenadas cartesianas . . . . . . 3.1.2. Gr´ aficas en coordenadas polares . . . . . . . . 3.1.3. Gr´ aficas de funciones impl´ıcitas . . . . . . . . . 3.2. Gr´ aficas en tres dimensiones . . . . . . . . . . . . . . . 3.2.1. Gr´ aficas 3D en coordenadas cartesianas . . . . 3.3. Animaci´ on de gr´ aficos . . . . . . . . . . . . . . . . . . 3.4. Gr´ aficas bidimensionales en coordenadas param´etricas
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
28 28 28 32 33 35 35 37 38
4. Interpolaci´ on y aproximaci´ on de funciones 4.1. Polinomio interpolador de Lagrange . . . . 4.2. Polinomio interpolador de Newton . . . . . 4.3. Cota de error en la interpolaci´on . . . . . . 4.3.1. El efecto Runge . . . . . . . . . . . . 4.4. Interpolaci´ on con un splin c´ ubico . . . . . . 4.5. Ejercicios . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
42 42 44 45 46 46 49
i
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . .
. . . . . . . . . . .
. . . . . .
. . . . . . . . . . .
. . . . . .
. . . . . . . . . . .
. . . . . .
. . . . . . . . . . .
. . . . . .
. . . . . . . . . . .
. . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
Fundamentos Matem´ aticos de la Ingenier´ıa II
5. Integraci´ on num´ erica 5.1. Reglas de cuadratura . . . . . . . . . . . . . . . . 5.2. Obtenci´ on de reglas de cuadratura . . . . . . . . 5.2.1. El m´etodo interpolatorio . . . . . . . . . . 5.2.2. El m´etodo de coeficientes indeterminados 5.3. Error de cuadratura . . . . . . . . . . . . . . . . 5.4. Reglas compuestas . . . . . . . . . . . . . . . . . 5.4.1. Errores en las reglas compuestas . . . . . 5.5. Algoritmo de los m´etodos en Mathematica . . . . 5.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . .
ii
. . . . . . . . .
50 51 52 52 53 53 54 55 56 58
6. Sucesiones y series 6.1. Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Series de n´ umeros reales . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. Series de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60 60 64 67
7. Ecuaciones diferenciales con Mathematica 7.1. Tratamiento anal´ıtico . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1. Ecuaciones diferenciales de primer orden . . . . . . . . . . 7.1.2. Ecuaciones diferenciales lineales de segundo orden . . . . 7.1.3. Sistemas de ecuaciones diferenciales . . . . . . . . . . . . 7.2. M´etodos num´ericos para la resoluci´on de ecuaciones diferenciales 7.2.1. Resoluci´ on num´erica con Mathematica . . . . . . . . . . . 7.2.2. Algoritmo de los m´etodos num´ericos en Mathematica . . . 7.2.3. Sistemas de ecuaciones diferenciales . . . . . . . . . . . . 7.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74 74 74 79 82 86 88 89 91 93
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
8. Derivadas parciales. Extremos en funciones de varias variables 95 8.1. Derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 8.2. Extremos libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.3. Extremos condicionados. Multiplicadores de Lagrange . . . . . . . . 100 A. Sistemas de ecuaciones diferenciales no lineales 101 A.1. Estudio geom´etrico: campos de direcciones . . . . . . . . . . . . . . . 102 A.2. Estudio cualitativo. Retrato de fases . . . . . . . . . . . . . . . . . . 105 A.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Pr´ actica 1
Introducci´ on a Mathematica Mathematica es un sistema general de software usado para llevar a cabo c´alculos t´ecnicos en ciencia, ingenier´ıa, matem´aticas y ´areas computacionales. La primera versi´on fue anunciada en 1988, y la m´ as reciente hasta la fecha (la versi´on 7) fue lanzada el 18 de noviembre de 2008, encontr´andose disponible para una gran variedad de sistemas operativos. Aunque se considera com´ unmente como un sistema de ´algebra computacional, Mathematica es tambi´en un poderoso lenguaje de programaci´on de prop´osito general. El lenguaje de programaci´ on de Mathematica est´a basado en re-escritura de t´erminos (que se identifica tambi´en como computaci´on simb´olica), y soporta el uso de programaci´ on funcional y de procedimientos (aunque en general, la programaci´on funcional es m´ as eficiente). Est´ a implementado en una variante del lenguaje de programaci´ on C orientado a objetos, pero el grueso del extenso c´odigo de librer´ıas est´a en realidad escrito en el lenguaje Mathematica, que puede ser usado para extender el sistema algebraico. Usualmente, tambi´en es posible a˜ nadir nuevo c´odigo en forma de paquetes de Mathematica. Mathematica es un lenguaje interpretado, es decir, lee expresiones, eval´ ua el resultado y luego lo muestra en pantalla. Al ser interactivo, es m´as f´acil de usar que los lenguajes compilados como C o FORTRAN. Mathematica dispone de una gran cantidad de funciones ya definidas (funciones incorporadas) con las que se pueden cubrir los aspectos m´as generales de las ingenier´ıas. Adem´ as, como hemos comentado, Mathematica es programable; cualquier funci´on no disponible la puede escribir uno mismo.
1.1.
Convenios sobre notaci´ on
Para introducirnos en el lenguaje de Mathematica, en cada pr´actica veremos algunos ejemplos que muestran las posibilidades de este programa. Para comenzar con Mathematica es conveniente probar con los ejemplos propuestos. Las expresiones escritas en letra mecanografiada corresponden al input y se deben escribir tal y como aparecen en los ejemplos; las correspondientes al output no se tienen que escribir: es la respuesta de Mathematica. Las palabras y s´ımbolos escritos en cursiva se deben reemplazar por expresiones introducidas por el usuario.
1
En el siguiente ejemplo la expresi´on 2 + 2 corresponde al input, y por tanto se debe escribir tal y como aparece, mientras que la expresi´on 4 (de color m´as claro) corresponde al output, y no se debe escribir en pantalla. 2+2 4
En este otro ejemplo la expresi´ on ?+ corresponde al input y la respuesta de Mathematica no va precedida por Out[n] , puesto que es informaci´on y no un resultado propiamente dicho. ?+
x + y + z represents a sum of terms.
En el apartado 1.10 se explicar´ a el significado del s´ımbolo ? Hay que poner atenci´ on en la diferencia entre may´ usculas y min´ usculas, el tipo de par´entesis o llaves, la cantidad de espacios y la puntuaci´on (comas, puntos y comas). Mathematica diferencia entre may´ usculas y min´ usculas y, por tanto, Sin[x] es distinto de sin[x]. Los nombres de todas las funciones incorporadas empiezan con may´ uscula y tienen sus argumentos (variables) entre corchetes. Cada tipo de par´entesis tiene su propio significado. No se deben poner espacios en los nombres de las funciones y s´ı entre dos variables que deben ser multiplicadas. En los dem´as casos, los espacios no se tienen en cuenta. Al igual que con los tipos de par´entesis, cada signo de puntuaci´on tiene tambi´en su propio significado.
1.2.
El Front End y el N´ ucleo
Mathematica consta de dos partes: el Kernel (n´ ucleo) y el Front End (fachada). El Kernel realiza los c´ alculos y el Front End interacciona con el usuario. El Kernel trabaja de la misma forma sobre todo tipo de ordenadores que dispongan de la misma versi´on de Mathematica. El Front End, en cambio, es espec´ıfico de cada ordenador. El Kernel es un programa C muy extenso que lee los inputs y devuelve los outputs por medio de dos procesos: llama al c´odigo C para hacer los c´alculos y usa reglas de reescritura para dar los resultados en pantalla, cuando proceda. Sobre muchos ordenadores, el Front End para Mathematica dispone de documentos interactivos sofisticados llamados notebooks. Todos ellos presentan esencialmente la misma apariencia para el usuario. Estos documentos proporcionan facilidades para editar texto y para enviar los inputs al Kernel para su evaluaci´on. Adem´as, en
2
ellos se pueden incluir gr´ aficos. Los documentos realizados en un Front End tipo notebook se pueden imprimir tal y como aparecen en pantalla. El Front End y el Kernel est´ an separados. El Front End s´olo env´ıa un c´alculo al Kernel s´olo cuando as´ı se le ordena. Tal petici´on se efect´ ua mediante la combinaci´on de teclas Shift-Return (may´ usculas y retorno de carro)o mediante la tecla Intro del teclado num´erico. No es necesario que el Front End y el Kernel se encuentren instalados en el mismo ordenador. Por ejemplo, se puede utilizar la manejabilidad de un ordenador personal para editar los comandos en un Front End tipo notebook, y mandar a realizar los c´alculos a un Kernel instalado en una estaci´on de trabajo (kernel remoto). Por supuesto, los outputs aparecen en el ordenador personal de la misma forma que si el c´alculo lo hubiese realizado el Kernel instalado en dicho ordenador (kernel local). Para ello es preciso que los dos ordenadores est´en conectados por medio de una red.
1.3.
Notaci´ on matem´ atica de Mathematica
Mathematica es un programa interactivo. En las versiones de Mathematica que utilizaremos con Front End tipo Notebook, cuando introducimos una expresi´on, como por ejemplo una operaci´ on matem´atica, no ocurre nada. Al ejecutar esta expresi´on (cosa que en las versiones actuales puede hacerse presionando simult´aneamente Intro+ May´ usculas o la tecla de Intro del teclado num´erico) Mathematica la procesa, inserta In[n]:= despu´es de que Mathematica haya calculado el resultado y, si corresponde, muestra el resultado, con una etiqueta de la forma Out[n]= . A continuaci´on Mathematica muestra un nuevo indicador de input, y el ciclo comienza otra vez. El n´ umero comprendido entre corchetes se va incrementando al introducir nuevas expresiones. En ning´ un caso hay que introducir los indicadores In[n]:= y Out[n]= . En la primera expresi´ on a evaluar n = 1 . Es posible referirse a expresiones ya introducidas o a resultados ya obtenidos gracias a estos indicadores. Mathematica tiene incorporados la mayor´ıa de los s´ımbolos matem´aticos con los que se trabaja habitualmente. Entre ellos est´an las operaciones b´asicas: suma (+), diferencia (-), producto (*), divisi´ on (/) y potencia (^). Como se ha indicado en el apartado 1.1, los nombres de todas las funciones incorporadas de Mathematica empiezan con may´ uscula. Los nombres de las funciones incorporadas correspondientes a los s´ımbolos anteriores los podemos ver en la siguiente tabla. S´ımbolo matem´ atico + * / ^
Funci´on incorporada Plus Minus, Subtract Times Divide Power
Los s´ımbolos matem´ aticos y las funciones incorporadas asociadas, evidentemente, consiguen el mismo resultado; por ejemplo,
3
2+4 6 Plus@2, 4D 6
Una primera operaci´ on sencilla que podemos efectuar es 237 . 23 ^ 7 3 404 825 447
Para referirnos a este u ´ltimo resultado se utiliza el car´acter %. As´ı, %^2 nos de14 volver´a 23 . %^2 11 592 836 324 538 749 809
Utilizaci´ on de resultados obtenidos previamente ( %n): Se puede hacer referencia a un resultado anterior mediante uno o m´as signos de porcentaje; es decir, % se refiere al u ´ltimo resultado, % % al pen´ ultimo, y as´ı sucesivamente. Tambi´en nos podemos referir a un resultado concreto mediante %n, donde n es el n´ umero de la l´ınea de output. Conservaci´ on y p´ erdida de datos del Kernel: Mathematica conserva todos los datos de entrada y salida as´ı como el valor de todas las variables definidas en alg´ un momento de la sesi´ on. Si se escribe por ejemplo x = 2, en un Notebook, a partir de ese momento Mathematica identificar´a x con 2 (y producir´a errores si por ejemplo escribimos Solve[x+1==7,x]). Cuando se cierra el Kernel (lo que ocurre siempre al salir del programa, pero tambi´en se puede hacer sin salir utilizando Quit Kernel en la pesta˜ na Kernel ), se pierden los valores de las variables y ya no es posible referirse a los resultados anteriores mediante %n. Al combinar varios s´ımbolos matem´aticos en un mismo input se deben tener en cuenta los criterios de prioridad habituales entre ellos, que determinan el orden de evaluaci´on de la expresi´ on. 2 ^ 3 * 6 + H9 - 1L 4 50 2 ^ H3 * 6L + H9 - 1L 4 262 146 2^3 ´ 6 + 9 - 1 4 227 4
En este u ´ltimo ejemplo hemos utilizado las dos formas alternativas de indicar una multiplicaci´ on en Mathematica(mediante ∗ o bien dejando un espacio en blanco entre ellos1 ). 1
Mathematica 6 a˜ nade, entonces, el aspa.
4
En algunas ocasiones puede ser conveniente asignar un nombre a un resultado para ser utilizado despu´es. Esta asignaci´on permite trabajar con mayor comodidad que refiri´endonos al resultado mediante el n´ umero de la l´ınea de output. La expresi´on velocidadDeLaLuz = 300000 hace que Mathematica asocie el valor 300000 al nombre velocidadDeLaLuz (se entiende que las unidades son Km/s en el vac´ıo). velocidadDeLaLuz = 300 000 300 000
Una vez realizada la asignaci´ on, podemos referirnos al valor 300000 por su nombre y podemos, incluso, realizar operaciones usando la variable definida. velocidadDeLaLuz - 269 000 31 000
Una manera m´ as correcta de expresar este resultado con las unidades correspondientes puede ser la siguiente: velocidadDeLaLuz "Kms" - 269 000 "Kms" 31 000 Kms
L´ıneas y Celdas: Cada vez que llamamos al n´ ucleo para que procese las ´ordenes introducidas, Mathematica ejecuta todas las instrucciones agrupadas en la misma celda (el corchete que se ve en el extremo derecho del Notebook). Para a˜ nadir ´ordenes dentro de una celda (cuando se tiene un input demasiado largo, o se desea que ejecute varias ´ordenes sucesivamente) se puede continuar en sucesivas l´ıneas, basta pulsar Enter para descender una l´ınea sin cambiar de celda. Para cambiar de celda se utiliza la flecha ↓ del cursor. Hay que poner atenci´on en lo siguiente: si queremos truncar una l´ınea de input en una operaci´on matem´atica, por ejemplo una suma, debemos comenzar una nueva l´ınea despu´es del signo +, o bien, encerrar el input entre par´entesis. De esta forma obtenemos el resultado correcto: 7+4+ 5 16
De esta otra, Mathematica entiende que hemos introducido dos inputs: 7+4 +5 11 5
Abrir un par´entesis en la primera l´ınea y cerrarlo en la u ´ltima es una manera conveniente para realizar esa operaci´ on. H7 + 4 + 5L 16
5
1.4.
Corchetes, par´ entesis y llaves
Hay varias clases de “par´entesis” que se usan en Mathematica; algunos de ellos los hemos utilizado en los apartados anteriores. Cada clase de “par´entesis” tiene un significado diferente. Los par´entesis ( ) se usan para agrupar expresiones tal y como sucede en la notaci´on matem´ atica. Como se ha se˜ nalado en el apartado 1.3, los par´entesis determinan el orden de prioridad al evaluar una expresi´on. 1 + 2*3 7 H1 + 2L * 3 9
Los corchetes [ ] se usan para especificar los argumentos de una funci´on. En el apartado 1.10 ped´ıamos informaci´ on acerca de la funci´on Sin; esta funci´on requiere un u ´nico argumento: un n´ umero. El concepto de argumento ser´a aclarado en el apartado 1.5. Sin@Pi 2D 1 Sin@ID ä Sinh@1D
En este u ´ltimo ejemplo I representa el n´ umero imaginario
√ −1.
Las llaves se utilizan para definir conjuntos de elementos de forma similar a la utilizada en la notaci´ on matem´ atica para definir un conjunto por extensi´on. En notaci´on matem´ atica, el conjunto formado por los cinco primeros n´ umeros naturales se puede representar por {1, 2, 3, 4, 5}. En el lenguaje de Mathematica estas entidades (conjuntos de elementos definidos por extensi´on) se llaman listas y tambi´en se utilizan para definir vectores y matrices. Por u ´ltimo, el texto entre (* y *) no se eval´ ua. Estos par´entesis se utilizan para hacer comentarios en el notebook. v = 87, 3, -1< H* Aqui v es un vector *L 87, 3, -1<
1.5.
Funciones incorporadas
El Kernel de Mathematica reconoce m´as de 1100 funciones. Estas funciones se llaman funciones incorporadas (built-in functions). En los apartados anteriores hemos usado algunas de ellas: Sin, Plus, Pi, y otras han aparecido en el output: Sqrt, I, Sinh. Con el nombre gen´erico de funciones incorporadas se consideran: funciones, variables, constantes y opciones. Dentro del primer grupo estar´ıan Sin, Plus, Sqrt y Sinh; por una variable se entiende una funci´on como velocidadDeLaLuz (apartado 6
1.3); dentro de las constantes est´ an las funciones Pi y I; ejemplos de opciones los daremos m´ as adelante. Los nombres de las funciones incorporadas consisten en palabras inglesas completas o abreviaciones matem´ aticas est´andar, de forma que la primera letra de cada palabra se escribe con may´ uscula. Por ejemplo, para utilizar la funci´on arco-seno debemos escribir ArcSin, de modo que si queremos obtener arc sen 1/2, introducimos: ArcSin@1 2D Π 6
Las funciones propiamente dichas son el equivalente a las funciones que empleamos en matem´ aticas, en el sentido de que no tienen por qu´e tomar siempre un valor constante. La funci´ on trigonom´etrica sin(x) es una funci´on no constante; la letra x decimos que es su variable. En la notaci´on de Mathematica la funci´on seno hemos visto que se representa por Sin, de forma que cuando queremos calcular sin(π/2) escribimos Sin[Pi/2]. El concepto an´alogo al concepto matem´atico de variable en la terminolog´ıa de Mathematica es el t´ermino argumento. Evidentemente, no todas las funciones requieren un u ´nico argumento. Cuando una funci´on requiere m´ as de un argumento, estos van separados por comas. Aqu´ı calculamos la derivada de x2 : D@x ^ 2, xD 2x
Hay funciones que no requieren ning´ un argumento. La funci´on TimeUsed da el n´ umero total de segundos de tiempo de CPU usados hasta ese momento en la sesi´on de Mathematica. Hay que tener en cuenta que el resultado puede variar dependiendo en qu´e m´aquina se est´e usando Mathematica. TimeUsed@D 0.23
Si una funci´ on es invocada con m´as, o menos, argumentos de los requeridos Mathematica devuelve un mensaje de error y como output la expresi´on sin evaluar. Sin@2, 3D
Sin::argx : Sin called with 2 arguments; 1 argument is expected. Sin@2, 3D
Otras funciones, en cambio, pueden tener un n´ umero variable de argumentos. Plus@2, 5, -3, 7D 11
Existen funciones que pueden tomar un n´ umero de argumentos opcionales. Por ejemplo, la funci´ on Expand requiere un u ´nico argumento: una expresi´on. Expand@Hx ^ 2 + x + 1L ^ 2D 1 + 2 x + 3 x2 + 2 x3 + x4
7
En cambio la siguiente expresi´ on no puede expandirla: Expand@Sin@2 xDD Sin@2 xD
Esta funci´ on admite un argumento opcional, Trig -> True, que permite tratar las funciones trigonom´etricas como funciones racionales de exponenciales, y expandirlas de acuerdo con esto. Expand@Sin@2 xD, Trig ® TrueD 2 Cos@xD Sin@xD
La funci´ on incorporada Trig es un ejemplo de funci´on de las catalogadas como opciones. Las funciones de Mathematica tienen tambi´en una series de propiedades, al igual que sucede con las funciones matem´ aticas. Estas propiedades se denominan atributos. Al pedir informaci´ on adicional respecto a la funci´on Sin, adem´as de obtener informaci´on acerca de para qu´e sirve esta funci´on, Mathematica indica qu´e propiedades posee esa funci´ on. Se puede saber qu´e atributos tiene una funci´on a partir de la funci´on Attributes. Attributes@SinD 8Listable, NumericFunction, Protected<
Una funci´ on con el atributo Listable aplica la funci´on a cada elemento de una lista. Sin@80, Pi 6, Pi 4, Pi 3, Pi 2 2
El atributo Protected previene que sea modificada esa funci´on. Sin = 1
Set::wrsym : Symbol Sin is Protected. 1
1.6.
Definiendo funciones no incorporadas
Como se ha indicado en la introducci´on, Mathematica es programable y, por tanto, podemos a˜ nadir funciones a Mathematica. Un ejemplo muy sencillo es definir una funci´on que eleve al cuadrado su argumento. f@x_D = x ^ 2;
El car´acter _ (referido como blanco) en la parte de la izquierda es muy importante. No hay que poner un blanco en la parte de la derecha de la definici´on. Ahora, basta substituir la variable por un valor para obtener el resultado 8
f@2D 4
Una funci´ on puede tener m´ as de un argumento. Aqu´ı definimos la funci´on g(x, y) = xy y la evaluamos en (2, 3): g@x_, y_D = x y; g@2, 3D 6
Definici´ on aplazada de funciones: En ocasiones deseamos definir una funci´on o asignar un valor a una variable, pero no deseamos que la definici´on se procese de inmediato, sino cuando vaya a ser usada. En este caso el signo igual (=) debe ir precedido por dos puntos (:=). Veamos por ejemplo la diferencia entre la definici´on inmediata y aplazada de una funci´ on como f (x) = x2 , cuando previamente hemos definido x = 4. Con definici´ on inmediata: x = 8; f@x_D = x ^ 2; f@5D 64
Con definici´ on aplazada: x = 8; f@x_D := x ^ 2; f@5D 25
Son muchas las situaciones en las que podemos necesitar una definici´on aplazada. Por ejemplo, cuando definimos la funci´on factorial. factorial@0D = 1; factorial@x_D := x Factorial@x - 1D factorial@4D 24
1.7.
Listas y matrices
Una lista es un conjunto de datos (constantes, funciones, otras listas, etc.) dispuesto en la forma: {dato1, dato2, . . . ...} Las listas contituyen una de las estructuras m´as importantes de Mathematica. Hay que se˜ nalar que el concepto de lista en Mathematica es m´as extenso que el concepto matem´ atico de conjunto. Una lista puede tener elementos repetidos. 81, 2, 1, 3, 1, 4, 1, 5< 81, 2, 1, 3, 1, 4, 1, 5<
9
Como se ha se˜ nalado antes, los elementos de una lista no tienen por qu´e ser n´ umeros reales. 82, x + 1, 2 x ^ 2 + 3 x + 7< 92, 1 + x, 7 + 3 x + 2 x2 =
Los vectores y las matrices tambi´en se representan mediante listas. En el ejemplo anterior se ha dado un vector cuyas componentes son polinomios. Con una lista se pueden efectuar operaciones aritm´eticas b´asicas (elemento a elemento) o bien utilizarlas como argumento de una funci´on para obtener una lista de valores: 81, 2, 3< ^ 4 81, 16, 81<
Sin@80, Pi 6, Pi 4, Pi 3, Pi 2 2
Una matriz es una lista de listas. Cada uno de los elementos de esta lista es otra lista que representa los vectores fila de la matriz. As´ı, la matriz 0 −1 3 a= 7 2 −4 en el lenguaje de Mathematica se representa como a = 880, -1, 3