Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
"
1 of 27
Su poder de clculo
El conocimiento de
Construccin de clculos
Manejo de datos
Visualizacin
Sus notebooks
"
2 of 27
2004 Mar.
M.A. Rodrguez-Meza
Qu es Mathematica?
Mathematica es un sistema para hacer matematicas y otros clculos tcnicos; nosotros
preguntamos y Mathematica nos da una respuesta. Adems, Mathematica contiene un
lenguaje de programacin que nos permite crear funciones o programas simples o sofisticados, y una interface que la hace de procesador de palabras, como herramienta de
bosquejo y preparacin de textos matemticos.
Tres de las clases de cmputo que Mathematica hace son:
-clculos numricos (como los aritmticos y la evaluacin de funciones),
-clculos simblicos (como los algebr icos y de clculo diferencial o integral), y
-clculos grficos (como mostrar grficas en dos o tres dimensiones de datos o funciones).
Las dos partes principales de Mathematica son el ncleo (kernel) y la interface con el
usuario (front end). El front end es la interface de Mathematica, la cual nos provee con
un procesador de palabras y un ambiente para bosquejar, llamado notebook, que nos
permite introducir comandos y texto que lo acompaa, mientras que el kernel realiza los
clculos matemticos.
!
"
3 of 27
Los notebooks
La manera de interactuar con Mathematica es atravs de documentos llamados notebooks. Este tutorial es un ejemplo de un notebook. Los notebooks pueden tener varias
formas. Pero tpicamente consisten de celdas que contienen texto, clculos, o grficas.
Las celdas se indican por parentesis cuadrados a la derecha. Esta celda es una celda de
texto. La entrada para Mathematica que se desea evaluar va en celdas de entrada (input
cells).
Para crear una nueva celda de entrada, haga clic fuera de una celda existente y comienze
a teclear. Cuando hayas terminado presiona . Mathematica evalua la entrada y
pone el resultado en una celda de salida (output cell) abajo inmediatamente.
Aqu est un clculo de muestra. El cursor puede estar en cualquier lugar en la celda de
entrada cuando presiones . Las etiquetas In[n]:= y Out[n]= se agregan automticamente.
2004 Mar.
In[1]:=
5+3
Out[1]=
264 4
Out[2]=
66
"
4 of 27
19 ^ 50
Out[3]=
8663234049605954426644038200675212212900743262211018069459689001
19. ^ 50
Out[4]=
8.66323 1063
2 ^ 20 3 ^ 20;
Se puede usar el simbolo % para indicar el resultado del ltimo clculo que se hizo. Esto
trabaja sin importar donde el clculo aparecesea en el mismo notebook o en otro.
2004 Mar.
M.A. Rodrguez-Meza
In[6]:=
Sqrt@%D
Out[6]=
60466176
In[9]:=
Out[9]=
Solve@x ^ 2 + x a, xD
1
1
!!!!!!!!!!!!!!
!!!!!!!!!!!!!!
99x H-1 - 1 + 4 a L=, 9x H-1 + 1 + 4 a L==
2
2
"
5 of 27
Log@2, 8D
Out[10]=
Las funciones pueden ser mezcladas de manera entrelazada. Se usa I o para representar
!!!!!!
-1 . Para obtener , teclee ii, donde es la tecla ESCAPE.
In[11]:=
Out[11]=
Cos@ArcSin@I xDD
!!!!!!!!!!!!
!
1 + x2
Casi todas las funciones y comandos ms comunes tienen nombres que se deletrean completamente. La constante p est representada pr el smbolo preconstruido Pi. Lo introduces como p tecleando p.
In[12]:=
IntegerPart@Pi ^ 2D
Out[12]=
2004 Mar.
+ Sin3@ 4 D
!!!
2 2
"
6 of 27
125 !
1882677176888926099743767702491600857595403648714924258875982315083531563316135988668
829328894959231336464054459300577406301619193413805978188834575585470555243263755650
07131770880000000000000000000000000000000
N@%D
Out[15]=
1.88268 10209
N@ED
Out[16]=
2.71828
Puedes especificar cuantos digitos generar en un clculo. Aqu est el valor de e hasta 60
digitos.
In[17]:=
N@E, 60D
Out[17]=
2.71828182845904523536028747135266249775724709369995957496697
"
7 of 27
2004 Mar.
M.A. Rodrguez-Meza
Expand@Ha b - c dL ^ 2 + Ha d + b cL ^ 2D
Out[18]=
a2 b2 + b2 c2 + a2 d2 + c2 d2
In[19]:=
Factor@%D
Out[19]=
Ha2 + c2 L Hb2 + d2 L
La funcin Simplify usa varios mtodos para reducir expresiones a sus formas ms
simples.
In[20]:=
Simplify@Cos@xD ^ 4 - Sin@xD ^ 4D
Out[20]=
Cos@2 xD
Out[21]=
p Csc@p zD
"
8 of 27
Creando grficas 2D y 3D
Aqu est la grfica de una funcin de una variable. La lista {x, 0, 4} especifica el
rango de la grfica.
2004 Mar.
In[22]:=
0.5
-0.5
-1
1
0.5
0
-0.5
-1
0
2
4
6
"
9 of 27
1
Aqu est la integral
x. El resultado no tiene constante de integracin.
x4 -a4
In[24]:=
Out[24]=
Integrate@1 Hx ^ 4 - a ^ 4L, xD
x
ArcTan@
D
Log@a - xD
Log@a + xD
a
-
+
-
2 a3
4 a3
4 a3
2004 Mar.
M.A. Rodrguez-Meza
D@%, xD
Out[25]=
1
1
1
-
-
-
x2
4 a3 Ha - xL
4 a3 Ha + xL
2 a4 H1 +
L
a2
Simplify@%D
Out[26]=
-a4 + x4
Out[27]=
1.20566
"
10 of 27
x = 3; y = x + 1; Sqrt@x ^ 2 + y ^ 2D
Out[28]=
Los valores que uno asigna a las variables son mantenidos hasta que uno explicitamente
los elimina (clear)o se finaliza la sesin Mathematica. Aqu tu podras haber esperado
una expansin algebraica, pero en vez obtuviste un nmero, ya que x y y aun tienen los
valores numricos que fueron asignados antes.
In[29]:=
Expand@Hx + yL ^ 5D
Out[29]=
16807
Para evitar tal comportamiento inesperado, es bueno limpiar los valores de las variables
tan pronto se termine su uso.
In[30]:=
Out[30]=
x5 + 5 x4 y + 10 x3 y2 + 10 x2 y3 + 5 x y4 + y5
2004 Mar.
1 + x ^ 2 + x ^ 4 + x ^ 5 . x 3
Out[31]=
334
"
11 of 27
Solve@x ^ 2 + x a, xD
1
1
!!!!!!!!!!!!!!
!!!!!!!!!!!!!!
99x H-1 - 1 + 4 a L=, 9x H-1 + 1 + 4 a L==
2
2
El operador = se reserva para asignar valores a las variables. Si usas = en vez de ==,
Solve te previene, pero se pudo haber asignado el valor a la variable, sin darnos cuentas.
Se pueden resolver ecuaciones con ms de una variable. En la salida, cada sublista representa una solucin.
In[33]:=
Out[33]=
"
12 of 27
solutions = NSolve@x ^ 3 + x + 1 0, xD
2004 Mar.
10
M.A. Rodrguez-Meza
NSolve regresa una lista de reglas. Para obtener los nmeros de x, simplemente se
aplica esas reglas a x usando el operador /.
In[36]:=
Out[36]=
x . solutions
Para ecuaciones no polinomiales, se usa FindRoot para buscar sus las soluciones. El
argumento {x, 1} dice a Mathematica que busque una solucin numrica comenzando
con x = 1.
In[38]:=
Out[38]=
"
13 of 27
Aqu est una solucin numrica a una ecuacin diferencial no-lineal. El resultado es una
regla para la funcin y. InterpolatingFunction representa una funcin numrica
que contiene datos numricos indicados por <>.
In[40]:=
Out[40]=
Puedes usar /. para aplicar la regla a la funcin. El siguiente comando hace una grfica
evaluando y[x] en un rango de valores de x.
2004 Mar.
11
In[41]:=
10
15
20
25
30
-0.25
-0.5
-0.75
"
14 of 27
f@x_D := Expand@H1 + xL ^ 2D
81 + 2 x + x2 , 4.41, 1 + 2 a + a2 + 2 b + 2 a b + b2 <
"
15 of 27
2004 Mar.
12
M.A. Rodrguez-Meza
Abs@-22D
Mod@7, 3D
81, 2, 3<
a Hb cL
p ^ 2 . p 2
y = 3.8
Solve@x ^ 2 3, xD
f@x_D := x ^ 2
f@x_D := x ^ 2
"
16 of 27
Un disco de radio R est uniformemente cargado con una densidad de carga superficial
constante, dada por s = HQ p R2 L, donde Q es la carga total.
a. Encuentre el potencial y el campo elctrico a lo largo del eje del disco.
b. Tome el lmite cuando R para obtener el campo por un plano uniformemente
cargado.
2004 Mar.
13
In[48]:=
Off@General::spell1D;
Off@General::spellD;
Off@Clear::wrsymD; Clear@"Global`*"D
!
"
17 of 27
dq
dV = k
;
!!!!!!!!!!!!!!
2
x + r2
La carga sobre el anillo est relacionada a la densidad superficial sobre el disco por
In[50]:=
dq = 2 p r dr s;
Out[51]=
dq = s dA.
Ya
dV
dr
2kprs
!!!!!!!!
!!!!!!!
r2 + x2
Para obtener el potencial total debido a todo el disco, integramos la expresin anterior
desde r = 0 hasta r = R:
In[52]:=
PotencialDisco =
dV
IntegrateA , 8r, 0, R<, Assumptions 8R > 0, x > 0<E
dr
!!!!!!!!
!!!!!!!
R2 + x2 M s
Out[52]=
2 k p I-x +
In[53]:=
Needs["Calculus`VectorAnalysis`"];
2004 Mar.
14
In[54]:=
Out[54]=
M.A. Rodrguez-Meza
"
18 of 27
Eplano = Limit@Edisco, R D
82 k p s, 0, 0<
Out[56]=
1
Eplano . 9k =
4 p e0
s
9 , 0, 0=
2 e0
"
19 of 27
In[59]:=
Off@General::spell1D;
Off@General::spellD;
Off@Clear::wrsymD; Clear@"Global`*"D
!
"
20 of 27
2004 Mar.
15
In[61]:=
In[63]:=
Out[63]=
In[64]:=
In[65]:=
eq1 = 8
4 p r2 Eoutside qTotal
H* r>R *L,
2
4 p r Einside qEnclosed H* r<R *L<;
4 p R3
qTotal = r;
3
4 p r3
qEnclosed = r;
3
0.25
0.2
0.15
0.1
0.05
0.5
In[66]:=
1.5
2.5
medium1 = 8Hue@.2D,
Polygon@881, .51<, 81, 0<, 83, 0<, 83, .51<<D<;
medium2 = 8Hue@.5D, Polygon@
880, .51<, 80, 0<, 81, 0<, 81, .51<<D<;
2004 Mar.
16
In[68]:=
M.A. Rodrguez-Meza
Show@
8Graphics@8
medium1,
medium2,
Text@"Inside ", 80.5, 0.4<D,
Text@"Outside", 82.0, 0.4<D<D,
p1
<,
AxesLabel 8"Distance ", "Electric Field"<,
Axes TrueD;
Electric Field
0.5
0.4
Inside
Outside
0.3
0.2
0.1
0.5
1.5
2.5
Distance
"
21 of 27
Out[69]=
In[70]:=
Out[70]=
3r
vIn@r_, R_D =
HvOut@R, RD - Integrate@Einside . sol, 8r, R, r<DL
Simplify
1
- Hr2 - 3 R2 L r
6
2004 Mar.
17
In[71]:=
In[72]:=
v[r_,R_]:= If[r<R,vIn[r,R],vOut[r,R]];
p2 = Plot@v@r, 1D . r 1, 8r, 10-6 , 3<D;
0.5
0.4
0.3
0.2
0.5
In[73]:=
1.5
2.5
Show@8
Graphics@8
medium1,
medium2,
Text@"Inside ", 80.5, 0.3<D,
Text@"Outside", 82.0, 0.3<D<D,
p2
<,
AxesLabel 8"Distance ", "Potential Field"<,
Axes True
D;
Potential Field
0.5
0.4
0.3
Inside
Outside
0.2
0.1
0.5
1.5
2.5
Distance
"
22 of 27
2004 Mar.
18
M.A. Rodrguez-Meza
In[75]:=
In[76]:=
In[77]:=
!!!!!!!!!!!!!!!!
!!!!!!!
x2 + y2 + z2 , r rr=
ePlot =
PlotGradientField @-vv@x, yD, 8x, -2, 2<, 8y, -2, 2<,
ScaleFunction H1 &L,
DisplayFunction IdentityD;
2004 Mar.
19
In[78]:=
Show@8vPlot, ePlot<,
DisplayFunction $DisplayFunctionD;
2
-1
-2
-2
-1
!
"
23 of 27
In[81]:=
Needs@"Graphics`PlotField3D` "D;
ePlot3D = PlotGradientField3D @
-vv@x, y, zD, 8x, 0, 2<, 8y, 0, 2<, 8z, 0, 2<,
VectorHeads True,
ScaleFunction H1 &L,
DisplayFunction IdentityD;
point@r_, R_: 1D :=
8r Sin@qD Cos@jD, r Sin@qD Sin@jD, r Cos@qD<
2004 Mar.
20
In[82]:=
In[83]:=
M.A. Rodrguez-Meza
potPlot3D@r_D :=
ParametricPlot3D @
point@rD Evaluate, 8q, 0, p 2<, 8j, 0, p 2<,
PlotPoints 12,
DisplayFunction IdentityD
Show@
ePlot3D,
Table@potPlot3D@rD, 8r, 1 2, 2, 1 2<D,
PlotRange 80, 1<,
DisplayFunction $DisplayFunctionD;
"
24 of 27
b. Exprese el potencial en coordenadas esfricas y expandalo en potencias de d r, manteniendo solo los trminos de orden dominante. Clcule el campo elctrico.
2004 Mar.
21
c. Anime el campo elctrico esttico de un dipolo rotando. Esto es, considere un dipolo
que est girando alrededor del eje-y con un ngulo q, y grfique el campo elctrico de
este dipolo in el plano 8x, z< para una secuencia de valores de q.
Solucin
In[84]:=
Off@General::spell1D;
Off@General::spellD;
In[86]:= Clear["Global`*"];
"
25 of 27
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!
Hp0 - p1L.Hp0 - p1L
In[88]:=
Out[88]=
q
q
-
+
2
2
"################################
##########
"################
################
#######
d
d
2
2
2
2
x + y + H-
zL
x
+
y
+
H
- zL
2
2
2004 Mar.
22
In[89]:=
M.A. Rodrguez-Meza
-1
-2
-2
In[90]:=
-1
x-axis
Needs@"Graphics`PlotField3D` "D;
2004 Mar.
23
In[91]:=
plot =
PlotGradientField3D @
-dipole . 8q 1, d 1< Evaluate,
8x, -0.5, 0.5<, 8y, -0.5, 0.5<, 8z, -1.0, 1.0<,
PlotPoints 6,
ColorFunction Hue,
VectorHeads True,
ScaleFunction H1 &L,
BoxRatios 81, 1, 2<
D;
2004 Mar.
24
In[92]:=
M.A. Rodrguez-Meza
"
26 of 27
Out[94]=
In[95]:=
Out[95]=
In[96]:=
Out[96]=
Needs@"Calculus`VectorAnalysis` "D;
x2rRule = Thread@8x, y, z<
CoordinatesToCartesian @8r, q, j<, SphericalDD
8x r Cos@jD Sin@qD, y r Sin@qD Sin@jD, z r Cos@qD<
j
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!
!!!!!!!!! -
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!
!!!!!!!!! z
d2 + 4 r2 + 4 d r Cos@qD {
k d2 + 4 r2 - 4 d r Cos@qD
dipoleR =
Series@potential, 8r, , 2<D Normal Simplify
d q Cos@qD
r2
2004 Mar.
25
In[97]:=
Out[97]=
"
27 of 27
In[99]:=
rotDipole@q_D =
H monopole@+1, 1 2 8+Sin@qD, 0, +Cos@qD<D +
monopole@-1, 1 2 8-Sin@qD, 0, -Cos@qD<D L;
frames = 1;
Do@
PlotGradientField@
-rotDipole@qD . 8y 0<,
8x, -2, 2<, 8z, -2, 2<,
PlotPoints 14,
VectorHeads True,
ScaleFunction H1 &LD
, 8q, 2 p frames, 2 p, 2 p frames<D
2004 Mar.