Está en la página 1de 25

Introduccion a mathematica.

nb

Introduccin a Mathematica
Mathematica es un paquete de software matemtico, de uso fcil y gran capacidad, que nos permitir realizar las operaciones necesarias para resolver problemas que ya se abordaron en su momento en las diferentes asignaturas de matemticas en cuatrimestres anteriores. En este primer apartado nos iniciaremos en el conocimiento bsico de las funciones ms importantes de Mathematica que nos sern imprescindibles para el posterior desarrollo de las prcticas de las diversas asignaturas. En cada prctica se har un estudio de los comandos especficos que son necesarios para el desarrollo de las mismas

1.- Estructura interna de Mathematica


Este paquete tiene una estructura que permite su utilizacin en diferentes entornos, Pc, Mac, Unix, etc. Para ello est dispuesto en dos partes fundamentales. El Kernel (motor de clculo ) y el Front End (Interfaz de comunicacin con el usuario). Cuando se comienza a utilizar el programa se activa el Front End con lo que se puede comenzar a introducir datos y expresiones. En el momento en que se desea realizar la primera operacin se activa el Kernel que es el mdulo que realiza el clculo. En el Kernel se encuentran introducidos los procedimientos de clculo relacionados con una gran cantidad de operaciones ( las ms habituales ). Sin embargo, dada la potencia de clculo del paquete, operaciones y procedimientos ms complejos se encuentran almacenados en diferentes Packages que deben ser activados antes de realizar los clculos con ese tipo de sentencias. En el entorno Windows en que nos movemos, el Front End est dispuesto de manera que todo el desarrollo realizado puede ser almacenado prcticamente como en un editor de texto y tiene adems todas las caractersticas de conectividad con otros paquetes que funcionen en el mismo entorno windows (OLE). Tambin, muchos de los comandos que ejecuta Mathematica han sido introducidos en ventanas grficas Palettes que permiten una ms rpida implementacin de las sentencias y evitan memorizar parte de los comandos utilizados. Todas estas caractersticas permiten un manejo sencillo y rpido de modo que, con una pequea introduccin a las funciones bsicas, al modo de introducir datos y la utilizacin de la ayuda, se puede manejar con soltura en un corto espacio de tiempo.

Introduccion a mathematica.nb

2.- Introduccin de datos y operaciones


Comenzar a trabajar con Mathematica es muy sencillo, basta con introducir la operacin que se desea realizar y pulsar las teclas Shift + Intro. As Mathematica realiza la operacin
In[1]:= Out[1]=

23 6

De este modo las operaciones quedan numeradas en el orden en que se van realizando, con lo que se pueden ir utilizando los resultados previos con solo indicar en que momento se obtuvieron. El resultado de la ltima operacin se puede recuperar utilizando el smbolo %, el penltimo mediante %% y en general el resultado de la k-sima operacin con el smbolo %k.Por tanto, la siguiente operacin hace referencia al resultado obtenido en la primera operacin
In[2]:= Out[2]=

H3 + 9L %1 2

En Mathematica el producto de dos factores se puede representar tanto por el asterisco como por un espacio en blanco. Es importante recordar que cuando se opera con variables no es lo mismo escribir x y que xy ya que Mathematica en el primer caso entiende x*y mientras que en el segundo considera una nueva variable llamada (xy). Las operaciones algebraicas comunes y el orden de evaluacin de los diferentes factores sigue el mismo criterio que cualquier lenguaje de programacin. En cualquier caso siempre se puede controlar la operacin que se realiza colocando parntesis.

3.- Precisin en el clculo


Mathemtica intenta siempre llegar al resultado ms aproximado en cada operacion que realiza y siempre que puede llega al resultado exacto. De este modo cuando se realiza el cociente de dos nmeros enteros matemtica da como resultado dicho cociente puesto que si sacara un nmero decimal perdera precisin.
In[3]:= Out[3]=

35 3 5

Introduccion a mathematica.nb

Lo mismo sucede cuando se realizan operaciones con variables. Siempre que no se pueda simplificar Mathematica presenta el valor que se ha introducido.
In[4]:=

Hx ^ 3 + 5L x ^ 2 5 + x3 x2

Out[4]=

En ocasiones puede interesar llegar a un resultado aproximado en vez de al resultado exacto, para hacerse una idea del orden de magnitud del resultado obtenido. Para ello se pueden aplicar tres mtodos a) Introducir alguno de los factores de la operacin que se desea realizar de forma aproximada. Para ello basta con poner en forma decimal algn factor. Ej: 10 = 10.0 ( con poner tan solo el punto decimal es suficiente)
In[5]:= Out[5]=

3. 5 0.6

b) Utilizar el comando N[ ]. Con este comando se puede obtener el resultado de forma aproximada e incluso indicar el nmero de decimales que se desea que aparezcan. Primero se introduce la operacin a realizar y separado con una coma el nmero de dgitos significativos.
In[6]:= Out[6]=

N@20 17, 5D 1.1765

c) Utilizar el comando N pero al final de la expresin que se desea evaluar de la siguiente manera expr //N ( Por defecto Mathematica presenta 6 dgitos significativos ).
In[7]:= Out[7]=

