Practica 1-Introducciona Mathematica PDF

Title Practica 1-Introducciona Mathematica
Author Jorge Blai Bellver
Course Matematicas I
Institution Universitat Politècnica de València
Pages 13
File Size 206.2 KB
File Type PDF
Total Downloads 7
Total Views 116

Summary

Introduccion a Mathematica...


Description

Pr´ actica 1. Introducci´ on a Mathematica La primera versi´on de Mathematica fue presentada el 23 de junio de 1988, siendo su autor Stephen Wolfram, desde entonces ha ido desarroll´andose de forma paulatina, hasta alcanzar la versi´on 10.1 hasta el momento. Las ´ultimas versiones del programa incorporan un editor de texto (bastante aceptable) a trav´es del manejo de “paletas” que facilitan el uso de sub´ındices y super´ındices y de la simbolog´ıa habitual en las f´ormulas y operaciones matem´aticas. Haga click con el rat´on sobre la expresi´on “Palettes” del men´ u de cabecera del programa y experimente sus posibilidades. Mathematica es un sistema de software de apoyo a la resoluci´on de problemas matem´ aticos en general, tanto desde el punto de vista simb´ olico, como num´erico. El programa tambi´en dispone de una potente herramienta para la construcci´on de gr´aficos matem´aticos en dos y tres dimensiones, que facilita la realizaci´on de brillantes presentaciones e ilustraciones. Finalmente, se destaca su completo lenguaje de programaci´on, (similar al C + ) que permite al usuario implementar sus propias ideas en lenguaje inform´atico, y ejecutarlas dentro del entorno global. En esta primera pr´actica el objetivo es realizar una iniciaci´ on al programa.

¿C´ omo escribir y ejecutar sentencias? Una vez dentro del programa se abrir´a ante nosotros una ventana de trabajo, llamada por defecto untitled-1. Aunque no aparezca el cursor en pantalla se puede empezar a escribir. Se comienza utilizando Mathematica como una simple calculadora: se teclea 2+3. Se observa que 2+3 aparece delimitado por un corchete azul, ubicado en el margen derecho de la ventana. El texto as´ı delimitado constituye una celda. Para ejecutar la suma escrita, 2+3, se pulsan simult´aneamente las techas shift y enter, con el cursor situado dentro de la celda, o, alternativamente, se pulsa la tecla intro del teclado num´ erico. Mathematica responde ubicando el resultado dentro de una nueva celda. Las celdas que definen las sentencias a ejecutar se denominan input. Las celdas de respuestas, output. Cada celda input se corresponde con su output, compartiendo ambos el mismo n´ umero de orden, durante la realizaci´on de la sesi´on de trabajo. Mathematica informa o advierte a trav´es de un mensaje en letras rojas, si durante la introducci´on de los inputs se ha cometido alguna errata o error de sintaxis. Para corregirlos, sit´ ue el cursor en el c Editor 

1

interior de la celda, pulsando el bot´ on izquierdo del rat´ on, reescriba las correcciones necesarias, y, finalmente, vuelva a ejecutar las nuevas sentencias. Se recomienda definir cada sentencia en una celda distinta, procesando su correspondiente output antes de continuar con la siguiente sentencia. De esta manera se detectan de forma inmediata los posibles errores cometidos.

¿C´ omo seleccionar celdas? Para seleccionar una celda, bien para ejecutar su contenido, bien para borrarla, bien para modificar tu texto, su formato, etc. haga click con el rat´ on sobre su corchete azul correspondiente, hasta conseguir que aparezca en negativo. Esta acci´ on puede ampliarse a varias celdas a la vez mediante la utilizaci´on de la tecla shift, como se hace habitualmente en el entorno de Wndows.

¿C´ omo borrar celdas? Para borrar una o varias celdas se deben seleccionar previamente, y pulsar la tecla supr. Tenga en cuenta que, aunque elimine una celda, si su contenido ha sido previamente procesado, sus correspondientes sentencias siguen activas.

¿C´ omo modificar el texto de una celda ya creada? Si se quiere modificar cualquier dato de una celda ya creada, basta que pique el rat´on sobre su texto, autom´aticamente aparecer´a el cursor, pudiendo ejecutarse cuantas modificaciones se quiera.

