Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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
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.
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
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.
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
⋮ ⋮
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.
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.
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]:= FullSimplifyCos[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 π]
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&&...
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
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};
Out[51]= x 2 + y2
In[52]:= Abs[x - y]
Out[52]= Abs[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
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 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 ejes: AxesStyle->{{Opciones eje X},{Opciones eje Y}}, donde estas opciones son las mismas uqe se pueden utilizar en PlotStyle
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”}
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
-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).
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)
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]:= NSolvex + 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):
In[62]:= Reduce4 x2 - 8 ≥ 0, x
Out[62]= x≤- 2 || x ≥ 2
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.
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
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]
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
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.
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]
NonlinearModelFit[Datos,modelo,{parámetros},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 }, ...}
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.
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:
-
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:
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
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
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
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.
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.
12
10
Out[82]= 6
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
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.
12
10
Out[86]=
6
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