20 17 N 1.17647

4.- Comandos y variables predefinidas


Mathematica incorpora tanto sus propios comandos como algunas variables de uso muy frecuente de modo que la primera letra es siempre mayscula. Para evitar confusiones o errores entre las variables definidas por el usuario y las ya definidas por el programa se recomienda definir variables propias que comiencen por letras minsculas. Entre las variables definidas en el programa se encuentran Pi, E, I.

Introduccion a mathematica.nb

In[8]:= Out[8]=

N@PiD 3.14159 N@ED 2.71828 , H 1L

In[9]:= Out[9]=

In[10]:= Out[10]=

En cuanto a los comandos, todos ellos comienzan tambin con mayscula y adems el argumento que introducimos as como el resto de datos para el control de la operacin van entre corchetes. Comando[arg , control_1, control_2, . . . ]
In[11]:= Out[11]=

Cos@Pi 3D 1 2 Plot3D@Sin@x yD, 8x, 2, 2<, 8 y, 2, 2<D

In[12]:=

1 0.5 0 -0.5 -1 -2 2

1 -1 0 0 -1 2 -2

Out[12]=

SurfaceGraphics

4.1.- Funciones Matemticas Comunes


Las funciones matemticas ms comunmente utilizadas pueden introducirse directamente atendiendo al comando o tambin mediante las paletas que proporciona Mathematica. Para uitlizar estas Paletas basta con situarse en la barra superior en el comando File y en Palettes seleccionar la paleta Basic Calculations. En esta paleta aparecen tanto funciones como comandos muy utilizados. Por ejemplo, para indicar que se desea realizar una raiz cuadrada se puede utilizar el comando Sqrt[ ] !!!! o tambin se puede utilizar el icono correspondiente que aparece en la paleta en este caso basta

Introduccion a mathematica.nb

con rellenar el recuadro con la expresin que se desea evaluar. En esta paleta tambin aparecen funciones trigonometricas tanto directas como inversas Sin[ ArcCos[ ] , y las correspondientes expresiones Hiperblicas Cosh[ ], ArcTanh[ ]. Repasando esta paleta se pueden encontrar funciones como el factorial !, el entero mas cercano a x Round[x], etc. ],

Ejercicios de las seccines 2,3,4


- Utilice N para calcular p con 50 decimales. - Utilice N para ver a que entero se aproxima E p . A continuacin Ceiling[E p ]. - Calcule dos nmeros aleatorios con Random[ ] y a continuacin multiplquelos utilizar los comandos Floor[ E p ] y

5.- Listas
En muchas ocasiones es necesario utilizar datos que se encuentran relacionados entre si y que pueden ser todos ellos el argumento de una funcin. En esas ocasiones utilizamos listas para definir todos estos elementos. Una lista contiene elementos que se encuentran separados por comas de la siguiente manera:
In[13]:= Out[13]=

81, 3, 6, 9, 12<

81, 3, 6, 9, 12<

De este modo todos estos elementos se pueden utilizar como una nica variable.
In[14]:= Out[14]=

82, 8, 64, 512, 4096<

2^%

En una lista se pueden introducir elementos que no sean del mismo tipo, como valores numricos, variables, texto, etc. En estos casos deberemos referirnos a uno especficamente para poder realizar la operacin correspondiente. Para ello se considera la posicin que ocupa dicho elemento en la lista y se hace referencia a l de la siguiente manera:
In[15]:= Out[15]=

a = 82.4, x, 8 2, 6<, Pi< 82.4, x, 82, 6<, <

Una vez definida la lista pasamos a operar con los elementos de la misma. La expresin a[[i]] hace referencia al elemento i-esimo de la lista.

Introduccion a mathematica.nb

In[16]:= Out[16]=

3 a@@1DD 7.2 a@@2DD ^ 3 x3 Cos@a@@4DDD 1 2 a@@3DD 84, 12<

In[17]:= Out[17]=

In[18]:= Out[18]=

In[19]:= Out[19]=

El tercer elemento de la lista es a su vez una lista por lo que se puede hacer referencia al elemento en si, a[[3]], o a cada uno de los elementos que lo componen a[[3,1]] y a[[3,2]] pudiendo operar con ellos por separado
In[20]:=

a@@2DD ^ a@@3, 1DD

Out[20]=

x2 a@@2DD ^ a@@3, 2DD x6

In[21]:= Out[21]=

Este tipo de listas tienen gran aplicacin, para dar lmites de integracin, zonas donde se desea dibujar una funcin y fundamentalmente para el trabajo con matrices. Toda matriz se expresa como una lista, de modo que se puede definir un vector como una lista unidimensional {1,2,3}mientras que una matriz es una lista bidimensional {{1,3,5},{2,4,6}} (matriz 2x3). Mathematica cuando devuelve resultados tambin los devuelve en forma de lista, por ejemplo cuando proporciona las raices de un polinomio. Ejemplos:
In[22]:=

Plot@x ^ 2, 8x, 3, 3<D

Introduccion a mathematica.nb

8 6 4 2 -3 -2 -1
Out[22]=