Realizaci´ on de operaciones aritm´ eticas En la siguiente Tabla se recoge la notaci´ on utilizada por Mathematica para las operaciones algebraicas.

Notaci´ on de las operaciones algebraicas

Notaci´ on Ejemplo

Suma + 8+5

Resta 8-5

Producto * ´o espacio 8*5 ´o 8 5

Divisi´ on / 8/5

Potenciaci´ on ˆ 2ˆ 10, 2ˆ (2/3)

Ra´ız cuadrada Sqrt[expresi´on] Sqrt[3]

Utilizaci´ on del par´ entesis Al realizar operaciones es importante tener en cuenta el uso de los par´entesis. Se utilizan para indicar la prioridad de las operaciones. Sin par´entesis, productos y divisiones tienen prioridad sobre sumas y restas; y potencias, sobre productos y divisiones. Por otra parte, las operaciones con la misma prioridad 2

c Joaqu´ın Moreno Flores 

se ejecutan en el mismo orden en el que han sido escritas. As´ı, si se quiere calcular la ra´ız de 9, ser´ıa incorrecto1 : In[]:= 9ˆ1/2 Out[]:= 9/2 Al no haber par´entesis, primero eleva nueve a uno y despu´es lo divide por dos. Lo correcto ser´ıa: In[]:= 9ˆ(1/2) Out[]:= 3 Si se quiere dividir dieciocho entre dos por tres, igualmente ser´ıa incorrecto: In[]:= 18/2 3 Out[]:= 27 Lo correcto ser´ıa: In[]:= 18/(2 3) Out[]:= 3 1

En la realizaci´on de los ejercios anteriores puede escribirse 9 2 en lugar de 9 ˆ(1/2), utilizando la opci´on “Palettes” del men´ u de cabecera. Dentro de las alternativas desplegadas en “Palettes” active “Basic Math Assistant”. Luego, en el sitio titulado “Typesetting”, que aparece en pantalla sobre una nueva ventana, haga click sobre los iconos que representan, por medio de cuadrados, las estructuras de una potencia y de un quebrado, respectivamente. Escriba cada n´ umero en su cuadrado correspondiente. El resultado es: 1

In[]:= 9 2 Out[]:= 3

Los N´ umeros Mathematica trabaja con los n´ umeros enteros y fraccionarios de forma exacta, por defecto, evitando su expresi´on decimal aproximada en forma de potencias de 10. As´ı, por ejemplo, si se ejecuta 2100 ´o (2/3)100 , Mathematica devolver´a el resultado con todas las cifras exactas: In[]:= 2ˆ100 Out[]:= 1267650600228229401496703205376 y: In[]:= (2/3)ˆ100 Out[]:=

1267650600229401496703205376 515377520732011331036461129765621272702107522001

Si, por el contrario, se quiere una respuesta aproximada se utiliza el la sentencia N, con la sintaxis: N [2100 ] y N [(2/3)100 ] 1

Los caracteres en azul no ha de introducirlos el usuario, los genera autom´a ticamente el programa numer´andolos de forma consecutiva para organizar la sesi´ on.

c Joaqu´ın Moreno Flores 

3

