Está en la página 1de 15

Introducción a Mathematica

Elaborado por : Daniel Martínez Teruel


A continuación se describe el uso del programa Wolfram Mathematica para realizar distintas operaciones, junto a los comandos necesarios para esto.

Formato del Notebook


Existen varios formatos distintos para usar en las celdas de un notebook, dependiendo de la necesidad. El formato predeterminado de una celda es
de input, formato que se usa para realizar cálculos, operaciones, etc... Sin embargo, si el notebook que se está realizando se presentará, hay que
tener en cuenta las demás opciones de formato en las celdas. Para esto, seleccionamos una celda dando click izquierdo sobre su delimitador (el
símbolo como “bracket” que aparece a la derechade esta que, al seleccionar, se pondrá en azul) y nos vamos al menú Formato en la barra de her-
ramientas con la celda seleccionada. En Estilo, la primera opción, se puede seleccinoar el tipo de celda.

Las celdas de título/capítulo/subcapítulo/etc... tienen una jerarquía que puede ayudar a organizar los nb, siendo la principal la de título hasta abajo.
Si lo que se desea es ingresar texto común, que no tenga ningún tipo de jerarquía, se debe escoger la opción “Text”. Además, en ocasiones se
desea comentar algo en un comando o dentro de una operación. Para esto usamos comentarios, con la siguiente sintaxis: (*COMENTARIO*).

Estas opciones se deben usar para convertir los notebooks en trabajos presentables, como el presente.

Aritmética y funciones básicas


Las operaciones aritméticas básicas se realizan con los signos asociados comunmente a ellas: para la suma, utilizamos “+“; para la resta, “-”; para la
división, “/” (o usando paletas se puede armar como fracción) y, para multiplicación, podemos utilizar 3 formas: “*”, “()” o un espacio entre lo qeu se
multiplica (sean variables o números). Se muestran algunos ejemplos de esto, y de uso de comentarios en ocasiones:
In[1]:= 4 + 4 (*Una suma*)
Out[1]= 8

In[2]:= 3+4
Out[2]= 7

In[3]:= 4 (4)
Out[3]= 16

In[4]:= 4/4
Out[4]= 1

In[5]:= 4*4
Out[5]= 16

In[6]:= 4 × 4(*Una multiplicación con espacio, ojo que introduce un signo "×" automáticaente*)
Out[6]= 16

Para calcular potencias de orden n utilizamos el acento circunflejo (^), el comando Power[base,potencia] o las paletas; para calcular raíces de
orden n utilizamos el comando Surd[argumento,orden] (además de poder utilizar Sqrt[argumento] para raíz cuadrada y CubeRoot[argumento]
para raíz cúbica) o utilizamos las paletas.

Nota : Para llamar a las constantes, las raíces y fracciones a través de la paleta, se puede utilizar el Ayudante de Matemática Básica, en Composi-
ción Tipográfica en sus primeras dos pestañas (Primera para introducir raíces, fracciones, subíndices, entre otros y segunda para alfabeto
griego). Al poner el mouse encima de cualquier símbolo dentro de cualquiera de las paletas, se pueden ver los comandos de teclado para intro-
ducirlo.
2 Introducción a Mathematica-v2.nb

Pulsar para acceder a la paleta:

Ejemplo con un exponente (Ctrl+6)

In[7]:= Power[x, y]
Out[7]= xy

In[8]:= a^2
Out[8]= a2

In[9]:= 210
Out[9]= 1024

3
In[10]:= 8
Out[10]= 2

In[11]:= Surd[8, 3]
Out[11]= 2

Cuando las operaciones resultan en un número entero, Mathematica tiende a mostrar el resultado de la manera más exacta posible (es decir, en
términso de raíces, fracciones, etc...) sin realizar aproximaciones decimales. Para obtener el valor decimal, utlizaremos el comando N[argumento].

In[12]:= 10
Out[12]= 10

In[13]:= N 10 
Out[13]= 3.16228

Además, en el programa están predefinidas distintas constantes como π, ⅇ, ⅈ, etc ... Para llamarlas hay más de una forma: pi se puede escribir como
Pi o con las paletas; e, E o las paletas; i, I o las paletas, etc...
In[14]:= N[Pi]
Out[14]= 3.14159

In[15]:= N[ⅇ]
Out[15]= 2.71828

Además es importante saber utilizar las funciones elementales básicas, como las funciones trigonométricas o la función logaritmo. Estas se suelen
llamar utilizando sus nombres comunes, por ejemplo, el seno de un ángulo sen(x) se llama Sin[x]; la exponencial de x, Exp[x]. Se presenta una tabla
con las funciones más comunes y cómo llamarlas en Mathematica. Si se necesita una que no esté en esta tabla, se puede encontrar en Paletas-
>Ayudante de Matemática Básica ->Comandos Básicos. En el caso de funciones trigonométricas, Mathematica asume que está trabajando en
radianes.

Función sin (x) cos (x) tan (x) sin-1 (x) cos-1 (x) tan-1 (x) ln (x) log (x) ex
Comando en Mathematica Sin[x] Cos[x] Tan[x] ArcSin[x] ArcCos[x] ArcTan[x] Log[x] Log10[x] ⅇ , E , Exp[x]
x x
Introducción a Mathematica-v2.nb 3

Nota : Hay que ser precavido con dos cosas: la sintaxis utilizada para estas funciones (así como para todos los comandos en Mathematica) debe
ser idéntica a como está definida, es decir: el sen(x) no puede ser sin[x], tiene que llamarse tal como está definida con mayúscula inicial. Todos los
comandos de Mathematica se utilizan con mayúscula inicial y se escriben sus argumentos entre corchetes.

Nota: Cuando se realicen operaciones con estos comandos, hay que ser cuidados con la fomra de escribirlas. Por ejemplo, sabemos que el seno al
cuadrado se escribe, comúnmente, como sin2 (x); sin embargo, Mathematica no reconocerá esa ecxpreisón ya que Sin2 no existe. Si se desea
realizar expresiones sobre estas operaciones, se deben manejar como que fueran una variable: Sin[x]2 , por ejemplo.

Definición de variables y funciones