Graphics Integrate@x ^ 2, 8x, 0, 2<D 8 3 a = 881, 3, 5<, 8 2, 4, 6<< 881, 3, 5<, 82, 4, 6<< MatrixForm@aD J 1 3 5 N 2 4 6

In[23]:= Out[23]=

In[24]:= Out[24]=

In[25]:=

Out[25]//MatrixForm=

In[26]:= Out[26]=

Chop@Solve @x ^ 3 + 2 x ^ 2 5 x 4 == 0, xD ND

88x 1.85577<, 8x 3.17741<, 8x 0.678363<<

Las operaciones 24 y 25 hacen referencia a operaciones con matrices. La 24 define una matriz de dos filas y tres columnas mientras que MatrixForm[ ] representa la Lista anterior en forma matricial. La ltima operacin calcula las raices de la ecuacin y devuelve una lista de tres listas cada una de ellas con un elemento ( una solucin de la ecuacin). Como veremos posteriormente, no ser necesario memorizar todo este tipo de comandos puesto que una de las herramientas ms tiles de Mathematica 3.0 (las paletas de comandos) nos permitir introducir estas sentencias de otra forma Utilizando el comando Table se pueden generar listas sin dar explcitamente cada uno de los elementos que la componen. Basta con indicar la expresin a travs de la que se genera y el nmero de elementos que la componen de la siguiente manera: Table[expresin,{i, min,max,paso}] donde la expresin es una expresin en la que i variar entre los valores mnimo y mximo especificados y considerando el paso indicado en la lista.
In[27]:= Out[27]=

8x2 , x4 , x6 , x8 <

Table@x ^ i, 8i, 2, 9, 2<D

Introduccion a mathematica.nb

Se pueden generar de esta manera listas de varias dimensiones, introduciendo en vez de una nica expresin una lista de expresiones
In[28]:= Out[28]=

Table@8E ^ Hj 2L, j 2 3<, 8 j, 3, 5<D 98 , 2<, 9


2

8 =, 9 3

10 == 3

Si no se indica el paso se considera que vale uno. De igual manera, si no se indica el valor mnimo se comienza desde uno
In[29]:= Out[29]=

81, 2, 3, 4<

Table@i, 8 i, 4<D

Asi como conseguimos listas dimensiones introduciendo varias expresiones,tambin se pueden conseguir listas de este tipo introduciendo varios ndices.
In[30]:= Out[30]=