o: 2100 //N ; (2/3)100 //N o, sin el comando N: 2.100 y (2./3.)100 Mathematica, por defecto, presenta seis d´ıgitos exactos: In[]:= N [2ˆ100] Out[]:= 1.26765 1030 y: In[]:= N [(2/3)ˆ100] Out[]:= 2.4596510−18 y: In[]:= 2ˆ100//N Out[]:= 1.26765 1030 o: In[]:= 2.ˆ100] Out[]:= 1.26765 1030 N´otese que, Mathematica lee 2 (sin punto) como un n´ umero entero exacto, y 2. (con punto) como un n´ umero decimal aproximado. Obs´ervese que Mathematica separa las cifras decimales con un punto. Si se necesitase un n´ umero, n, de d´ıgitos exactos (cont´andose tanto los enteros como los decimales), 100 se escribir´ıa N [2. , n] ´o N [(2./3.)100 , n]. Por ejemplo con n = 10: In[]:= N [2. ˆ100, 10] Out[]:= 1.2676506 1030 y: In[]:= N [(2./3.)ˆ100, 10] Out[]:= 2.459654427 10−18 La raz´on de que, en el primer caso, al pedir 10 cifras solo salgan ocho es que los ceros a la derecha no se consideran, como se observa, si se requieren 11 cifras en lugar de diez: In[]:= N [2. ˆ100, 11] Out[]:= 1.2676506002 1030 El n´ umero real e, en Mathematica se representa de forma simb´olica por E , si se quiere calcular num´ericamente se utiliza N[E] o´ N[E,n]. El n´ umero real π, en Mathematica se representa de forma simb´olica por Pi, si se quiere calcular num´ericamente se utiliza N[Pi] o N[Pi,n]. O sea: In[]:= N [P i, 30] Out[]:= 3,14159265358979323846264338328 4

c Joaqu´ın Moreno Flores 

y: In[]:= N [E, 30] Out[]:= 2,71828182845904523536028747135 Para representar n´ umeros complejos en Mathematica, se utilizan las mismas indicaciones vistas en los apartados anteriores, teniendo en cuenta que la unidad imaginaria se representa mediante el s´ımbolo I. As´ı, por ejemplo, para denotar el n´ umero complejo 2 + 3i, se escribe 2 + 3 I . No olvide del espacio entre 3 e I, ya que el espacio es el s´ımbolo asociado a la operaci´ on de multiplicar. Son interesantes los siguientes comandos en relaci´ on con los complejos: 1. Re[z]: Devuelve la parte real del n´ umero complejo z. 2. Im[z]: Devuelve la parte imaginaria del n´ umero complejo z. 3. Abs[z]: Devuelve el m´odulo del n´ umero complejo z. 4. Arg[z]: Devuelve el argumento principal del n´ umero complejo z. 5. Conjugate[z]: Devuelve el conjugado del n´ umero complejo z. Si se quiere calcular las ra´ıces en´esimas de un n´ umero real o complejo, z, se utiliza la sentencia: N Solve[xn == z, x] Vea los siguientes ejemplos: Se define el n´ umero complejo z : In[]:= z = 2 + 3I Out[]:= 2 + 3I Se calcula su parte real: In[]:= Re[z] Out[]:= 2 Se calcula su parte imaginaria: In[]:= Im[z] Out[]:= 3 Se calcula su argumento: In[]:= Arg [z]//N Out[]:= 0,982794 Se calcula su m´odulo: In[]:= Abs[z]//N Out[]:= 3,60555 Y, finalmente, su conjugado: c Joaqu´ın Moreno Flores 

5

In[]:= Conjugate[z] Out[]:= 2 − 3I Para calcular, por ejemplo, las ra´ıces cuartas de (-1): In[]:= N Solve[x4 == −1, x] {{x− > 0,70710 + 0,70710I}, {x− > −0,70710 + 0,70710I}, Out[]:= {x− > −0,70710 − 0,70710I}, {x− > 0,70710 − 0,70710I}}

Los comandos %, y %n Se debe tener en cuenta que con el s´ımbolo % se hace referencia al output anterior al actual, y con %n al output en´esimo. Por ejemplo, si el output n´ umero 20 de nuestra sesi´on de trabajo es: 2100 , entonces tecleando %20+18, Mathematica devuelve el resultado de operar 2100 + 18. As´ı se tendr´ıa: In[]:= %20 + 18 Out[]:= 1267650600228229401496703205394 o: In[]:= %20/2 Out[]:= 633825300114114700748351602697

El factorial y los n´ umeros combinatorios La sentencia Binomial[m,n] ejecuta las combinaciones de m elementos tomados de n en n. Y la sentencia: n! ejecuta el factorial del n´ umero entero n, seg´ un se ilustra en los ejemplos: In[]:= 50! Out[]:= 30414093201713378043612608166064768844377641568960512000000000000 y: In[]:= Binomial[5, 3] Out[]:= 10