La definición de variables y funciones puede ser realizada de dos formas : utilizando el signo "=" o ":=". La diferencia entre estos dos signos es que el
primero ejecuta la asignación y, a la vez, la evalúa; el segundo solo realiza la asignación. Como nombre de variable o función se puede utilizar
cualquier combinación de letras del abecedario, del alfabeto griego (que se pueden acceder a través de la paleta, ayudante de matemática básica,
composición tipográfica), -tanto mayúsculas como minúsculas- y números, con solo dos condiciones: que el nombre de variable no inicie con un
número y que no esté previamente asignado a algo en Mathematica. Estas variables pueden ser utilizadas de a misma manera que los números.
In[16]:= EstaSiEsY = 5;

Nota: Aquí se utiliza punto y coma ya que, de lo contrario, Mathematica vuelve a imprimir la asignación (por el comportamiento previamente
descrito de el signo igual).

In[17]:= EstaNoEsX := X

In[18]:= EstaSiEsY * EstaNoEsX


Out[18]= 5X

Nota: A la hora de realizar el producto entre dos variables, es imperativo escribir explícitamente la multiplicación entre las dos sea con espacio,
asterisco o paréntesis. Esto es debido a que si las dos variables se escriben sin diferenciarse, Mathematica lo interpreta como una sola variable.
Esto significa que, por ejemplo, xy no es lo mismo que x*y o que x y: la primera es una sola variable de nombre “xy”, las otras dos son el pro-
ducto de las variables “x” y “y”. Por ejemplo:

In[19]:= x = 5; y = 10;

In[20]:= xy

Out[20]= 50

In[21]:= xy

Out[21]= xy

Se observa en las celdas ejecutadas arriba que Mathematica lo que se explicó en la nota anterior.

Otros ejemplos de operaciones con variables :


In[22]:= EstaSiEsY  EstaNoEsX
5
Out[22]=
X

In[23]:= EstaSiEsYEstaNoEsX
Out[23]= 5X

In[24]:= α10 = π;

In[25]:= N[α10]
Out[25]= 3.14159

Para definir una función se utilizan los dos signos mencionados previamente, con la diferencia que después del nombre de la función se escribne
-entre corchetes- las vairables de las que depende seguidas de un guion bajo. Es decir, una función f(x1, x2 , ..., xn ) ⟶f[x1_,x2_,...,xn_]=...
9 × 109
In[26]:= F[r_] = ;
r
9 × 109
In[27]:= G[x_, y_] =
x+y
Out[27]= 600 000 000

Las funciones se evalúan llamándolas a través de su nombre y asignando el valores a las variables entre corchetes. Es decir, F(10)⟶F[10], donde x
toma el valor de 10. Si se quisiera evaluar más de una variable, se escribe el valor en vez de esa variable; si se quisiera evaluar algunas variables y que
las otras queden como variables, se tienen que escribir explícitamente en al evaluación, por ejemplo G(x,10)⟶G[x,10].

Nota : El guión bajo es utilizado solamente cuando la función se define, de ahí en más, cuando se llame en términos de una variable, solo se
escribe el nombre de la variable que se vaya a utilizar. Es decir, no es adecuado llamara la función f (x) escribiendo f[x_] si no f[x.]
4 Introducción a Mathematica-v2.nb

In[28]:= F[10]
Out[28]= 900 000 000

In[29]:= F[x]
Out[29]= 1 800 000 000

In[30]:= G[10, 10]


Out[30]= 600 000 000

In[31]:= G[x, 10]


Out[31]= 600 000 000

⋮ ⋮
f1(x) x1 < x < x2
Si la función que deseamos definir es una función definida a trozos, por ejemplo: , esta se define con el comando Piecewise de
f2(x) x2 < x < x3
⋮ ⋮
la forma Piecewise[{...,{f1[x],x1<x<x2},{f2[x],x2<x<x3},...}]. Todo tramo de la función que no sea especificado en la función Piecewise[...] tendrá
asignado un valor de cero.

cos(2 x) -19 π /4 < x < 0


Ejemplo: Definir la función x 2 /10 + 1 x > 0 y evaluarla en x=-20,-π,10.
0 Otros casos
In[32]:= h[X_] = Piecewise{Cos[2 X], - 19 π / 4 < X < 0}, X ^ 2  10 + 1, X > 0;
(*utilizamos y en vez de x porque x ya tiene un valor asignado acá*)

In[33]:= h[- 20]


Out[33]= 0

In[34]:= h[- π]
Out[34]= 1

In[35]:= h[10]
Out[35]= 11

Es fácil corroborar que estos son los valores adecuados para cada uno de los trozos evaluados.

Nota: Las variables y funciones definidas son compartidas en todos los *.nb que se trabajen simultáneamente. Una vez cerrado el programa todas
las variables se borran de la memoria, al abrir un notebook de nuevo, todas las variables que estaban definidas se tienen que redefinir de ser
necesarias.

Nota: Las variables no pueden ser llamadas como funciones si no fueron definidas así. Es decir, si algo no se definió con una dependencia explícita
(como la variable EstaNoEsX), no debe llamarse como función. Es decir, como “EstaNoEsX” no se definió como función, utilizar EstaNoEsX[x] sería
inadecuado, solo se usa el nombre. En cambio, si una función está definida como tal, su dependencia debe ser siempre escrita y no se debe omitir.