883, 4, 5, 6<, 84, 5, 6, 7<, 85, 6, 7, 8<< MatrixForm@%D 3 4 5 6 i j j j 4 5 6 7 j j j k5 6 7 8 y z z z z z z {

Table@i + j, 8 i, 1, 3<, 8 j, 2, 5<D

In[31]:=

Out[31]//MatrixForm=

Se ha obtenido una matriz bidimensional en las columnas hacen referencia a todos distintos valores de j (2,3,4,5) mientras que las filas hacen referencia a los valores de i (1,2,3)

Ejercicios de la seccin 5
- Utilice Table para hacer una lista de cinco nueves - Utilice Table para hacer una lista conjunta de los cuadrados y los cubos de los numeros pares del uno al nueve - Utilice Table para crear una lista con las potencias de x de 2 a 9 con paso 3 - Seleccione de la lista anterior x5 y evalelo para x = 2 - Crear con el comando Table una matriz 3 x 2

6.- Funciones definidas por el usuario

Introduccion a mathematica.nb

En general los ejercicios que realizaremos con Mathematica no sern nicamente operaciones aritmticas sino que se necesitar utilizar funciones definidas por el usuario para realizar el anlisis de las mismas asi como para operar con elllas. Por ello se debe aprender a definir funciones de una o varias variables, as como evaluar las mismas para cualquier punto.

6.1.-Definicin de funciones
Para definir funciones, igual que cualquier otra variable definida por el usuario, se recomienda utilizar palabras que empiecen por minscula o letras minsculas, para evitar que las variables definidas por el usuario se confundan con variables o comandos propios de Mathematica. La definicin de funciones es muy sencilla basta con indicar la expresin correspondiente de la siguiente manera:
In[32]:=

f@x_ D := x ^ 3 + 2 x ^ 2 + 3 x + 5

Esta sentencia no da ningn resultado puesto que tan solo se trata de una definicin. Para ver que efectivamente la expresin que se ha introducido se corresponde con la deseada basta con preguntar cual es la funcin f que se ha definido, de la siguiente manera:
In[33]:=

?f Global`f f@x_D := x3 + 2 x2 + 3 x + 5

Es fundamental definir de esta manera las funciones, colocando como variable independiente la variable x_, este smbolo permite considerar la variable x como una variable global que puede ser tanto un valor numrico como una expresin en la que haya definidas otras variables
In[34]:= Out[34]=

f@y zD

5 + 3 Hy zL + 2 Hy zL2 + Hy zL3 f@3D 59

In[35]:= Out[35]=

Del mismo modo se pueden asignar valores a las variables de las funciones a travs de la expresin /. de la forma siguiente:
In[36]:=

f@xD . x > 3

Introduccion a mathematica.nb

10

Out[36]=

59 f@xD . x > u + v

In[37]:= Out[37]=

5 + 3 Hu + vL + 2 Hu + vL2 + Hu + vL3

El smbolo /. se puede considerar como "Tal que" de forma que la ltima operacin se puede traducir como: calcular cuanto vale f[x] tal que x=a+b. Lo mismo que se ha realizado para una funcin de una variable se podra reaizar para funciones de varias variables.
In[38]:=

m@x_, y_ D := x ^ 2 + 2 y x + 5 x + 2 m@x, yD . 8x > 2, y > 5< 36 m@x, yD . 8x > r s, y > t<

In[39]:= Out[39]=

In[40]:= Out[40]=

2 + 5 Hr sL + Hr sL2 + 2 Hr sL t

Las funciones que se han definido hasta el momento tienen un dominio que para las funciones polinmicas, por ejemplo, es todo el conjunto de los nmeros reales. Sin embargo se pueden definir tambin funciones a trozos, definiendo en cada caso en que dominio esta definida la funcin. Se pueden representar este tipo de funciones de tres formas distintas. 1.- Asignando sucesivamente los valores de la funcin en cada intervalo.
In[41]:=

g@x_ ; x < 2D := 3 x; g@x_ ; 2 <= x <= 2D := 6; g@x_ ; x > 2D := 3 x Plot@g@xD, 8x, 4, 4<, PlotRange > 80, 12<D

In[44]:=

12 10 8 6 4 2 -4
Out[44]=

-2

Graphics

Se ha definido la funcin g[x] dividida en tres trozos,x<-2 , -2<=x<=2 , x>2. Se puede definir la misma funcin con el comando Which:

Introduccion a mathematica.nb

11

In[45]:=

h@x_ D := Which@ x < 2, 3 x, 2 <= x <= 2, 6, x > 2, 3 xD Plot@h@xD, 8x, 4, 4<D

In[46]:=

12 11 10 9 8 7 -4
Out[46]=

-2

Graphics

En este caso se definen los intervalos y seguidos con comas los valores de la funcin en estos intervalos de la forma: Which[intervalo1, valor, intervalo2,valor,......] Por ltimo, otra forma de definir funciones a trozos es introduciendo el comando if
In[47]:=

j@x_ D := If@x < 3, 2, x 2D Plot@j@xD, 8x, 0, 6<D

In[48]:=

4 3.5 3 2.5 2 1.5 1


Out[48]=

Graphics

En este caso debido a la nomenclatura del comando If tan solo se pueden dividir en dos intervalos ya que se pueden asignar valores distintos en funcin de que se cumpla la condicin o no se cumpla. El comando If se define de la siguiente manera: If [condicin,expresin1,expresin2]. De esta manera si se cumple la condicin se ejecuta la expresin 1 y si no se cumple la expresin se ejecuta la expresin 2.

6.2.- Operando con expresiones algebraicas


Cuando se opera con expresiones algebraicas Mathematica proporciona el resultado exacto ( si puede conseguirlo ). Sin embargo las expresiones que se obtienen pueden parecer muy complejas puesto que en ese proceso el paquete no se preocupa de reducir al mximo la expresin. Por ello

Introduccion a mathematica.nb

12

siempre que las expresiones resulten complejas es muy til considerar el comando Simplify[ ] que simplifica al mximo la expresin con que se trabaja. Por ejemplo:
In[49]:= Out[49]=

x^3 + 3 x^2 + 3 x + 1 1 + 3 x + 3 x2 + x3 Simplify@%D H1 + xL3 1 x4 1

In[50]:= Out[50]=

In[51]:=

Out[51]=

1 H 2 ArcTan@xD + Log@ 1 + xD Log@1 + xDL 4 D@%, xD 1 1 1 2 N J 4 1 + x 1+x 1 + x2 Simplify@%D 1 1 + x4

In[52]:= Out[52]=

In[53]:= Out[53]=

En las tres ltimas operaciones se ha realizado una integral indefinida, a continuacin se ha realizado la derivada del resultado y por ltimo se ha simplificado la expresin En este ltimo ejemplo vemos como obtenemos el resultado inicial al derivar el resultado obtenido de la integral anterior, aunque si no hubieramos utilizado el comando Simplify[ ] resultara difcil darse cuenta de ello. Otra operacin que se puede realizar es la de obtener los factores de una expresin algebraica, muy til para obtener las raices de un polinomio, por ejemplo. Para ello se utiliza el comando Factor[ ]
In[54]:=

1 + 4 x + 6 x2 + 4 x3 + x4 + 12 y + 36 x y + 36 x2 y + 12 x3 y + 54 y2 + 108 x y2 + 54 x2 y2 + 108 y3 + 108 x y3 + 81 y4 1 + 4 x + 6 x2 + 4 x3 + x4 + 12 y + 36 x y + 36 x2 y + 12 x3 y + 54 y2 + 108 x y2 + 54 x2 y2 + 108 y3 + 108 x y3 + 81 y4 Factor@%D

Out[54]=

In[55]:= Out[55]=

H1 + x + 3 yL4

Introduccion a mathematica.nb

13

In[56]:=

Plot3D@%%, 8x, 5, 5<, 8y, 2, 2<D

4000 2000 0 -4

1 -2 0 2 0 -1 4 -2

Out[56]=

SurfaceGraphics

In[57]:=

<< Graphics`ImplicitPlot` ImplicitPlot@1 + x + 3 y == 0, 8x, 5, 5<D

In[58]:=

-4

1 0.5 -0.5 -2 -1 -1.5 -2

Out[58]=

Graphics

De este modo la representacin en dos dimensiones indica los puntos de corte de la superficie definida con el plano z=0 . Del mismo modo puede interesar en ocasiones obtener el desarrollo completo de una expresin algebraica que est simplificada. Para ello se utiliza le comando Expand[ ] como veremos en el siguiente ejemplo
In[59]:= Out[59]=

Hx ^ 2 + 1L ^ 2 Hx + 2L ^ 3 H2 + xL3 H1 + x2 L Expand@%D 8 + 12 x + 22 x2 + 25 x3 + 20 x4 + 14 x5 + 6 x6 + x7
2

In[60]:= Out[60]=

- Representar como f(x) la funcin ( x+2 )Hx - 1L2 Hx - 2L3

Ejercicios de la seccin 6

- Dibujar dicha funcin con el comando Plot entre x = -3 , x = 3

Introduccion a mathematica.nb

14

- Expandir la expresin de f(x) hasta obtener un polinomio de grado 6 en x - Aplicar la expresin Factor [ ] para llegar a la expresin de partida.

7.- Paletas
Una de las mejoras sustanciales de Mathematica 3.0 en cuanto a la comunicacin con el usuario es la presentacin de paletas que permiten introducir sentencias y realizar operaciones de forma ms sencilla. Para algunas sentencias de Mathematica como Sqrt[ ] ( Raiz Cuadrada ), Sum[ ] ( Sumatorio ), Product[ ] ( Producto ),etc. resulta complicado escribir en el notebook cual es la operacin que se desea realizar, mientras que con las paletas estas operaciones vienen representadas por sus smbolos matemticos por lo que basta con introducir los datos de la operacin para que sta se pueda llevar a cabo. Los smbolos que utilizan estas paletas para realizar las operaciones anteriores !!!! son: , = , = . Introduciendo en los recuadros los valores deseados se completa la sentencia con lo que se puede realizar la operacin. Basta con pulsar el tabulador para pasar de un recuadro a otro e ir llenando la sentencia completa.

En este sentido Mathematica 3.0 introduce ya como predefinidas una serie de paletas en las que se representan tanto comandos, como operaciones, caracteres, matrices,etc. Para ver todas ellas basta con activar en el menu File la palabra Palettes con lo que se puede ver todas las paletas predefinidas. Una de las aplicaciones mas comodas de las paletas es la definicin de matrices puesto que partiendo de matrices 2 x 2 que aparecen en la paleta se puede llegar a conseguir matrices de cualquier dimensin. Se aumenta el nmero de filas con el comando " Control + Intro" mientras que el nmero de columnas aumenta al pulsar "Control + ,"

8.- Grficos con Mathematica


Una herramienta de apoyo muy importante a la hora de resolver una gran cantidad de problemas matemticos ( sobre todo de una y dos variables ) es la representacin de funciones. De esta manera se pueden ver cuales son los extremos de una funcin, sus asntotas, etc. Mathematica dispone de una gran cantidad de comandos que permiten representar curvas y superfi-

Introduccion a mathematica.nb

15

cies. En este apartado se har una exposicin general de los comandos que se utilizarn posteriormente en las prcticas de las diferentes asignaturas. Debido a que la nomenclatura es exactamente igual se introducirn de forma conjunta las expresiones de dibujo en dos y tres variables.

8.1.- Plot, Plot3D


Estos comandos generan la funcin f en un recinto definido por el usuario. La forma de expresarlo es la siguiente: Plot[ f , {x,x_min,x_max}] Plot3D[f , {x,x_min,x_max},{y,y_min,y_max}] Ejemplos: Definimos previamente dos funciones, una de una variable y otra de dos variables y posteriormente las representamos.
In[61]:=

f@x_ D := Sin@xD + x ^ 2 2 g@x_, y_ D := x ^ 2 + y x 2 y

In[62]:=

A continuacin pasamos a representar ambas funciones


In[63]:=

Plot@f@xD, 8x, Pi, Pi<D

5 4 3 2 1 -3 -2 -1
Out[63]=

Graphics Plot3D@g@x, yD, 8x, 2, 2<, 8y, 2, 2<D

In[64]:=

10 5 0 -5 -2 2

2 1 -1 0 0 -1 1 2 -2

Introduccion a mathematica.nb

16

Out[64]=

SurfaceGraphics

Estos dos comandos permiten dibujar funciones de la forma y = f(x) o z = g(x,y). Por otro lado una grn cantidad de funciones no vienen representadas de forma explcita e incluso es imposible despejar una de las variables en funcin del resto. Por ello se necesita otra serie de comandos que nos permitan representar esas funciones. Las otras dos formas en que mas habitualmente se presentan las funciones son la forma paramtrica y la forma implcita. A continuacin veremos como se representan las funciones cuando viene definidas de esta manera.

8.2.- ParametricPlot, ParametricPlot3D


Estos comandos permiten representar funciones que vienen definidas a travs de parmetros. Una funcin de dos variables se representara de la siguiente manera: x = x(t) y = y(t)A medida que vara el parametro se obtienen puntos de la curva. Para el caso de tres dimensiones a travs de expresiones paramtricas se pueden representar tanto curvas como superficies. Una curva se representa de la siguiente manera: x = x(t) y = y(t)Variando t se obtiene una familia simplemente infinita de puntos ( una curva ) z = z(t) Para representar una superficie se necesitan dos parmetros, de forma que se obtiene una familia doblemente infinita de puntos que generan la superficie. La superficie se reptresenta de la siguiente manera: x=x( u,v) y=y( u,v) z=z( u,v) Vista esta introduccin podemos presentar la forma de utilizar los comandos ParametricPlot y ParametricPlot3D. ParametricPlot [{x,y},{t,t_min,t_max}] ParametricPlot3D[{x,y,z},{u,u_min,u_max},{v,v_min,v_max}]
In[65]:=

ParametricPlot@8Cos@5 tD, Sin@3 tD<, 8t, 0, 2 <D

Introduccion a mathematica.nb

17

1 0.5 -1 -0.5 -0.5 -1


Out[65]=

0.5

Graphics

La funcin representada es x=Cos[5*t],y=Sin[3*t]. Para el caso de ParametricPlot3D veremos un ejemplo de una curva y otro de una superficie.
In[66]:=

ParametricPlot3D@8Cos@5 tD, Sin@3 tD, Sin@tD<, 8t, 0, 2 <D

1 0.5 0 -0.5 -1 1 1 0.5 0 -0.5 -1 -1 -0.5

0.5

Out[66]=

Graphics3D

Se trata de una curva puesto que tan solo se tiene un parmetro. La funcin es de la forma: x=Cos[5t] y=Sin[3t] z=Sin[t] Para el caso de una superficie:
In[67]:=

ParametricPlot3D@8Cos@uD Cos@vD, Sin@uD Cos@vD, Sin@vD<, 8u, 0, 2 Pi<, 8v, Pi, Pi<D

Introduccion a mathematica.nb

18

1 0.5 0 -0.5 -1 1 1 0.5 0 -0.5 -1 -1 -0.5

0.5 0 5

Out[67]=

Graphics3D

La superficie representada es : x=Cos[u]*Cos[v] y=Sin[u]*Cos[v] z=Sin[v]

8.3.- ImplicitPlot
Este comando se emplea para representar funciones definidas de forma implicita de dos variables. Para poder utilizar estos comandos se debe hacer referencia a paquetes especificos que tienen los programas con los que se ejecutan estos comandos. Para cargar estos paquetes se debe ejecutar la siguiente orden: <<Graphics`ImplicitPlot` Estas instrucciones permiten cargar la librers de tipo grafico que permite representar funciones implicitas de dos variables.
In[68]:=

<< Graphics`ImplicitPlot`

Una vez cargadas las libreras, pasamos a explicar la nomenclatura de cada uno de los dos comandos. ImplicitPlot[eq,{x,x_min,x_max}]. Donde eq es la ecuacin que define la funcin implicita y se introduce adems el intervalo donde se dibuja la funcin.
In[69]:=

ImplicitPlot@x ^ 2 + y ^ 2 4 == 0, 8x, 3, 3<D

Introduccion a mathematica.nb

19

2 1

-2

-1 -1 -2

Out[69]=

Graphics h@x_, y_ D := 3 x + 5 y ImplicitPlot@h@x, yD == 3, 8x, 3, 3<D

In[70]:=

In[71]:=

2 1.5 1 0.5 -3 -2 -1 -0.5 -1 1 2 3

Out[71]=

Graphics Show@%, %%%D

In[72]:=

2 1 -3 -2 -1 -1 -2
Out[72]=

Graphics ImplicitPlot@8x ^ 2 + y ^ 2 4 == 0, h@x, yD == 3<, 8x, 3, 3<D

In[73]:=

Introduccion a mathematica.nb

20

2 1 -3 -2 -1 -1 -2
Out[73]=

Graphics

En los dos ltimos ejemplos se han presentado dos formas distintas de representar varias finciones en un mismo grfico. El comando Show[ ] permite representar diferentes grficos combinados. Mientras que el comando ImplicitPlot permite representar varios grficos a la vez agrupados entre llaves El comando ImplicitPLot3D representa funciones de tres variables en forma implcita. La nomenclatura es de la siguiente forma: ImplicitPlot3D[eq,{x,x_min,x_max},{y,y_min,y_max},{z,z_min,z_max}] Ejemplos:

Ejercicios de la seccin 8
- Dibujar la funcin sen(x)/x as como la funcin sen(x) en el intervalo (-10,10) - Dibujar la funcin x*y - Dibujar la funcin paramtrica - Dibujar la funcion x = 4 Cos(-11t / 4)+7 Cos(t) y = 4 Sin(-11t / 4)+7 Sin(t) x= Cos(u)Sin(v) y= Cos(u)Cos(v) z=v - Dibujar la funcin : 4x^2+y^2=1 Desde 0 a 8Pi

9.- Packages
Una de las caracteraticas ms importantes de Mathematica es que se trata de un sistema extensible. Es decir, hay una gran cantidad de funciones matemticas, constantes , etc. que estn introducidas en el programa. Pero utilizando el lenguaje de Mathematica se pueden aadir ms funciones a las ya existentes. En general, cuando se realizan las operaciones mas comunes es suficiente con el programa para que se puedan ejecutar. Sin embargo cuando se trabaja en un campo especfico, hay una serie de funci-

Introduccion a mathematica.nb

21

ones que no estn especificadas en Mathematica y se introducen de otro modo. En estos casos se pueden utilizar los Mathematica Packages que son libreras en las que se encuentran definidos procedimientos de clculo relacionados con operaciones matemticas mas especficas. Estos Packages consisten en funciones definidas en el lenguaje de Mathematica que le permiten al programa realizar estas operaciones mas complejas. Para poder utilizar las funciones que se encuentran en estos Packages en primer lugar se debe indicar a Mathematica que se van a utilizar en la sesin funciones especficas de ese paquete. Para ello se carga el paquete en cuestin de la siguiente manera:
In[74]:=

<< Calculus`VectorAnalysis`

Una vez cargado este Package ya se pueden realizar operaciones relacionadas con los comando que introduce este fichero como pueden ser el clculo de la divergencia , del gradiente, etc
In[75]:= Out[75]=

Grad@5 x ^ 2 y ^ 3 z ^ 4, Cartesian@x, y, zDD 810 x y3 z4 , 15 x2 y2 z4 , 20 x2 y3 z3 <

Existen una gran cantidad de Packages que ya vienen cargados en la instalacin de Mathematicas referentes a diversos campos como son : Algebra, Clculo, Matemtica Discreta, Geometra, Grficos, Algebra Lineal, Estadstica ,etc. Dentro de cada uno de estos campos se encuentran diversos Packages que se van cargando. Para ver con detenimiento los distintos Packages que proporciona Mathematica utilice la ayuda de Mathematica y en el apartado de Add-ons seleccione el campo Standard Packages. A partir de aqui seleccionando cada uno de los campos se pueden ver los diferentes Packages que existen para cada rama matemtica. Como se puede apreciar al cargar el paquete en la sesion de Mathematica se hace referencia al campo general del paquete (en nuestro caso Calculus) y a continuacin encerrado entre tildes " ` " el paquete particular que se desea cargar (`VectorAnalysis`). Recordando operaciones que se hicieron en su momento, al explicar ImplicitPlot e ImplicitPlot3D vimos como se tenan que cargar dos paquetes que se encontraban en el directorio Graphics que eran: <<Graphics`ImplicitPlot` <<Graphics`ImplicitPlot3D`

10.- Resolucin de Ecuaciones


Mathematica dispone de un amplio grupo de sentencias que permiten resolver ecuaciones. Dependiendo del tipo de ecuacin que se desee resolver y las variables y parmetros que tenga ser conveniente utilizar uno u otro de los comandos que a continuacin se exponen. Roots[ ecuacin , variable ] permite obtener las raices de una ecuacin polinmica en la variable que

Introduccion a mathematica.nb

22

se indica en la expresin. Este comando funcionar correctamente siempre que se pueda obtener de forma exacta la raiz del polinomio.
In[76]:= Out[76]=

Roots@Hx + 2L ^ 3 Hx 3L == 0, xD x 3 x 2 x 2 x 2

In[77]:= Out[77]=

Roots@Hx + y 1L Hx 2L == 0, xD x 2 x 1y

In[78]:= Out[78]=

Roots@Hx + y 1L Hx 2L == 0, yD y 1x

La expresin Roots[ ] devuelve todas las raices de la ecuacin.En caso de haber mas de una solucin relaciona todas ellas mediante operadores lgicos ( | | significa OR , && significa AND ). En caso que no se pueda obtener el valor exacto de la raiz se utilizar el comando NRoots[ ] que proporciona una solucin aproximada.
In[79]:= Out[79]=

Roots@x ^ 7 + x + 4 == 0, xD

x Root@4 + #1 + #17 &, 1D x Root@4 + #1 + #17 &, 2D x x Root@4 + #1 + #17 &, 4D x x Root@4 + #1 + #17 &, 6D x NRoots@x ^ 7 + x + 4 == 0, xD

Root@4 + #1 + #17 &, 3D Root@4 + #1 + #17 &, 5D Root@4 + #1 + #17 &, 7D

In[80]:= Out[80]=

x 1.16076 x 0.776478 0.89959 x 0.776478 + 0.89959 x 0.226587 1.21468 x 0.226587 + 1.21468 x 1.13027 0.566349 x 1.13027 + 0.566349

En este ltimo ejemplo se puede ver como intentando obtener las raices con el comando Roots no se llega a una solucin por lo que hay que buscar la solucin aproximada. Para un caso mas general en que se desea resolver una ecuacin cualquiera se utiliza el comando Solve[ ] que funciona de la misma manera que el comando Roots[ ]
In[81]:= Out[81]=

Solve@Hx + 2L ^ 3 Hx 3L == 0, xD

88x 2<, 8x 2<, 8x 2<, 8x 3<<

Los resultados se presentan en una lista en que se asignan a x un valor con el signo x->. Cuando no se pueden obtener los valores exactos la solucin queda en funcin del comando Root y se puede obtener la solucin aproximada aplicando el comando N[ ]

Introduccion a mathematica.nb

23

In[82]:= Out[82]=

Solve@x ^ 7 + x + 4 == 0, xD 88x Root@4 + #1 + #17 8x Root@4 + #1 + #17 8x Root@4 + #1 + #17 8x Root@4 + #1 + #17 N@%D &, &, &, &,

1D<, 2D<, 8x Root@4 + #1 + #17 &, 3D<, 4D<, 8x Root@4 + #1 + #17 &, 5D<, 6D<, 8x Root@4 + #1 + #17 &, 7D<<

In[83]:= Out[83]=

88x 1.16076<, 8x 0.776478 0.89959 <, 8x 0.776478 + 0.89959 <, 8x 0.226587 1.21468 <, 8x 0.226587 + 1.21468 <, 8x 1.13027 0.566349 <, 8x 1.13027 + 0.566349 <<

Este Comando permite resolver ecuaciones que no sean polinmicas como por ejemplo:
In[84]:=

Solve@Sin@xD Cos@xD == 0, xD
Solve::ifun : Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. More

Out[84]=

98x 0<, 9x

=, 9x == 2 2

En este caso se obtienen algunas soluciones triviales y devuelve un mensaje que indica la posible existencia de mas soluciones Este comando Solve permite tambin resolver sistemas de ecuaciones que se representan en una lista o bien unidas a travs del smbolo && (And). Ejemplos de este tipo se vern en las prcticas correspondientes al Algebra. En muchas ocasiones se emplean parmetros que pueden ir variando segn se desee y que mejoran o empeoran el comportamiento de un sistema. Por ello es muy interesante, poder resolver ecuaciones en las que se encuentren parmetros. Para ello el comando mas indicado en el paquete Mathematica es Reduce[ ]. La forma de presentarlo es idntica a los anteriores. Veamos algn ejemplo:
In[85]:=

Clear@a, xD Reduce@3 a x ^ 3 2 x + 3 == 0, xD a 3 2 a 0 && Hx Root@3 2 #1 + 3 a #13 &, 1D x x Root@3 2 #1 + 3 a #13 &, 3DL 0 && x Root@3 2 #1 + 3 a #13 &, 2D

In[86]:= Out[86]=

En este ejemplo se ve claramente el funcionamiento del comando. Si a vale cero logicamente se trata de una ecuacin en que solo hay una raiz. Si a es distinto de cero se obtienen tres raices distintas dado que estamos estudiando un polinomio de grado tres.

Introduccion a mathematica.nb

24

Este comando tambin se puede emplear cuando se trabaja con un sistema de ecuaciones como en el caso anterior, definiendo todos ellos entre llaves o con el smbolo &&. Ej:
In[87]:=

Clear@a, r, sD 882, a<, 83, 1<<.8r, s< == 80, 1< 82 r + a s, 3 r + s< 80, 1<

In[88]:= Out[88]=

In[89]:= Out[89]=

Reduce@%, 8r, s<D 2 + 3 a 0 && r a && s 2 + 3 a 13r

Resuelve el sistema matricial considerando el valor del parmetro a. Lgicamente el valor del determinante de la matriz tiene que ser no nulo ya que el rango debe ser dos para que exista solucin. Cuando no se pueden obtener soluciones mediante los comandos que se han explicado se debe pasar a los mtodos iterativos para la obtencin de soluciones de la ecuacin. Para ello se utiliza el comando FindRoot[ecuacin,{x,sol_aprox}] en el que se indica la ecuacin que se desea resolver y un valor cercano a la solucin de la ecuacin. Debido a esto se recomienda anteriormente dibujar la funcin para tener una idea aproximada de la posicin de la solucin. Ejemplo: Calcular las soluciones de la ecuacin x Sin[x]-1/2= 0
In[90]:=

Plot@x Sin@xD 1 2, 8x, 0, 4<D

1 -1 -2 -3 1 2 3 4

Out[90]=

Graphics FindRoot@x Sin@xD 1 2 == 0, 8x, 1<D 8x 0.740841<

In[91]:= Out[91]=

In[92]:= Out[92]=

FindRoot@x Sin@xD 1 2 == 0, 8x, 3<D 8x 2.97259<

Ejercicios de la seccin 10

Introduccion a mathematica.nb

25

- Resolver x^2+2x+2=0 - Resolver x^2+a x+2=0 - Calcular raices de la ecuacin Tan[x] == Cos[x] en el intervalo [0 , Pi]