Desarrollo y simplificaci´ on de expresiones matem´ aticas Mathematica permite desarrollar las potencias o productos mediante el comando Expand. Como por ejemplo: In[]:= Expand[(a + b)4 ] Out[]:= a4 + 4a3 b + 6a2 b2 + 4ab3 + b4 o: In[]:= Expand [(a2 + b) (c + d 2 )] Out[]:= a2 c + bc + a2 d 2 + bd 2 6

c Joaqu´ın Moreno Flores 

O el efecto contrario, mediante el comando Factor: In[]:= F actor[6 − 5x − 2x2 + x3 ] Out[]:= (−3 + x) (−1 + x) (2 + x) El comando Simplify simplifica expresiones de la manera siguiente: In[]:= Simplif y[a4 + 4a3 b + 6a2 b2 + 4ab3 + b4 ] Out[]:= (a + b)4 o: In[]:= (−6 + 11x − 3x2 − 3x3 + x4 )/(−3 + 7x − 5x2 + x3 )] Out[]:= 2 + x Finalmente, se consideran los comandos Apart, que descompone en fracciones simples una funci´on racional, y Together que suma funciones raciones reduci´endolas a com´ un denominador: In[]:= Apart[(4x + x2 − 5x3 + 2x4 )/((−2 + x)2 (−1 + x)2 (1 + x))] Out[]:= 4/(3(−2 + x)2 ) + 8/(9(−2 + x)) + 1/(−1 + x)2 + 1/(−1 + x) + 1/(9(1 + x)) y: In[]:= T ogether[4/(3(−2 + x)2 ) + 8/(9(−2 + x)) + 1/(−1 + x)2 + 1/(−1 + x) + 1/(9(1 + x))] Out[]:= (4x + x2 − 5x3 + 2x4 )/((−2 + x)2 (−1 + x)2 (1 + x))

Operadores l´ ogicos en Matematica Mathematica atribuye a las igualdades y desigualdades los valores l´ogicos True y False, seg´ un sean verdaderas o falsas. As´ı por ejemplo si se eval´ ua 5 < 4, Mathematica responder´ a en el output corresIgualdades y desigualdades en Mathematica Notaci´ on

menor <

menor o igual

mayor o igual >=

igualdad =, :=, ==

distinto !=

pondiente: False. Y si se ejecuta 5 > 4, Mathematica responder´a: True, lo mismo podr´ıa decirse del resto de los operadores indicados en la tabla. El operador igualdad merece un comentario especial: “=”, se utiliza para asignar un valor determinado a una constante. Por ejemplo a = 6, asigna a la constante “a” el valor fijo 6, pero no da una respuesta l´ogica en t´erminos de True o False. Sin embargo, si posteriormente se eval´ ua la expresi´on a == 5, el output correspondiente responder´a False. Y si se ejecuta la expresi´on a == 6, el output correspondiente responder´a True. Por tanto, Mathematica atribuye a la doble igualdad “==” un valor l´ogico. Si a continuaci´on escribimos a = 7, Mathematica asignar´a a la constante “a” el nuevo valor 7, borrando el anterior a = 6. Vea las siguientes ilustraciones: In[]:= a = 6 Out[]:= 6 c Joaqu´ın Moreno Flores 

7

y: In[]:= a == 7 Out[]:= F alse y: In[]:= a > 7 Out[]:= F alse y: In[]:= a < 7 Out[]:= T rue y: In[]:= a! = 1 Out[]:= T rue y: In[]:= a = 7 Out[]:= 7 A partir de esta u ´ltima sentencia, durante toda la sesi´on, si no se vuelve a cambiar la asignaci´on, la constante a valdr´a 7. Finalmente el comando “:=” permite definir constantes y funciones, no atribuy´endoles un valor fijo como en el caso de “=”, sino que su valor variar´a seg´ un los par´ametros de los que dependa la constante a en su definici´on previa. Para ilustrar la diferencia entre = y := se pone el siguiente ejemplo: In[]:=k = 8; No hay output, el punto y coma evita su impresi´on. Un truco para ahorrar espacio en la pantalla. In[]:=a := 2 k No hay output. El comando “:=” no genera output. Se valora a: In[]:= a Out[]:= 16 Se introduce un nuevo valor para la constante k: In[]:=k = 9; Se vuelve a valorar a: In[]:= a Out[]:= 18 Mathematica actualiza el valor de a en funci´on del nuevo valor de la constante k. A continuaci´on se borra la constante a, mediante la utilizaci´ on de la sentencia Clear: 8

