Introducción a wolfram MathematicaElborado por Kevin Rico y Pabel Cárdenas
¿Qué es Mathematica?Mathematica es un software utilizado en diversas áreas científicas, de ingeniería y ciencias de la computación. Creado por Stephen Wolfram.
Es considerado un programa de álgebra computacional con un poderoso lenguaje de programación de propósito general.
¿Por qué se usa Mathematica FS-321 y FS-415?Es una herramienta muy útil al momento de calcular diversos parametros físicos y matemáticos referentes a la electricidad y magnetismo;
que a cálculo manual nos llevaría una gran cantidad de tiempo.
Fundamentos y operaciones básicas de mathematicaAl igual que cualquier lenguaje de programación, Wolfram Mathematica tiene un componente de entrada y uno de salida. En este caso, la
entrada del programa serían las operaciones matemáticas ingresadas por el usuario y la salida sería el resultado de realizar dicha operación
por parte del programa. Dependiendo del problema matemático que se este tratando, se pueden asignar condiciones para obtener resultados
en términos de variables cuyo valor es desconocido, pero que brindan una solución generalizada que puede ser el resultado de la aplicación
de un modelo físico.
Para realizara una operacion básica en Mathematica solo basta con escribirla tal cual estamos acostumbrados a escribirla,
por ejemplo:
5 + 6 (8 * 7) / 3
117
Para que Mathematica interprete y sepa que el usuario hizo una entrada y espera una salida (respuesta a la operación) se debe presionar las
teclas Shift+Enter asi Mathematica interpretara este comando como una operacion algebraica y nos devolverá la respuesta.
Observe que una vez que el programa ha realizado la operacion, este le indica cual es la entrada y c\.13al es la salida del programa. Esto queda
evidenciado al lado izquierdo de cada componente, donde In[1]:= representa la entrada al programa y Out[1]= representa la salida del
programa. Esto ademas evidencia que el programa ejecuto correctamente la operacion solicitada. En caso de haber un error en la entrada del
programa, aparecera un mensaje de error, ademas que el potencial error aparecera marcado en naranja o rojo, como se muestra
acontinuación.
5 - * 2
Syntax::sntxf : "5 -" cannot be followed by " * 2".
◼ Asignación de variables.Para asignar un valor a una variable solo basta escribir la variable deseada seguido del signo igual y el valor (numérico o no numérico) que le
queremos asignar, por ejemplo:
a = 5
5
c := 10
hola : a + c
hola : 15
Es preferible utilizar letras minúsculas ya que algunas letras en mayúsculas están reservadas para comandos especiales en Mathematica
◼ Algunas funciones de MathematicaMathematica posee las funciones trigonométricas, logarítmicas, exponenciales etc,
por ejemplo:
Sin[0.5]
0.479425538604203`
Se usan corchetes en lugar de paréntesis y en la primera letra del comando pregrabado en Mathematicas comienza en mayúscula, aparece
siempre una lista de opciones antes de que finalizemos de copiar el comando como una ayuda extra en Mathematica.
ArcSin[1]
π
2Log[10, 10]
1
Sqrt[16]
4
Funciones que dependen de varibles Para ingresar una función en terminos de otra variable o variables en Mathematica se hace lo siguiente:
F[x_] =
Se ingresa el nombre de la variable en este caso F[x_] el argumento dentro de los corchetes me dictan de que variable depende mi función ya
que pueden haber muchas letras dentro de mi función, pero Mathematica interpretara a esta letra como la variable que depende mi función.
Por ejemplo si queremos ingresar la función
F (x) = 1x2 + x + 1F[x_] = 1 / (x^2 + x + 1)
1
1 + x + x2
Para ingresar una función que dependa de dos variables, solo se le agrega a la entrada la variable extra dentro de los corchotes, separado por
una coma de la siguiente forma [x_,y_]
Por ejemplo:
G (x, y) = x√x2 + y2
G[x_, y_] = x Sqrtx2 + y2
x
x2 + y2
Para evaluar la función solo se necesita, sustituir la variable por el valor deseado.
2 Introducción 321.nb
F[2]
1
7
Derivadas e integrales en MathematicaPrimero utilizamos la paleta para realizar estas operacionesCuando hablamos de realizar cálculos mas avazados en Mathematica como derivadas e integrales, tenemos una ayuda extra para escribir los
comandos :
Cos[x] ⅆx
Sin[x]
0
π
Sin[ω] ⅆω
2
R Sin[θ] * Cos[ρ] ⅆρ ⅆθ ⅆR
-1
2R2 Cos[θ] Sin[ρ]
Dx2 + x, x
1 + 2 x
Tan[x] ⅆx
1
2 2-2 ArcTan1 - 2 Tan[x] + 2 ArcTan1 + 2 Tan[x] +
Log1 - 2 Tan[x] + Tan[x] - Log1 + 2 Tan[x] + Tan[x]
Cuando hablamos de integrales y derivadas hay que recordar que ciertas derivadas pueden estar condicionadas, algunos valores pueden
hacer que la integral este dentro del campo de los números complejos, por eso es recomendable definir y poner condiciones para cada
parámetro que no sea la variable de integración.
0
Infinityⅇn x
ⅆx
ConditionalExpression-1
n, Re[n] < 0
Mathematica nos dice la condición para que la integral sea cierta dentro del espacio físico.
Assumingn < 0, 0
Infinityⅇn x
ⅆx
-1
nNos damos cuenta que el uso de las palettes que nos ofrece Mathematica es muy útil ya que nos simplifica el ingreso de los comandos, pero
nunca es la mejor opción utilizar estos ya que fuerza mucha al programa cuando se trata de integrales triples o un gran cálculo.
La mejor opción para el buen uso de Mathematica es utilizar los comandos Integrate
Por ejemplo si queremos realizar la siguiente integral triple:∫ ∫ ∫ x Sen(y) Cos(z) ⅆx ⅆ y ⅆz
Integrate[Integrate[Integrate[x Sin[y] * Cos[z], z], y], x]
-1
2x2 Cos[y] Sin[z]
Introducción 321.nb 3
Para una integral definida, solo se necesita escribir dentro del argumento de Integrate los rangos de integración separados por una coma y
dentro de llaves, que serían los límites de la variable de integración.
Por ejemplo:
R[x_] = x^2 + x + 2
2 + x + x2
Integrate[R[x], {x, 0, 10}]
1210
3Cuando la respuesta que Mathematica no nos de una expresion totalmente numérica, y necesitamos saber cual es ese valor numérico se usa
N[%]
4 π (Sqrt[2] + 2)
4 2 + 2 π
N[%]
42.9043
Gráficos en Mathematica.Mathematica nos ofrece una gran variedad de ploteos de gráficas, nos ayuda mucho al análisis de señales, descomposición de espectral,
series de Fourier.
Vamos comenzar con los ploteos mas sencillos.
◼ ListPlotEste comando sirve para graficar un conjunto de datos, escritos como pares ordenados. Para esto creamos una variable que contenga todos
estos datos
por ejemplo los siguientes datos
x 2 4 5 9 10
y 0.2 1.5 1.6 1.9 2.5
Graficará los puntos dentro de una grafica.
S = {{2, 0.2}, {4, 1.5}, {5, 1.6}, {9, 1.9}, {10, 2.5}}
{{2, 0.2}, {4, 1.5}, {5, 1.6}, {9, 1.9}, {10, 2.5}}
ListPlot[S, PlotStyle → Blue]
2 4 6 8 10
0.5
1.0
1.5
2.0
2.5
◼ Plot y Plot3DEste comando graficara cuanquier funcion que depende de x, y o z, o cualquier otra variable especificada,
por ejemplo:
4 Introducción 321.nb
g[x_] = x^2 + x + 1
1 + x + x2
Plot[g[x], {x, -1, 10}, PlotStyle → Brown]
2 4 6 8 10
20
40
60
80
100
f[x_, y_] = Sin[x] * y^2
y2 Sin[x]
Plot3D[f[x, y], {x, -10, 10}, {y, -10, 10}, PlotStyle → Gray]
◼ StreamPlotCuando queremos graficar campos vectoriales, como es muy usal en FS‐321 y FS‐415, primero debemos saber definir un campo vectorial en
Mathematica, lo hacemos de la siguiente manera.
f[x_, y_] = {x^2 + y, y^2 + 2}
x2 + y, 2 + y2
Este es un campo vectorial y lo podemos graficar con el comando StreamPlot
StreamPlot[f[x, y], {x, -10, 10}, {y, -10, 10}]
-10 -5 0 5 10
-10
-5
0
5
10
Introducción 321.nb 5
◼ ContourPlot Este comando graficará el campo escalar (curvas de nivel), por ejemplo:
F[x_, y_] = x Sin[x + y]
x Sin[x + y]
ContourPlot[F[x, y], {x, -10, 10}, {y, -10, 10}]
-10 -5 0 5 10
-10
-5
0
5
10
◼ Ajuste de Datos Como es acostumbrado en un laboratorio, el ajuste de datos es una herramienta muy importante. Asi como se utilizo en los laboratorios
anteriores, mejor conocido como regresión lineal, en este laboratorio no es la excepción, por eso es necesario que el alumno pueda hacer
ajuste de datos en Mathematica.
Existen varios comandos para hacer un ajuste lineal, cuadratico o cualquier tipo de función con la que trabajemos.
Ajuste linealEjemplo 1: Se tiene un conjunto de pares ordenados de corriente y voltaje, medidos en un circuito resistivo. Si el circuito consta de una
resistencia solamente; determine su valorV 5 10 20I 1 2 4
d = {{1, 5}, {2, 10}, {4, 20}}
{{1, 5}, {2, 10}, {4, 20}}
g1 = ListPlot[d, PlotStyle → Green]
1.5 2.0 2.5 3.0 3.5 4.0
5
10
15
20
Para encontrar la gráfica que se ajusta a este conjunto de datos que parecen lineales utilizamos el comando FindFit
g11 = FindFit[d, a * x + b, {a, b}, x]
a → 5., b → -2.05116 × 10-15
6 Introducción 321.nb
La ecuación resultante sería igual a 5 x - 2.05116 x10-15, donde el 5 representa el valor de la resistencia. Dicho resultado se puede graficar
utilizando el comando Plot, se abren corchetes se escribe la ecuación encontrada, luego se separa por una coma y entre llaves se escribe el
intervalo de x el cual queremos mostrar en la gráfica.
g2 = Plot5 * x - 2.05116 * 10(-15), {x, 0, 20}
5 10 15 20
20
40
60
80
100
También se podría seleccionar una ajuste distinto a una ecuación lineal; por ejemplo se repetirá el ejercicio anterior utilizando un ajuste
cuadrático.
FindFitd, a * c2 + b * c + e, {a, b, e}, c
a → 2.48453 × 10-15, b → 5., e → 1.0613 × 10-14
La ecuación cuadrática resultante sería igual a 2.48453 x10-15 c2+5 c +1.0613 x10-14
Plot2.4853 * 10-15* c2 + 5 * c + 1.0613 * 10-14, {c, 0, 20}
5 10 15 20
20
40
60
80
100
Se puede notar que el ajuste lienal es el más adecuado para este conjunto de datos.
Ahora se graficarán los puntos y la ecuación de ajuste en una misma gráfica. Se le agregara nombre a los ejes ya que es necesario; esto se
puede lograr escribiendo AxesLabel→{"nombre en eje x", "nombre en eje y"}.
Show[g1, g2, AxesLabel → {"I(amperios)", "V(voltios)"}]
1.5 2.0 2.5 3.0 3.5 4.0I(amperios)
5
10
15
20
V(voltios)
Ejemplo 2: Se tiene un conjunto de pares ordenados de tiempo(s) y voltaje(V), medidos en un circuito serie RC
(0,0),(0.20,1.46),(0.40,2.69),(0.60,3.58),(0.80,4.32),(1,4.88),(1.20,5.31),(1.40,5.66),(1.60,5.88),(1.80,6.11),(2,6.24),(2.20,6.38),(2.40,6.43),(2.60,6.60)
,(2.80,6.57),(3,6.69),(3.30,6.74). Se sabe que la ecuación de voltaje de carga de un capacitor es la siguiente: Vc = V 1 - ⅇ-t
τ ; donde Vc es el
voltaje del capacitor, τ la constante de decaimiento, V el voltaje de la fuente y t el tiempo.
a)Grafique los puntos en color azul.
b)Calcule el valor de la constante te tiempo τ y V.
c)Grafique la función obtenida con los valores resultantes, en color anaranjado.
d)Muestre en una sola gráfica el inciso a y c, además nombre los ejes.
Introducción 321.nb 7
datos = {{0, 0}, {0.20, 1.46}, {0.40, 2.69}, {0.60, 3.58}, {0.80, 4.32},
{1, 4.88}, {1.20, 5.31}, {1.40, 5.66}, {1.60, 5.88}, {1.80, 6.11}, {2, 6.24},
{2.20, 6.38}, {2.40, 6.43}, {2.60, 6.60}, {2.80, 6.57}, {3, 6.69}, {3.30, 6.74}}
{{0, 0}, {0.2, 1.46}, {0.4, 2.69}, {0.6, 3.58}, {0.8, 4.32},{1, 4.88}, {1.2, 5.31}, {1.4, 5.66}, {1.6, 5.88}, {1.8, 6.11}, {2, 6.24},{2.2, 6.38}, {2.4, 6.43}, {2.6, 6.6}, {2.8, 6.57}, {3, 6.69}, {3.3, 6.74}}
gr1 = ListPlot[datos, PlotStyle → Blue,
PlotLegends → {"Puntos de Carga de un capacitor "}]
0.5 1.0 1.5 2.0 2.5 3.0
1
2
3
4
5
6
Puntos de Carga de un capacitor
FindFitdatos, V 1 - ⅇ-t
τ , {V, τ}, t
{V → 6.82558, τ → 0.802169}
gr2 = Plot6.8255768864073` 1 - ⅇ-t
0.8021692627102041` ,
{t, 0, 4}, PlotStyle → Orange, PlotLegends → {"Curva de Ajuste"}
1 2 3 4
1
2
3
4
5
6
Curva de Ajuste
Show[gr1, gr2, AxesLabel → {"t(s)", "Vc(V)"}]
0.5 1.0 1.5 2.0 2.5 3.0t(s)
1
2
3
4
5
6
Vc(V)
Puntos de Carga de un capacitor
Curva de Ajuste
Ejemplo: Cacule el campo teniendo una función cualquiera.
Para calcular el campo, teniendo una función escalar se utilizan los siguientes comandos:
F2[x_, y_] = 2 * Sin[x + y]
2 Sin[x + y]
8 Introducción 321.nb
GF2[x_, y_] = -Grad[F2[x, y], {x, y}, "Cartesian"]
{-2 Cos[x + y], -2 Cos[x + y]}
Se pueden graficar la función y el campo, utilizando los siguientes comandos :
g = ContourPlot[F2[x, y], {x, -8, 8}, {y, -8, 8}];
g1 = StreamPlot[GF2[x, y], {x, -10, 10}, {y, -10, 10}];
Show[g, g1]
-5 0 5
-5
0
5
Introducción 321.nb 9