Si se desea borrar una variable o función para reutilizar, simplemente se utiliza el comando Clear[...] y como argumento las variables y funciones
(sin su dependencia) que se quieran limpiar.Si se desea limpiar todas las variables, utilizamos: Clear[“Global`*”], EXACTAMENTE COMO ESTÁ
ESCRITO.

Simplificación de expresiones y restricciones para variables


In[36]:= Clear[x, y];

Antes, vimos que Mathematica no realiza aproximaciones de cálculos numéricos a menos que se le instruya directamente:
In[37]:= π
Out[37]= π

In[38]:= N[π]
Out[38]= 3.14159

De la misma forma, Mathematica no simplifica expresiones algbraicas si no se le instruye hacerlo. Un ejemplo sencillo de este es el siguiente:
In[39]:= Cos[x]2 + Sin[x]2
Out[39]= Cos[x]2 + Sin[x]2

Sabemos que esta es la identidad pitagórica y que, independientemente del valor de x, esta expresión siempre es exactamente igual a 1. Para que
Mathematica simplifique expresiones, utilizamos el comando FullSimplify[...], cuyo argumento simplemente es la expresión uqe se desea
simplificar.
In[40]:= FullSimplifyCos[x]2 + Sin[x]2 
Out[40]= 1

En ocasiones, la expresión que queremos simplificar requiere de alguna condición que se tenga que especificar. Por ejemplo, sabemos que el coseno
Introducción a Mathematica-v2.nb 5

de multiplos pares de pi es igual a 1; y el coseno de multiplos impares de pi es igual a -1. Sin embargo, si ingresamos esto a Mathematica, no obten-
dremos el resultado deseado:
In[41]:= FullSimplify[Cos[2 n π]](*Ojo que los 3 símbolos están separados por espacio,
NO SE ESCRIBEN PEGADO como se indicó más arriba ya que es una multiplicación*)
Out[41]= Cos[2 n π]

In[42]:= FullSimplifyCos2 n + 1 π


Out[42]= - Cos[2 n π]

Esto es debido a que Mathematica no asume ninguna restricción sobre variables indefinidas: no necesariaemnte son reales, enteras, positivas, etc...
Y, en este caso, la expresión que deseamos obtener depende de que n sea un número entero. En otras palabras, Mathematica asume el conjunto más
amplio posible para las variables escalares: las asume como variables complejas. Para especificar que la variable pertenece a un subconjunto de los
complejos (los reales, por ejemplo) utilizamos el comando Element[var,conjunto] en conjunto con el comando Assuming[conds, expr] o con
FullSimplify con un argumento extra especificando las condiciones. Si se utilizará más de una condición en vez de solo una, estas se unirán con &&
de la siguiente forma: cond1&&cond2&&...

Se muestra un ejemplo solo con FullSimplify y otro con FullSimplify y Assuming.


In[43]:= FullSimplify[Cos[2 n π], Element[n, Integers]]
Out[43]= 1

In[44]:= AssumingElement[n, Integers], FullSimplifyCos2 n + 1 π


Out[44]= -1

Las condiciones en estos comados no necesariamente tienen que ser con el comando Element, también es posible ingresar relaciones con otras
variables o relaciones de magnitud con números utilizando los símbolos >, < o sus contrapartes con igualdad ; por ejemplo:
In[45]:= FullSimplify[Abs[x - y], x < y](*Abs es la función Valor Absoluto*)
Out[45]= -x + y

En algunas expresiones, es necesario especificar que una variable es real por lo que mencionamos antes. Un ejemplo de esto sería:

In[46]:= FullSimplify x2 

Out[46]= x2

In[47]:= FullSimplify x2 , x ∈ Reals


(*La sintáxis x ∈ Reals es equivalente a utilizar Element[x,Reals]. Para introducir el símbolo ∈ typeamos: ESC + elem + ESC,
donde ESC es la tecla ESCAPE; de la misma forma en que ESC se utiliza para atajos de símbolos en las paletas.*)
Out[47]= Abs[x]

In[48]:= FullSimplify x2 , x ∈ Reals && x > 0


Out[48]= x

También es posible establecer condiciones para variables que apliquen siempre dentro de una misma sección, utilizando la sintáxis: $Assumptions=-
{cond1,cond2,cond3,...}; (el punto y coma se utliza para que no se repita lo que se ingrresó). Como ejemplo, realizaremos el cálculo de la norma
de un vector (un cálculo que será importante después):
In[49]:= $Assumptions = {x ∈ Reals, y ∈ Reals, x < y};

In[50]:= Abs[x]2 + Abs[y]2


Out[50]= Abs[x]2 + Abs[y]2

In[51]:= FullSimplify Abs[x]2 + Abs[y]2 

Out[51]= x 2 + y2

In[52]:= Abs[x - y]
Out[52]= Abs[x - y]

In[53]:= FullSimplify[Abs[x - y]]


Out[53]= -x + y

NOTA: En general, estas condiciones se utilizan para cálculos más complejos u operaciones más complejas de las que se meustran como ejemplo,
estos ejemplos son meramente ilustrativos de los usos de estos comandos para especificar condiciones. Cuando realizamos operaciones difeferen-
ciales, integrales o vectoriales las expresiones se pueden complicar bastante; y es en esos casos que es importante especificar condiciones sobre
las variables.

En casos de estudio comunes en la física e ingeniería, generalmente sabemos a qué conjunto pertenecen las variables que se están estudiando y
conocemos más restricciones sobre ellas: sabemos, por ejemplo, que los radios son reales y positivos, sabemos uqe las coordenadas cartesianas
son siempre reales, sabemos que algunos parámetros físicos (por ejemplo, la masa deun objeto) son reales y a veces también positivos, etc... A
menudo las operaciones que realizamos son muchísimo más complicadas sin especificar estas restricciones, por lo que es importante imponerlas
con el objetivo que Mathematica pueda realizas las operaciones y que obtengamos los resultados deseasdos.
6 Introducción a Mathematica-v2.nb

Gráficas de funciones en una variable


Es común desear analizar el comportamiento de una función de una o más variables de manera gráfica, para realizar estas gráficas de una variable
utilizaremos el comando:

Plot[{funcion1, función2, ...},{variable, lim inf, lim sup}, opciones...].

Si se grafica más de una función, Mathematica las mostrará en distintos colores. Las funciónes a graficar deben estar únicamente en términos de la
variable utilizada en el comando, es decir que si hubiera una constante o variable sin definir en las funciónes a graficar, Mathematica mostraría una
gráfica en blanco. Las opciones que se muestran en la sintaxis del comando son para modificar el gráfico: desde el estilo de los ejes, gráfica y títulos;
el tamaño de la imagen; leyenda de la o las gráficas, etc... Por ejemplo:
In[54]:= Plot[{F[x], G[x, - 10]}, {x, 0, 10}]

5 × 109

4 × 109

Out[54]= 3 × 109

2 × 109

1 × 109

2 4 6 8 10

Ahora se mostrarán las opciones y la sintaxis a ser utilizada para cada una de ellas, para luego mostrar un ejemplo.
Título de gráfica: PlotLabel-> “Título de la gráfica”

Título de los ejes: AxesLabel->{“Título del Eje X”, “Título del Eje Y”}

Estilo de los títulos: LabelStyle->{Opciones}

Rango a mostrar en la imagen: PlotRange->{{x inf, x sup},{y inf, y sup}}

Estilo de la gráfica: PlotStyle->{{Opciones gráfica 1},{Opciones gráfica 2},{Opciones gráfica 3},...} Estas opciones de gráfica pueden ser colores,
estilos de trazado, grosor, etc....

Relleno de la gráfica: Filling->{1->Tipo de relleno1, 2->Tipo de relleno2,...}. Rellena la gráfica i con el tipo de relleno i (1 con tipo de relleno 1, 2
con tipo de relleno 2, etc...). El tipo de relleno puede
ser: Bottom, Top, Axes, None. Bottom rellena desde la gráfica en la dirección negativa; Top rellena desde la gráfica en dirección positiva; Axes
rellena hacia el eje X y None elimina el relleno.

Estilo de relleno: FillingStyle->{Opciones...}. Colores, opacidad, entre otras opciones.

Estilo de ejes: AxesStyle->{{Opciones eje X},{Opciones eje Y}}, donde estas opciones son las mismas uqe se pueden utilizar en PlotStyle

Leyenda de la gráfica: PlotLegends->{“Leyenda funcion 1”,“Leyenda función 2”,...}

Tamaño de la imagen: ImageSize->Tamaño

Modificación de las etiquetas de la escala de los ejes: Ticks->{{{x1, “texto”},{x2, “texto”},...},{{y1, “texto”},{y2, “texto”},...}}

Utilizar un marco en vez de ejes: Frame->True. Es posible asignarle 4 opciones a Frame para especificar la presencia de cada extremo del marco,
combinando True y False según se deseen los
marcos.

Modicicación de etiquetas en el marco: FrameTicks->{{{Ticks Izquierda} , {Ticks Derecha}} , {{Ticks Inferior} , {Ticks Superior}}}, donde los
Ticks de cualquier lado del marco se especifican de la misma forma que en el comando Ticks de arriba: {Valor, “texto”}

En los ejemplos mostrados a continuación se utilizan la mayor parte de esta opciones.


Introducción a Mathematica-v2.nb 7

In[55]:= Plot[h[x], {x, - 20, 20}, PlotLabel → "Función a trozos", AxesLabel → {"X", "h(X)"},
AxesStyle → Black, ImageSize → Large, PlotStyle → {Purple, Thick}, PlotLegends → {"h[x]"}]
Función a trozos
h(X)

40

30

Out[55]= h[x]
20

10

X
-20 -10 10 20

In[56]:= Plot{F[x], G[x, 10]}, {x, - 10, 10}, PlotLabel → "HolaMundo!", AxesLabel → {"r (m)", "E (N/m)"},
AxesStyle → {{Black}, {Black}}, LabelStyle → Black, PlotStyle → {{Red, Thin, Dashed}, {Green, Thick}},
ImageSize → Large, PlotRange → {- 10, 10}, - 5 * 1010 , 5 × 1010 , PlotLegends →
{"Campo eléctrico en 1D de una carga en el origen", "Campo eléctrico en 1D de una carga x=-10"}, Filling → {1 → Axis, 2 → None}
HolaMundo!
E (N/m)

4 × 1010

2 × 1010

Campo eléctrico en 1D de una carga en el origen


Out[56]=
r (m) Campo eléctrico en 1D de una carga x=-10
-10 -5 5 10

-2 × 1010

-4 × 1010

In[57]:= Plot[{Exp[- x ^ 2] * Cos[3 x], Exp[- x ^ 2] * Sin[3 x]}, {x, - 5, 5}, PlotRange → All,
AxesLabel → {"x", "y"}, PlotLabel → "Comparación de paridad", Filling → Axis, PlotStyle → {{Red}, {Blue}},
LabelStyle → Black, Frame → True, ImageSize → Large, PlotLegends → {"Función par", "Función impar"}]
Comparación de paridad
y

1.0

0.5

Función par
Out[57]=
Función impar
0.0 x

-0.5

-4 -2 0 2 4

Nota: Todas las opciones descritas para gráficas pueden ser utilizados en comandos que se mostrarán posteriormente. Esto será debidamente
indicado.

Nota: Las opciones de estilo que se utilizan en opciones de gráfico como PlotStyle se pueden ver en las paletas: Paletas->Ayudante de
8 Introducción a Mathematica-v2.nb

matemática básica->Comandos básicos-2D->Directivas. Para trabajar más rápidamente, es recomendable memorizarse algunos colores
aunque sea (Paletas->Ayudante de matemática básica->Comandos básicos-2D->Nombres de colores).

Solución de ecuaciones, sistemas de ecuaciones e inecuaciones


In[58]:= Clear[x, y]

Para resolver ecuaciones y sistemas de ecuaciones utilizaremos el comando:

Solve[{eqns},{vars}]

Aquí, eqns son las ecuaciones a resolver y vars son las variables para las que se resuelve. Las ecuaciones deben estar escritas de la forma
LadoIzq==LadoDer y estar separadas por coma, las variables solamente deberán estar separadas por coma. Estas ecuaciones pueden depender
solo de las variables a resolver o depender de más variables. En el segundo caso, Mathematica resuelve para las variables solicitadas en función de
las demás. Por ejemplo, se resolverán los sistemas de ecuaciones:

x2 + y = 0 ax+by=2 x+y-7z=0
x+y =5 b x - a y = 0 z + (y + x)2 = 5
z = c2 x +c y x = Exp (x)

In[59]:= Solvex2 + y ⩵ 0, Sqrt[y + x] ⩵ 5 , {x, y}


1 1 1 1
Out[59]= x → 1 + 3 ⅈ 11 , y → 49 - 3 ⅈ 11 , x → 1 - 3 ⅈ 11 , y → 49 + 3 ⅈ 11 
2 2 2 2

In[60]:= Solvea x + b y ⩵ 2, b x - a y ⩵ 0, z ⩵ c2 x + c y, {a, b, c}

2x 2y -y - y2 + 4 x z 2x 2y -y + y2 + 4 x z
Out[60]= a → ,b→ ,c→ , a → ,b→ ,c→ 
x 2 + y2 x 2 + y2 2x x 2 + y2 x 2 + y2 2x

En caso que se requiera que la solución sea numérica, sea por necesidad o alguna otra razón, el comando a utilizar será NSolve[...], con la misma
sintaxis que el comando Solve[...].
In[61]:= NSolvex + y - 7 z ⩵ 0, z + (y + x)2 ⩵ 5, x ⩵ Exp[x], {x, y, z}

NSolve: Inverse functions are being used by NSolve, so some solutions may not be found; use Reduce for complete solution information.

Out[61]= {{x → 0.318132 - 1.33724 ⅈ, y → - 2.62677 + 1.33724 ⅈ, z → - 0.329805}, {x → 0.318132 - 1.33724 ⅈ, y → 1.84765 + 1.33724 ⅈ, z → 0.309397}}

Si se desea resolver una inecuación, se utilizará el comando Reduce[...] en vez de Solve[...], con la misma sintaxis que el segundo mencionado. Las
inecuaciones se escriben igual que las ecuaciones, con la diferencia que reemplazamos el == utilizado como igualdad con los siguientes símbolso
(dependiendo de la inecuación):

Símbolo Sintaxis en Mathematica


< <
> >
≤ <=
≥ >=

In[62]:= Reduce4 x2 - 8 ≥ 0, x

Out[62]= x≤- 2 || x ≥ 2

In[63]:= Reduce4 x2 - 8 ≤ y, y - 8 ≥ x, {x, y}


1 1 1 1
Out[63]= x≤ 1 - 257  && y ≥ - 8 + 4 x2 || 1 - 257  < x ≤ 1 + 257  && y ≥ 8 + x || x > 1 + 257  && y ≥ - 8 + 4 x2
8 8 8 8

Esto representa la solución de la inecuación 4 x 2 - 8 ≥ 0 y la del sistema de inecuaciones 4 x2 - 8 ≤ y, y - 8 ≥ x. En la solución, se observa el símbolo “|
|” que representa una operación lógica “O” y el símbolo “&&” que representa un “Y” lógico.. Esto serían en términos de intervalos, la unión de los
intervalos conectados por el símbolo y la intersección, respectivamente.

Derivadas parciales e integrales indefinidas y definidas de una función en una o


más variables
Para realizar derivadas parciales, se utiliza el comando:

D[función, {var1, orden 1}, {var2, orden 2},..., {varN, orden N}]
Así se pueden realizar derivadas parciales en varias variables, de distinto orden en cada una. Si el orden de la derivada es 1, no es necesario especifi-
5
carlo. Por ejemplo, realizaremos ∂ ∂F(x)
x
y ∂∂yG(x,y)
3 ∂x2

In[64]:= D[F[x], {x}]


9 000 000 000
Out[64]= -
x2
Introducción a Mathematica-v2.nb 9

In[65]:= D[G[x, y], {x, 2}, {y, 3}]


Out[65]= 0

Las integralas definidas se realizan con el comando:

Integrate[función, {var N, lim inf N, lim sup N},{var N-1, lim inf N-1, lim sup N-1},...,{var 2, lim inf 2, lim sup 2},{var 1, lim inf 1, lim sup 1}]

Si la integral es indefinida, entonces se escribe la variable sin especificar los límites de integración. Es decir que el orden en que se realiza la integral
1 x2
es desde la última variable escrita hasta la ifnal que se escribe primero. Realizaremos así ∫ f(x) ⅆx y ∫ ∫ G(x, y) ⅆy ⅆx para ejemplificarlo.
ⅇ x

In[66]:= Integrate[F[x], x]
Out[66]= 9 000 000 000 Log[x]

In[67]:= IntegrateG[x, y], {x, ⅇ, 1}, y, x, x2 


Out[67]= - 100 000 000 + 300 000 000 ⅇ2 - 200 000 000 ⅇ3

Nota : Las operaciones de cálculo diferencial e integral se pueden encontrar en Paletas -> Asistente de Matemática Básica -> Comandos Básicos
-> Tercera pestaña. Tal como antes, poniendo el mouse encima de la operación deseada se puede ver su atajo de teclado. Los campos vacíos se
deben seleccionar como texto para llenarlos. También se pueden encontrar en Paletas -> Asistente de Matemática Básica -> Composición Tri-
pográfica -> Primera pestaña

Ajustes de datos, gráficas de datos y gráficas de ajuste


Es de interés en un laboratorio realizar ajustes de datos. Esto se realiza cuando se miden dos o más variables de las cuales se conoce una ecuación
que las relaciona para encontrar los parámetros de esa ecuación. Un ejemplo de esto es la regresión lineal, donde se realiza un ajuste de datos para
poder encontrar el intercepto y la pendiente de una recta. Esto se ejemplificará por pasos haciendo uso de un ejemplo: se tiene que definir el set de
datos medido, se realiza el ajuste de datos, se recuperan del ajuste la función de ajuste y los parámetros para luego realizar una gráfica ilustrativa del
ajuste y los datos juntos.

Ejemplo : En un laboratorio de Física I, se tomaron datos de posición y tiempo para una gota de agua que cae en un medio linealmente resistivo. Si
el medio es resistivo, una vez pasado cierto tiempo la gota se sabe que la gota cae a velocidad constante y si el medio no fuera resistivo, se sabe
que la gota se movería en caída libre con una aceleración igual a la gravitacional (de 9.8 m/s2 aproximadamente). En ambos casos se asume que la
gota cae del resposo. El caso 2 es descrito por la ecuación y2 (t) = y02 + 0.5 g t2 y el caso 2 es descrito por la ecuación y1 (t) = y01 + v t. Se desea
determinar cuál de los dos casos es el que describe mejor el movimiento y cuál fue la posición inicial. El objeto partió en t=0s desde la posición
y=5cm, es decir que y0 ref = 5 cm. Las mediciones son:

y (cm) 10 15 20 25 30 35
t (s) 14.98 28.89 42.45 56.18 69.61 82.59

Para resolver esto, se realizará un ajuste de datos a los dos modelos planteados: el primer modelo será un ajuste de datos lineal donde la pendi-
ente es la velocidad y el intercepto la posición inicial y el segundo modelo es un ajuste de datos a una ecuación cuadrática sin término lineal,
donde el coeficiente principal es la mitad de la aceleración gravitacional y el coeficiente independiente es la posición inicial. Dependiendo de qué
modelo se ajusta mejor, se determinará cuál es el caso que mejor se adapta.

Realización del ajuste


El primer paso será definir el conjunto de datos. Los ajustes se realizan a conjuntos de datos (xi , yi ), donde el subíndice i varía entre 1 y la cantidad
de datos y la variable y depende de la variable x. En este caso, ese conjunto de datos es (ti , yi ), ya que estudiamos un caso donde la posición verti-
cal depende del tiempo, y tenemos que -por ejemplo- (t2 , y2 ) = (28.89 s, 15 cm). Estos datos se definirán en Mathematica de la siguiente manera:
{{t1 , y1 }, {t2 , y2 }, {t3 , y3 } ...} hasta definirlos todos. Es una buena decisión guardarlos en una variable, así:

Nota: Para la definición de los puntos siempre hay que ser precavido: es decir, se debe definir adecuadamente el conjunto de datos de manera
{{variable independiente, variable dependiente},...} ya que si la relación se hiciera al revés el modelo de ajuste deseado probablemente no sería
adecuado.

In[68]:= Datos = {{14.98, 10}, {28.89, 15}, {42.45, 20}, {56.18, 25}, {69.91, 30}, {82.59, 35}};

Ahora se realizarán los dos ajustes: para realizar el ajuste lineal, se utilizará el comando:

LinearModelFit[Datos,variable,variable]

Para realizar el ajuste no lineal (bajo un modelo cualquiera) se utilizará el comando:

NonlinearModelFit[Datos,modelo,{parámetros},variable].

Es recomendable guardar el resultado del ajuste en alguna variable.

Nota : Si el ajuste de datos se desea hacer para dos o más variables independientes, los argumentos de “variable” arriba se reemplazarán con
una lista que lleva todas las variables. Es decir, si en vez de un ajuste y(x) con un set de datos (xi , yi ) se hará un ajuste z(x,y,...), los términos
10 Introducción a Mathematica-v2.nb

“vairable” (que en el primer caso serían x) se reemplazarían por {x,y,...}. El set de datos, además, se deifniría como
{{x1 , y1 , ..., z1 }, {x2 , y2 , ..., z2 }, ...}

In[69]:= Ajuste1 = LinearModelFit[Datos, t, t]

Out[69]= FittedModel 4.38286 + 0.368484 t 

In[70]:= Ajuste2 = NonlinearModelFitDatos, 0.5 g t2 + y0, {y0, g}, t

Out[70]= FittedModel 11.7695 + 0.00363216 t2 

Este resultado nos muestra el modelo ya ajustado, pero no se le puede extraer la información fácilmente, todavía es necesario extraer la informa-
ción de manera que la función sea manipulable y que podamos recuperar las incertidumbres de los parámetros encontrados.

Extracción de resultados del ajuste


Lo primero que haremos será extraer los parámetros con sus incertidumbres. Para esto, utilizaremos una opción llamada ParameterTable. Se
escribirá el ajuste y, seguido de este, ["ParameterTable"] (puede ser el comando o la variable en que se haya guardado el ajuste, es decir, Linear-
ModelFit[ ...]["ParameterTable"] o Ajuste1["ParameterTable"], por ejemplo). Esto deberá hacerse para ajustes lineales y no lineales. Parame-
terTable nos devuelve una tabla con información de los parámetros encontrados en orden de fila, donde la primera columna está formada por los
valores centrales y la segunda por las incertidumbres absolutas.
In[71]:= Ajuste1["ParameterTable"]
Estimate Standard Error t-Statistic P-Value
Out[71]= 1 4.38286 0.128905 34.0007 4.46374 × 10-6
t 0.368484 0.00237161 155.373 1.02927 × 10-8

Esta tabla muestra los parámetros de ajuste de la regresión lineal. La primera línea lleva la información del intercepto y la segunda lleva la informa-
ción de la pendiente; la primera columna muestra el valor central, la segunda muestra el error absoluto. Es decir que, tomando el modelo de ajuste
lineal que se planteó previamente, de la regresión lineal rescatamos lo siguiente:

v = (0.368 ± 0.002) cm/s


y01 = (4.4 ± 0.1) cm

-
Recordatorio: Para presentar resultados de una medición q, se escribe q =  q ± Δq unidades, donde cada uno se escribe con una cantidad
adecuada de cifras.

In[72]:= Ajuste2["ParameterTable"]
Estimate Standard Error t-Statistic P-Value
Out[72]= y0 11.7695 1.29626 9.07957 0.000815756
g 0.00726433 0.000691362 10.5073 0.000463886

De acuerdo a esta tabla, el ajuste de datos no líneal nos entrega los siguientes resultados:

g = (0.0073 ± 0.0007) cm/s2


y02 = (12 ± 1) cm

Gráfica del ajuste


Estos resultados los compararemos gráficamente entre sí, sin embargo, en este momento buscaremos comparar los dos distintos ajustes de datos
con los datos medidos. Para esto, utilizaremos el comoando Normal[ajuste] para poder recuperar la función de manera que se pueda utilizar. El
argumento de la función Normal puede ser el comando para el ajuste o la variable en que se guardó el ajuste.
In[73]:= FunciónLineal[t_] = Normal[Ajuste1]
Out[73]= 4.38286 + 0.368484 t

In[74]:= FunciónCuadrática[t_] = Normal[Ajuste2]


Out[74]= 11.7695 + 0.00363216 t2

Para graficar las funciones de ajuste, una vez extraídas del ajuste realizado, utilizaremos el comando Plot tal como se utilizó antes.
In[75]:= GraficaAjuste1 = Plot[FunciónLineal[x], {x, 0, 100}, PlotStyle → {Red, Dashed, Thin}, PlotLegends → {"Ajuste Lineal"}];

In[76]:= GraficaAjuste2 = Plot[FunciónCuadrática[x], {x, 0, 100}, PlotStyle → {Blue, Dotted, Thick}, PlotLegends → {"Ajuste Cuadrático"}];

Nota: Los dominios de la función se deben eligir tal que esta se grafique en un intervalo que cubra aquel de los datos tomados, sin ser excesivo.
Además, se omite la impresión de la gráfica utilizando punto y coma debido a que no es importante el comportamiento de la función por su
cuenta, si no su comparación con los ajustes de datos.

Nota: Hay que tener en mente que se debe modificar el estilo de cada una de las gráficas con el objetivo que se puedan diferenciar, además de
incluir la leyenda de cada una por separado. Los ejes y títulos se agregarán en el momento en que se combinen los gráficos.

Para graficar los datos medidos como una dispersión de puntos, se utilizará el comando:

ListPlot[datos,(opciones)...].
Introducción a Mathematica-v2.nb 11

Un gráfico de datos sin modificar se vería así:


In[77]:= ListPlot[Datos]

35

30

25

20
Out[77]=
15

10

20 30 40 50 60 70 80

Utilizando opciones para arreglarlo de manera que se vea mejor y agregando leyenda, este se vería así:
In[78]:= GraficaDatos = ListPlot[Datos, PlotStyle → {Green, PointSize[0.025]}, PlotLegends → {"Datos"}]

35

30

25

20
Out[78]= Datos
15

10

20 30 40 50 60 70 80

Tal como para las gráficas de una dimensión, a este no le modificamos los ejes, título de los ejes, título de la gráfica, etc... ya que esto lo haremos al
combinarlas.
Para combinar los gráficos, usaremos el comando:

Show[graf1,graf2,...,grafN,(opciones)...].
In[79]:= Show[GraficaAjuste1, GraficaAjuste2, GraficaDatos,
PlotLabel → "Ajuste para descripción del movimiento de una gota de agua", AxesLabel → {"t (s)", "y (cm)"},
PlotRange → {Automatic, {0, 40}}, AxesStyle → {{Black}, {Black}}, LabelStyle → Black, ImageSize → Large]
Ajuste para descripción del movimiento de una gota de agua
y (cm)

40

30

Ajuste Lineal

Out[79]= Ajuste Cuadrático


20

Datos

10

t (s)
20 40 60 80 100

In[80]:= FunciónCuadrática[20]
Out[80]= 13.2224

Nota: Las opciones que se pueden utilizar con ListPlot[...] y Show[...] son, entre otras, las opciones que se describieron para el comando
Plot[...], como se pudo identificar.

Nota: Si los intervalos de los ejes, el estilo ed los ejes y del título de la gráfica se modifican en cada una de las gráficas que se combinan, el
comando Show tomará las modificaciones hechas a la última gráfica que uno introduce como argumento.

De esta comparación de los modelos y de la comparación de los valores de los parámetros encontrados (entre sí y con la referencia) se puede
observar cuál de los dos modelos describe mejor el movimiento de la gota.
12 Introducción a Mathematica-v2.nb

Gráficos de discrepancia - Versiones de Mathematica anteriores a 12


Con el fin de comparar valores medidos con valores de referencia o solamente entre sí, es común realizar gráficos denominados gráficos de discrep-
ancia. Estos son gráficos de una dimensión donde se ilustra el intervalo que determinan el valor central de las mediciones y su incertidumbre abso-
luta, además de iluistrar el valor de referencia (en caso que lo haya) como una recta o como un área sombreada (en caso que haya un rango de
valores de referencia, por ejemplo). Las mediciones se representan gráficamente a través de las llamadas “barras de error”. Son estas barras de error
las que delimitan el intervalo dado por la medición. Para realizar un gráfico de discrepancia, utilizamos la función:

ErrorListPlot[{{q1 , Δq1 }, {q2 , Δq2 } , ...}, (opciones) ...].

Si quisiéramos agregar valor de referencia al gráfico, combinaríamos el resultados de ErrorListPlot con una función de valor constante graficada
con Plot utilizando el comando Show (como se hizo en el ajuste de datos).

El ejemplo a utilizar será una continuación del ejemplo utilizado para el ajuste de datos. A través de cada uno de estos ajustes, se encontró una
medición para la posición inicial y0 que llamaremos y01 para el encontrado con ajuste lineal y y02 para el encontrado con ajuste cuadrático.
Además, llamaremos yref al valor de referencia uqe se tomó en laboratorio.

y01 = (4.4 ± 0.1) cm


y02 = (12 ± 1) cm
yref = 5 cm

Antes de utilizar el comando ErrorListPlot, será necesario llamar a una librería llamada “ErrorBarPlots`”. Esto lo haremos con el comando Needs[li-
brería].
In[81]:= Needs["ErrorBarPlots`"]

General: ErrorBarPlots` is now obsolete. The legacy version being loaded may conflict with current functionality. See the Compatibility Guide for updating information.

In[82]:= ErrorListPlot[{{4.4, 0.1}, {12, 1}}]

12

10

Out[82]= 6

1.2 1.4 1.6 1.8 2.0

NOTA: Hay que fijarse en dos detalle:


-El gráfico es, en realidad, un gráfico de dos dimensiones, debido a la ubicación horizontal en que se colocan las mediciones. Mathematica ubica
las mediciones q1 en x=1, q2 en x=2, y así sucesivamente. Es necesario tomar esto en cuenta para acomodar los límites de los ejes con el objetivo
que el gráfico se pueda interpretar bien. Una buena recomendación es si tenemos n mediciones, el dominio de la gráfica será de 0 a n+1.
-Mathematica no ubica los límites del eje Y de manera que se observe todo el intervalo de cada medición, solo lo ubica tal que el valor central se
pueda oservar (como se nota en la gráfica). Es decir, también es necesario modificar el rango en el eje Y para que las barras de error no se vean
cortadas.

El gráfico de arriba es básico, y para su presentación e interpretación es necesario realizar las modificaciones que se realizan a cualquier otra gráfica:
títulos, leyendas, etc... Estas modificaciones pueden ser realizadas a criterio propio, contal el gráfico sea fácilmente interpretable, y se pueden
realizar al final al combinar los gráficos (en este caso se realizarán alguna directaemnte en el gráfico de error con el objetivo que se pueda observar
mejor).
In[83]:= graficoerror =
ErrorListPlot[{{4.4, 0.1}, {12, 1}}, PlotRange → {{0, 4}, {3, 14}}, PlotStyle → {Blue, Thin}, PlotLegends → {"Mediciones"}]
14

12

10

Out[83]=
8
Mediciones

0 1 2 3 4

Nota: Las opciones que se pueden utilizar con ErrorListPlot[...] son, entre otras, las opciones que se describieron para el comando Plot[...],
como se pudo identificar.
Introducción a Mathematica-v2.nb 13

Como se dijo antes, el valor de referencia se graficará como una función constante utilizando el comando Plot.

Para indicar a qué experimento o qué análisis de datos corresponde cada medición, se pueden modificar las estiquetas en la escala
In[84]:= referencia = Plot[5, {x, 0, 4}, PlotStyle → {Red, Dashed, Thin}, PlotLegends → {"Valor Teorico"}];

In[85]:= Show[graficoerror, referencia, Ticks -> {{{1, "Ajuste Lineal"}, {2, "Ajuste Cuad"}}, Automatic},
AxesLabel -> {None, "Pendiente (Adimensional)"}, PlotLabel -> "Grafico de Discrepancia",
AxesStyle → Black, LabelStyle → Black, ImageSize → Large]
Grafico de Discrepancia
Pendiente (Adimensional)
14

12

10

Mediciones
Out[85]=

8
Valor Teorico

Ajuste Lineal Ajuste Cuad

Gráficos de discrepancia - Versiones de Mathematica 12+


Con el fin de comparar valores medidos con valores de referencia o solamente entre sí, es común realizar gráficos denominados gráficos de discrep-
ancia. Estos son gráficos de una dimensión donde se ilustra el intervalo que determinan el valor central de las mediciones y su incertidumbre abso-
luta, además de iluistrar el valor de referencia (en caso que lo haya) como una recta o como un área sombreada (en caso que haya un rango de
valores de referencia, por ejemplo). Las mediciones se representan gráficamente a través de las llamadas “barras de error”. Son estas barras de error
las que delimitan el intervalo dado por la medición.
En este caso, utilizaremos ListPlot combinado con un nuevo comando: Around[], que nos permitirá especificar un dato y su respectivo error:
Around[x,Δx]. Combinando estos comandos, un gráfico de discrepancia básico se haría de la siguiente manera:

ListPlot[{Around[q1 , Δq1 ], Around[q2 , Δq2 ], ...}]

Si quisiéramos agregar valor de referencia al gráfico, combinaríamos el resultados de ListPlot y Around con una función de valor constante grafi-
cada con Plot utilizando el comando Show (como se hizo en el ajuste de datos).

El ejemplo a utilizar será una continuación del ejemplo utilizado para el ajuste de datos. A través de cada uno de estos ajustes, se encontró una
medición para la posición inicial y0 que llamaremos y01 para el encontrado con ajuste lineal y y02 para el encontrado con ajuste cuadrático.
Además, llamaremos yref al valor de referencia uqe se tomó en laboratorio.

y01 = (4.4 ± 0.1) cm


y02 = (12 ± 1) cm
yref = 5 cm

Así, por ejemplo, podríamos obtener un gráfico de discrepancia sencillo :


In[86]:= ListPlot[{Around[4.4, 0.1], Around[12, 1]}]

12

10

Out[86]=
6

1.2 1.4 1.6 1.8 2.0

NOTA: Hay que fijarse en un detalle:


-El gráfico es, en realidad, un gráfico de dos dimensiones, debido a la ubicación horizontal en que se colocan las mediciones. Mathematica ubica
14 Introducción a Mathematica-v2.nb

las mediciones q1 en x=1, q2 en x=2, y así sucesivamente. Es necesario tomar esto en cuenta para acomodar los límites de los ejes con el objetivo
que el gráfico se pueda interpretar bien. Una buena recomendación es si tenemos n mediciones, el dominio de la gráfica será de 0 a n+1.

El gráfico de arriba es básico, y para su presentación e interpretación es necesario realizar las modificaciones que se realizan a cualquier otra gráfica:
títulos, leyendas, etc... Estas modificaciones pueden ser realizadas a criterio propio, contal el gráfico sea fácilmente interpretable, y se pueden
realizar al final al combinar los gráficos (en este caso se realizarán alguna directaemnte en el gráfico de error con el objetivo que se pueda observar
mejor).
In[87]:= graficoerror = ListPlot[{Around[4.4, 0.1], Around[12, 1]},
PlotRange → {{0, 3}, Automatic}, PlotStyle → {Blue, Thin}, PlotLegends → {"Mediciones"}]

12

10

Out[87]=
6
Mediciones

0
0.5 1.0 1.5 2.0 2.5 3.0

Podemos observar que, al ser realizadas por un mismo comando, una Leyenda no distinguirá las dos mediciones. Una forma de hacer esto es uti-
lizando el la opción Ticks que se describió cuando se habló del comando Plot[...]. Con Ticks podemos etiquetar cada una de las mediciones en el
gráfico de discrepancia para su lectura sencilla, recordando que cada medición se grafica en x=1, x=2,...
Como se dijo antes, el valor de referencia se graficará como una función constante utilizando el comando Plot y lo combinaremos con el gráfico de
error utilizando Show[...]
In[88]:= referencia = Plot[5, {x, 0, 4}, PlotStyle → {Red, Dashed, Thin}, PlotLegends → {"Valor Teorico"}];

In[89]:= Show[graficoerror, referencia, Ticks -> {{{1, "Ajuste Lineal"}, {2, "Ajuste Cuad"}}, Automatic},
AxesLabel -> {None, "Pendiente (Adimensional)"}, PlotLabel -> "Grafico de Discrepancia",
AxesStyle → Black, LabelStyle → Black, ImageSize → Large]
Grafico de Discrepancia
Pendiente (Adimensional)

12

10

8 Mediciones
Out[89]=

Valor Teorico
6

0
Ajuste Lineal Ajuste Cuad

Si deseamos, es posible combinar algunas opciones mencionadas anteriormente para Plot con el objetivo de mejorar la apariencia de la gráfica. En
el siguiente ejemplo, comparamos dos mediciones de una variable m: m=0.369±0.002, m=0.369±0.004 y realizamos modificación de: dominio,
ticks, títulos, marcos, etc... para mejorar la apariencia de nuestro gráfico de discrepancia. En este caso, no contaremos con un dato de referencia.
In[90]:= m1 = 0.369; Δm1 = 0.002; m2 = 0.369; Δm2 = 0.004;
Introducción a Mathematica-v2.nb 15

In[91]:= ListPlot[{Around[m1, Δm1], Around[m2, Δm2]}, PlotLabel → "Gráfico de discrepancia de las mediciones",
PlotStyle → {Red, Thin}, PlotRange → {{0, 3}, Automatic}, Frame → True,
FrameTicks → {{Automatic, Automatic}, {{{1, "Medición 1"}, {2, "Medición 2"}}, None}},
ImageSize → Large, LabelStyle → Black, PlotLegends → {"Datos"}]
Gráfico de discrepancia de las mediciones

0.372

0.370

Out[91]= Datos

0.368

0.366

Medición 1 Medición 2

También podría gustarte