c Joaqu´ın Moreno Flores 

In[]:=Clear[a] Se define nuevamente a utilizando “=” en vez de “:=” In[]:= a = 2 k Out[]:= 18 se asigna un nuevo valor a k : In[]:=k = 5; Se vuelve a valorar a: In[]:= a Out[]:= 18 En este caso no se actualiza el valor de a seg´ un el nuevo valor de la constante k, que es cinco. Las sentencias correspondientes a las operaciones l´ogicas se especifican en la Tabla 3. Operadores l´ogicos en Mathematica Proposici´on l´ogica Notaci´ on

Conjunci´on Disyunci´ on Negaci´ on && ´o And[.,.] k u ´ Or[.,.] Not[] ´o ! Implicaci´ on If[Condici´on, valor si la condici´on es verdadera, valor si la condici´on es falsa ]

En el siguiente ejemplo se define a, seg´ un el valor que tome k, utilizando el comando implicaci´on If: In[]:=k = 7 Se define a igual a 1, si k toma los valores 5 o 6, y 0 en caso contrario2 : In[]:= a = If [k == 6||k == 5, 1, 0] Out[]:= 0

Funciones elementales Log[x] Tan[x] Sec[x] ArcCsc[x]

Exp[x] ArcSin[x] Csc[x] ArcCot[x]

Sin[x] ArcCos[x] Cot[x] Sinh[x]

Cos[x] ArcTan[x] ArcSec[x] Cosh[x]

Tanh[x] Sech[x] ArcSinh[x] Abs[x] Csch[x] Coth[x] Sign[x]

2

Para imprimir en pantalla el s´ımbolo “| ” hay que pulsar simult´ a neamente las teclas Alt y la correspondiente al n´ umero 1.

c Joaqu´ın Moreno Flores 

9

Definici´ on de funciones elementales La Tabla 4 explica como se definen en Mathematica las diferentes funciones elementales. Para obtener valores num´ericos de estas funciones, se debe escribir, por ejemplo: Log[2.] o´ N[Log[2.],10]. Donde el comando N[expr.] tiene el significado visto con anterioridad. Si se quieren valorar las funciones trigonom´etricas en grados, se ha de utilizar el comando Degree, que es el factor de conversi´on, con la siguiente sintaxis: In[]:= Sin[90 Degree] Out[]:= 1

Las matrices en Mathematica El concepto de lista en Mathematica En Mathematica cualquier objeto de la forma {e1 , e2 , ..., en } se denomina lista, siendo un recurso muy utilizado en el programa. Cada uno de sus elementos ei , 1 ≤ i ≤ n, pueden representar tanto n´ umeros como s´ımbolos, seg´ un se ir´a viendo a lo largo de este manual. Se comienza por la forma m´as sencilla de generar listas. Esto es mediante el comando Table[expr,{i,min,max}], donde expr depende del contador i. Hecho esto el programa devuelve una lista con los valores que toma expr para cada uno de los valores de i, desde min hasta max. As´ı: In[]:= T able[2 i, {i, 1, 10}] Out[]:= {2, 4, 6, 8, 10, 12, 14, 16, 18, 20} A las listas, pueden asign´arseles nombres: In[]:= Lista1 = T able[2 i + 1, {i, 0, 10}] Out[]:= {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21} Se pueden sumar sus elemenos, utilizando la sintaxis Apply[Plus,Lista], que devuelve la suma de todos los elementos de Lista. O sea: In[]:= Apply[P lus, Lista1] Out[]:= 121 Tambi´en pueden multiplicarse, mediante Apply[Times,Lista]: In[]:= Apply[T imes, Lista1] Out[]:= 13749310575 En realidad, Apply es una extructura que puede aplicarse a cualquier funci´on, f , no solo a Plus y Times. El comando: Apply[f,Lista], toma los elementos de Lista como variables de la funci´ on f , proporcionando el resultado correspondiente. L´ogicamente, f , ha sido previamente definida. Como f ha de ser una funci´on de tantas variables como elementos tenga la lista Lista, se ver´an ejemplos en su momento, en la pr´actica de funciones de varias variables. 10

c Joaqu´ın Moreno Flores 

A veces resulta u ´ltil aplicar una funci´on a cada uno de los elementos de una lista, mediante la extructura Map[f,Lista], que calcula los valores que toma la funci´on f para cada uno de los componentes de Lista. V´ease, por ejemplo: In[]:= M ap[Sin, Lista1] {Sin[1], Sin[3], Sin[5], Sin[7], Sin[9], Sin[11], Out[]:= Sin[13], Sin[15], Sin[17], Sin[19], Sin[21]} Cuyos valores num´ericos son: In[]:= N [ %] {0.841471, 0.14112, −0.958924, Out[]:= 0.656987, 0.412118, −0.99999, 0.420167, 0.650288, −0.961397, 0.149877, 0.836656} Si se quieren ordenar de menor a mayor los elementos de una lista se utiliza el comando Sort: In[]:= Sort[ %] {−0.99999, −0.961397, −0.958924, Out[]:= 0.14112, 0.149877, 0.412118, 0.420167, 0.650288, 0.656987, 0.836656, 0.841471} produciendo Reverse el ordenamiento contrario. El comando Count[Lista,e], cuenta las veces que aparece el elemento e en la lista Lista: In[]:= Count[{a, a, a, 1, 2, 5}, a] Out[]:= 3

Operaciones con Matrices Las matrices en Mathematica son listas de listas. Por ejemplo, la matriz A, dada por:   1 3 −1 A =  1 −2 1  2 −1 1

(1)

se introduce de la forma: In[]:=A = {{1, 3, −1}, {1, −2, 1}, {2, −1, 1}}; La matriz se escribe por filas. Cada fila va encerrada entre llaves. Los elementos de cada fila se separan con comas. A su vez, las filas se separan entre s´ı tambi´en por comas. El comienzo y el final de la matriz se delimitan mediante sendas llaves. Una vez introducidas las matrices, se puede operar con ellas como se explica a continuaci´on. Dadas las matrices P y Q:     1 0 2 0 2 −1 P =  −1 2 3  , Q =  0 −2 3  0 0 2 6 −1 5 Se introduce P : In[]:=P = {{1, 0, 2}, {−1, 2, 3}, {0, 0, 2}}; c Joaqu´ın Moreno Flores 

11

Se introduce Q: In[]:=Q = {{0, 2, −1}, {0, −2, 3}, {6, −1, 5}}; Su suma y su producto se realizan con la sintaxis: In[]:= P + Q Out[]:= {{1, 2, 1}, {−1, 0, 6}, {6, −1, 7}} In[]:= P.Q Out[]:= {{12, 0, 9}, {18, −9, 22}, {12, −2, 10}} (el punto del producto es el ortogr´afico). El producto de una matriz por un n´ umero: In[]:= 5 P Out[]:= {{5, 0, 10}, {−5, 10, 15}, {0, 0, 10}} N´otese que se deja un espacio entre el n´ umero 5 y la matriz P , que simboliza el producto. Otros comandos de inter´es respecto de las operaciones con matrices son: IdentityMatrix[n] Calcula la matriz identidad de orden n. As´ı: In[]:= IdentityM atrix[3] Out[]:= {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} Inverse[A] Calcula la inversa de la matriz A. Por ejemplo, la inversa de la matriz P , anteriormente definida, es: In[]:= Inverse[P ]     Out[]:= {{1, 0, −1}, 12 , 21 , − 45 , 0, 0, 12 Transpose[A] Calcula la matriz transpuesta de A. Aplicado a P , es: In[]:= T ranspose[P ] Out[]:= {{1, −1, 0}, {0, 2, 0}, {2, 3, 2}} Det[A] Calcula el determinante de la matriz A. Aplicado a P , es: In[]:= Det[P ] Out[]:= 4.


Similar Free PDFs