Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MATHEMATICA 7.0
2
Pgina
1.2- QU ES MATHEMATICA?
Mathematica es un paquete de software de matemticas de uso fcil y gran
capacidad que integra los elementos siguientes:
clculo numrico, clculo simblico, grafismo en 2D/3D, lenguaje de programacin y
aplicaciones.
Kernel. Cuando se seleccione Quit Kernel se necesitar evaluar las celdas de nuevo ,
como si no estuvieran evaluadas anteriormente.
Por otra parte, al escribir o ejecutar un comando incorrectamente, puede
suceder que Mathematica entre en un bucle infinito o responda incorrectamente. Para
solucionar este problema se seleccionar Evaluation/Interrupt Evaluation o
Evaluation/Abort Evaluation.
Una sola celda puede consistir de varias lneas de escritura. Cuando se utiliza
la tecla Enter, Mathematica comienza una nueva lnea en la misma celda. Para iniciar
una nueva celda para la siguiente entrada, coloque el cursor debajo de la celda actual
y luego escriba su entrada. Una lnea horizontal en el Notebook indica que el cursor se
encuentra en la parte superior de una celda. A veces es ms fcil moverse a una
nueva lnea usando las flechas "arriba y abajo" del teclado.
Mathematica automticamente agrupa las celdas (como configuracin por
defecto). Por ejemplo, la Output[number] y su correspondiente Input[number] se
agrupan automticamente. Esta agrupacin es designada por un corchete situado ms
a la derecha, que incluye el corchete de la celda Input[number] y el corchete de la
Output[number]. Si hace doble clic en el corchete situado ms a la derecha de este
grupo entrada-salida, entonces slo se mostrar el contenido de la celda de entrada.
Tambin puede agrupar manualmente varios grupos de celdas Input-Output
manteniendo pulsada la tecla Shift y haciendo un clic con el ratn sobre el corchete
superior y luego sobre el inferior del grupo de celdas que se quiere agrupar; teniendo
seleccionado el grupo de celdas, y haciendo un clic en el botn derecho del ratn,
aparecer un men con la opcin agrupar celdas (Group Cells). Si hace doble clic en
el botn izquierdo del ratn sobre un corchete de grupo en el extremo derecho de la
pantalla, el grupo se condensar y slo se mostrar el contenido de la primera celda.
Tenga en cuenta que el corchete derecho de un grupo condensado aparece de forma
diferente que el de las celdas que no estn condensadas. Si hace doble clic de nuevo
en el corchete, todos los contenidos de todas las celdas del grupo volvern a aparecer.
Una forma alternativa de agrupar varios grupos de celdas Input-Output consiste en
elegir Grouping en el men Cell y seleccionar Group Cells/Group Together. Las celdas
que estn agrupadas pueden ser desagrupadas haciendo un clic en el botn derecho
del ratn y eligiendo Ungroup Cells en el men que aparece. El comando Ungroup
Cells/Group Normally est tambin disponible en Grouping del men Cell.
Para eliminar una celda, seleccione el corchete derecho que la designa y
seleccione la opcin Clear en el men Edit. En dicho men Edit se pueden encontrar
otros comandos de edicin tiles como Cut, Copy, Copy as y Paste. Como alternativa
1.4.2.- EJEMPLOS
In[1]:=
Out[1]=
In[2]:=
Out[2]=
In[3]:=
Out[3]=
In[4]:=
Out[4]=
43 2
10
25
15
35
25
40 1
30
Out[6]=
In[7]:=
Out[7]=
In[8]:=
Out[8]=
3^100 18
515 377 520 732 011 331 036 461 129 765 621 272 702 107 522 019
1 8 3 13
-
11
104
Sqrt2
1. 8 3 13
-0.105769
In[10]:=
Out[10]=
-0.105769
Out[9]=
In[11]:=
1 8 3 13 N
Out[11]=
-0.105769
Nota: Aunque por defecto nos presenta 6 dgitos significativos, la precisin con la que
trabaja internamente es de 16 dgitos.
In[12]:=
N1 8 3 13, 20
Nexpresin,n muestra "n" cifras significativas
Out[12]=
-0.10576923076923076923
In[13]:=
NSqrt2, 3
Out[13]=
1.41
In[14]:=
Out[14]=
3 cifras significativas
N1.2234 1.2, 3
3 cifras significativas. 4 cifras decimales
0.0234
Out[15]=
2.71828182845905
In[16]:=
x52
Out[16]=
10
In[17]:=
7 x
El valor lo mantiene hasta que lo eliminemos o modifiquemos
Out[17]=
70
In[18]:=
x3
Out[18]=
In[19]:=
7x
Out[19]=
21
In[20]:=
In[21]:=
Out[21]=
x 5; y 2; z 8; 2 x 5 y z^3
Out[22]=
-512
In[23]:=
x 5; y 2; z 8; 2 x 5 y z^3;
In[24]:=
Clearx, y, z
Suprimimos los valores asignados a las variables
In[25]:=
2 x 5 y z^3
Out[25]=
2 x + 5 y - z3
In[26]:=
x 5; y 2; z 8; 2 x 5 y z^3
Out[26]=
-512
In[27]:=
In[28]:=
2 x 5 y z^3
Out[28]=
2 x + 5 y - z3
1.8.- PALETAS
Una de las novedades ms importantes que se introdujo en la versin 3.0 y
que ha continuado hasta la versin actual es lo que se denominan paletas (palettes).
Las paletas son pequeas ventanas que contienen algunas de las operaciones,
rdenes e instrucciones ms usuales que necesitaremos durante nuestro trabajo y que
podemos activar seleccionndolas dentro del men Palettes. Tambin se pueden
desactivar cerrando la ventana correspondiente. Estas paletas incluyen todo tipo de
operaciones, desde las ms bsicas hasta otras ms complejas de Clculo Algebraico,
Clculo Integral o de Clculo Diferencial.
Smbolos comnmente utilizados en operaciones matemticas tales como el de
integracin ( ), derivacin (), sumatorio (S), fracciones (a/b) y exponenciacin (x a ),
estn disponibles en la paleta Basic Math Assistant. Las letras griegas y otros
smbolos los podemos encontrar en la paleta Special Characters. Para encontrar una
paleta que ha desaparecido, aunque no haya sido cerrada por el usuario, utilice el
men Window. En la parte superior del men Window se lista una serie de comandos
tiles para organizar las ventanas. En la parte inferior del men Window aparecen
todos los notebooks que se encuentran activos, pudiendo seleccionar el que nos
interese en ese momento.
Tambin es
Format/Stylesheet.
interesante
probar
las
opciones
disponibles
dentro
de
Todas las operaciones que conciernen a las celdas (tipo de celda, agrupacin
o divisin) se encuentran en el men Cell.
Tambin es posible introducir un texto o comentario dentro de una celda
evaluable. Para ello utilizaremos la siguiente secuencia: (* texto o comentario *).
Tambin podremos comprobar y/o cambiar el tipo de celda, sin tener que
volver al men Format, eligiendo Window/Show Toolbar y seleccionando la celda
correspondiente.
6
In[32]:=
abc
In[33]:=
a b c
In[34]:=
Print"Total ", 8 2 5
Imprime el texto y el resultado de la operacin
Total = 15
10
Standard
Extra
Needs"Calendar`"
Es necesario cargar el "paquete" previamente
Otra forma de cargar el mismo paquete sera la siguiente :
In[36]:=
Calendar`
Out[37]=
Sunday
11
12
zarn por mayscula y se escribirn sin dejar espacio entre ellas. Adems, los argumentos de las distintas funciones siempre van entre corchetes. Podremos teclearlas o
acceder a ellas a travs de las Paletas dentro del men Palettes.
Dentro de las funciones predefinidas podemos destacar las siguientes:
- Funciones trigonomtricas: Sin[ ], Cos[ ], Tan[ ], Cot[ ], Sec[ ], Csc[ ]
- Funciones trigonomtricas inversas:
ArcSin[ ], ArcCos[ ], ArcTan[ ], ArcCot[ ], ArcSec[ ], ArcCsc[ ]
- Funciones hiperblicas: Sinh[ ], Cosh[ ], Tanh[ ], Coth[ ], Sech[ ], Csch[ ]
- Funciones hiperblicas inversas:
ArcSinh[ ], ArcCosh[ ], ArcTanh[ ], ArcCoth[ ], ArcSech[ ], ArcCsch[ ]
- Valor absoluto: Abs[ ]
- Logaritmo neperiano o natural, en base "e": Log[ ]
- Logaritmo en una base cualquiera "a": Log[a, ]
- Exponencial: Exp[ ]
- Lmite: Limit[ ]
- Transformada de Laplace : LaplaceTransform[ ]
- Transformada inversa de Laplace: InverseLaplaceTransform[ ]
In[38]:=
CosPi 3
1
Out[38]=
In[39]:=
ArcTan7.
Out[39]=
-1.4289
In[40]:=
LogE^2
Out[40]=
In[41]:=
Log10, 1000
Out[41]=
fx_ x^3 2 x 3
Out[42]=
x3 - 2 x + 3
In[43]:=
fx_ : x^3 2 x 3
In[44]:=
Out[44]=
x2 + y2 - 9
In[45]:=
f5
Out[46]=
118
In[47]:=
f5 18
14 381
Out[47]=
5832
13
14
In[48]:=
g4, 2
Out[48]=
11
Out[49]=
Out[50]=
fa
fa b 2 Evaluamos la funcin fx para xa
xb2
a3 - 2 a + 3
a-
b
2
-2 a-
b
2
+3
In[51]:=
hx_ : 3 x ; x 2;
hx_ : 4 x ; 2 x 4;
hx_ : x^2 1 ; x 4;
Segunda forma, usando el comando Which[ ]:
In[54]:=
In[55]:=
Plothx, x, 10, 10
Plotfuncin,variable independiente e intervalo
100
80
60
40
Out[55]=
20
-10
-5
5
-20
10
x^2 2 x 1 x y^2
Out[56]=
x2 + x y2 - 2 x + 1
In[57]:=
x 1; y 2;
In[58]:=
x^2 2 x 1 x y^2
Out[58]=
In[59]:=
Clearx, y
In[60]:=
a x^2 2 x 1 x y^2
Out[60]=
x2 + x y2 - 2 x + 1
In[61]:=
a . x 3
Out[61]=
3 y2 + 4
In[62]:=
Out[62]=
x2 + x y2 - 2 x + 1
In[63]:=
x 2; a
Out[63]=
2 y2 + 1
In[64]:=
Clearx, y
In[65]:=
Out[65]=
x^2 2 x 1 x y^2 . x 1
y2
In[66]:=
x^2 2 x 1 x y^2 . x b
Out[66]=
b2 + b y2 - 2 b + 1
In[67]:=
x^2 2 x 1 x y^2 . x 1, y 2
Out[67]=
In[68]:=
2x3y
Out[68]=
2x+3 y
15
16
Apart1 1 x 5 x
4 x + 1
1
Out[69]=
4 x + 5
1
In[70]:=
Out[70]=
In[71]:=
Simplify3 2 x
1
Out[71]=
In[72]:=
Out[72]=
x + y3 - 2 x + y + 3
y
2
x
2
y
2
^3
fraccin
x5
x^3 5 x 3
x-5
Out[73]=
x3 - 5 x + 3
In[74]:=
Out[74]=
x-5
In[75]:=
Out[75]=
x3 - 5 x + 3
num . x 2
Out[76]=
-3
In[77]:=
den . x 2
Out[77]=
In[78]:=
fraccin . x 2
Out[78]=
-3
Solve[ecuacin, variables] y
NSolve[ecuacin, variables]
Los comandos anteriores los podemos encontrar en las paletas Basic Math
Assistant y Classroom Assistant en la opcin Basic Commands/y=x/More dentro del
men Palettes.
Siempre que la funcin sea polinmica o tenga una forma sencilla de expresin, Solve[ ] da el valor exacto de las races de la funcin y NSolve[ ] da el valor
aproximado de las mismas.
Otro comando interesante es:
Reduce[ecuacin, variables]
Este comando es similar al Solve con la diferencia de que trata de obtener
todas las posibles soluciones. Reduce[ ] realiza la simplificacin lgica previa de la
ecuacin antes de pasar a su resolucin. Es decir, se reduce la ecuacin a un conjunto de ecuaciones o relaciones ms sencillas.
17
18
In[79]:=
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
In[80]:=
Out[80]=
In[81]:=
Out[81]=
In[82]:=
Out[82]=
In[83]:=
Out[83]=
In[84]:=
Out[84]=
2 , x 2
2 - 1
sol1 NSolvex^2 2 x 7 0, x
Valor aproximado de las races
x -3.82843, x 1.82843
sol3 Solvex^2 2 x 7 0, x N
x -3.82843, x 1.82843
sol4 Reducex^2 2 x 7 0, x N
x -3.82843 x 1.82843
b2 - 4 a c - b
2a
, x
b2 - 4 a c - b
2a
Out[85]=
sol1 Solvex^2 2 x 7 0, x
x -1 - 2
2 , x 2
In[86]:=
x1 x . sol11
Out[86]=
-1 - 2
2 - 1
In[87]:=
x2 x . sol12
Out[87]=
2 -1
Roots[ecuacin, variables] y
NRoots[ecuacin, variables]
In[88]:=
Rootsx^2 2 x 7 0, x
Out[88]=
x -1 - 2
In[89]:=
NRootsx^2 2 x 7 0, x
Out[89]=
2 x 2
2 -1
x -3.82843 x 1.82843
En el caso de que la funcin sea ms compleja, se pueden calcular aproximaciones de las races utilizando la orden FindRoot[ ], que utiliza mtodos numricos
para su resolucin.
El comando FindRoot[ ] es til para aproximar algn cero de la funcin dada.
Podemos utilizarla en una de las dos siguientes versiones:
In[90]:=
PlotSin3 x Cos2 x, x, 3, 3
Plotfuncin,variable independiente e intervalo
2.0
1.5
1.0
0.5
Out[90]=
-3
-2
-1
-0.5
-1.0
-1.5
19
20
In[91]:=
Out[91]=
In[92]:=
Out[92]=
FindRootSin3 x Cos2 x 0, x, 0, 1
x 0.314159
FindRootSin3 x Cos2 x, x, 0, 1
Tambin funciona sin ""
x 0.314159
NSolveSin3 x Cos2 x 0, x
Solve::ifun :
Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete
solution information.
Out[93]=
Out[94]=
In[95]:=
Out[95]=
In[96]:=
Out[96]=
sol
Solve3 x 2 y 3 z 2, 2 x 5 y z 7, 8 x 2 y z 1, x, y, z
x
45
161
, y-
172
161
,z
177
161
sol
Reduce3 x 2 y 3 z 2, 2 x 5 y z 7, 8 x 2 y z 1, x, y, z
x
45
161
y-
172
161
177
161
sol
NSolve3 x 2 y 3 z 2, 2 x 5 y z 7, 8 x 2 y z 1, x, y, z
x 0.279503, y -1.06832, z 1.09938
In[97]:=
x x . sol1
Out[97]=
0.279503
In[98]:=
y y . sol1
Out[98]=
-1.06832
In[99]:=
z z . sol1
Out[99]=
1.09938
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
In[101]:=
Out[101]=
In[102]:=
Out[102]=
lista1 0, 1, 2, 3
0, 1, 2, 3
lista2 4, 5, 6, 7
4, 5, 6, 7
Una lista se puede considerar como una nica variable y se puede referenciar
a un elemento concreto de ella indicando su orden entre dos corchetes.
In[103]:=
Out[103]=
In[104]:=
Out[104]=
In[105]:=
Out[105]=
3 lista2
lista3 lista1^2
0, 1, 4, 9
In[106]:=
Out[106]=
lista4 Tablea2 1, a, 1, 6
0, 3, 8, 15, 24, 35
21
22
In[107]:=
Out[107]=
In[108]:=
Out[108]=
lista5 x, 2, 3, casa, a, b, c
x, 2, 3, casa, a, b, c
Tambin podemos construir una grfica a partir de una lista. Por ejemplo,
supongamos que la lista1 representa tiempos y la lista2 las velocidades de una
partcula en dichos tiempos. Para construir la grfica podemos hacer lo siguiente:
In[109]:=
Out[109]=
In[110]:=
4
5
6
7
Out[110]= 5.5
5.0
4.5
0.5
1.0
1.5
2.0
2.5
3.0
In[111]:=
Out[111]=
In[112]:=
Out[112]=
u 2, 4, 7
2, 4, 7
v 1, 0, 3
1, 0, 3
In[113]:=
u.v
Out[113]=
23
In[114]:=
Out[114]=
In[115]:=
Out[115]=
In[116]:=
Out[116]=
Dotu.v
Tambin halla el producto escalar de los vectores u y v
23
uv
2, 0, 21
12, 1, -4
Crossu, v
In[117]:=
Out[117]=
In[118]:=
Out[118]=
a 1, 2, 3, 4
1 2
3 4
b
5 6
7 8
5 6
7 8
23
24
In[119]:=
Out[119]=
In[120]:=
Out[120]=
matriz_identidad IdentityMatrix3
Matriz identidad de orden 3x3
1 0 0
0 1 0
0 0 1
matriz_diagonal
DiagonalMatrix2 m, 5, k3
Matriz diagonal
2m 0 0
0 5 0
0 0 k3
In[122]:=
3a
Out[122]=
In[123]:=
Out[123]=
In[124]:=
Out[124]=
In[125]:=
Out[125]=
In[126]:=
Out[126]=
In[127]:=
Out[127]=
In[128]:=
Out[128]=
In[129]:=
Out[129]=
1 2
;b
3 4
5 6
;
7 8
3 6
9 12
a.b
19 22
43 50
b.a
23 34
31 46
Deta
-2
Transposea
1 3
2 4
Inversea
-2
3
2
-2
Eigenvaluesa N
5.37228, -0.372281
Eigenvectorsa N
0.457427 1.
-1.45743 1.
In[130]:=
Eigensystema N
Obtenemos los autovalores y autovectores
5.37228
-0.372281
0.457427, 1. -1.45743, 1.
Out[130]=
In[131]:=
Out[131]=
In[132]:=
Out[132]=
In[133]:=
Out[133]=
Dimensionsa1
2
Dimensionsa2
2
Dimensionsa
Obtenemos el n de filas y columnas de la matriz
2, 2
Out[134]=
sol
Solve3 x 2 y 3 z 2, 2 x 5 y z 7, 8 x 2 y z 1, x, y, z
x
45
161
, y-
172
161
,z
177
161
x
y ;c
z
2
7 ;
1
In[135]:=
In[136]:=
sol Solvea.b c, x, y, z
Out[136]=
45
161
, y-
172
161
,z
177
161
25
26
5.1.- DERIVACIN
A continuacin se muestran las rdenes correspondientes para hallar las
derivadas de una funcin:
- f'[x] calcula la derivada de f(x) con respecto a la variable x
- D[f[x],x] hace lo mismo que la orden anterior
- D[f[x],{x, n}] calcula la derivada ensima de f (x) con respecto a la variable x
- D[expresin,variable] calcula la derivada de la expresin con respecto a la
variable.
Si la expresin es una funcin de ms de una variable, este comando
calcular la derivada parcial de la expresin
- D[expresin,{variable,n}] calcula la derivada ensima de expresin con
respecto a la variable.
- x f calcula la primera derivada de f con respecto a la variable x
- x,x f calcula la segunda derivada de f con respecto a la variable x
- x,z f calcula la derivada de f con respecto a la variable x, y a continuacin
respecto a la variable z
- D[f[x,z,],x,z] hace lo mismo que la orden anterior
In[137]:=
Out[137]=
In[138]:=
Out[138]=
In[139]:=
Out[139]=
In[140]:=
Out[140]=
fx_ x^3 2 x 3
x3 - 2 x + 3
f'x
3 x2 - 2
Dfx, x
3 x2 - 2
Dfx, x, 2
6x
In[141]:=
Out[141]=
In[142]:=
Out[142]=
In[143]:=
Out[143]=
In[144]:=
Out[144]=
x 3 x^2 z^2 x z
6 x z2 + z
5.2.- INTEGRACIN
Mathematica puede evaluar integrales definidas e indefinidas. Para
resolver integrales tenemos dos formas:
- o bien usamos la orden Integrate[ ],
- o bien los smbolos de la paleta Basic Math Assistant en el men Palettes, y
ms concretamente en la pestaa dS de la seccin Basic Commands o en la pestaa
Advanced de la seccin Calculator.
La orden Integrate[ ] tiene tres usos distintos:
- Integrate[f[x],x] para calcular la primitiva de f(x) con respecto a la variable x.
- Integrate[f[x],{x,xmin,xmax}] para la integral definida de f(x) con respecto
a la variable x en el intervalo xmin y xmax.
- Integrate[f[x],{x,xmin,xmax},{y,ymin,ymax}] para la integral mltiple (doble)
de f(x) con respecto a la variables x e y.
Tambin es posible calcular integrales numricas. Para ello, utilizaremos la
orden NIntegrate[ ], la cual nos proporcionar un valor aproximado en lugar del
exacto.
In[145]:=
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
In[146]:=
Out[146]=
1
x
logx
Integrate1x,x
27
28
In[147]:=
Out[147]=
In[148]:=
In[149]:=
Integrate1x,x,2,6
log3
x N
1
x
Out[148]=
NIntegrate1x,x,2,6
1.09861
2
x y x y
Tambin x2 *yyx
x3 y2
Out[149]=
6
2
2
x y y x Integratex *y,x,1,2,y,0,1
2
In[150]:=
7
Out[150]=
6
2
2
x y x y Integratex *y,y,1,2,x,0,1
2
In[151]:=
1
Out[151]=
2
2
x y y x
2
In[152]:=
4
Out[152]=
b2 - 1
2
x y x y
0
2
Out[153]=
In[154]:=
12
Tambin x2 *y*zxyz
x3 y2 z2
2
2
x y z z y x Integratex *y*z,x,1,2,y,0,1,z,0,2
1
7
Out[155]=
Integratex2 *y,y,0,2,x,1,b
2
x y z z y x
In[155]:=
b3 - 1
1
Out[154]=
Integratex2 *y,x,0,2,y,1,b
In[153]:=
2
2
x y z x y z Integratex *y*z,z,1,2,y,0,1,x,0,2
2
In[156]:=
Out[156]=
5.3.- LMITES
Los lmites calculados por Mathematica pueden depender de la forma de
la entrada. Mathematica puede decirte que un lmite es cero, o no existe, aun cuando
exista un lmite finito. Asegrese de revisar su respuesta y ver si es fiable. Es posible
que desee probar varias formas diferentes para la entrada, y ver si se obtienen
respuestas diferentes.
Para obtener ms informacin, busque en la ayuda de Mathematica (por ejemplo, busque el Documentation Center disponible en el men Help para Limit. La sintaxis del comando es Limit[expresin,x->a]. Cuando se quiera hallar el lmite por la
izquierda la sintaxis ser Limit[expresin,x->a,Direction->1] y se quiere por la
derecha Limit[expresin,x->a,Direction->-1] , infinito es Infinity y el menos infinito
es -Infinity (o puede utilizar el smbolo de infinito, , que se puede encontrar en
varios lugares (por ejemplo, en la seccin de Basic Math Assistant o Writing Assistant,
o en Special Character del men Insert. Tambin puede utilizar el smbolo de la
paleta Basic Math Input dentro de Palettes/Other.
In[157]:=
Out[157]=
In[158]:=
Out[158]=
In[159]:=
LimitSinx^2 1 x, x 0, Direction 1
Lmite lateral por la izquierda
-
LimitSinx^2 1 x, x 0, Direction 1
Lmite lateral por la derecha
PlotSinx^2 1 x, x, 3, 3
6
4
2
Out[159]=
-3
-2
-1
1
-2
-4
29
30
In[160]:=
Out[160]=
In[161]:=
Out[161]=
In[162]:=
Sumi^2, i, 5
55
Sumi, i, 3, 7, 2
15
Out[162]=
90
In[163]:=
n1
1
n4
p4
Out[163]=
In[164]:=
Out[164]=
In[165]:=
Out[165]=
90
Producti, i, 1, 4
24
Productx i, i, 1, 4
x + 1 x + 2 x + 3 x + 4
imax
DSolve[ecuacin,y[x],x]
DSolve es un comando de Mathematica empleado para resolver ecuaciones
diferenciales ordinarias, tanto lineales como no lineales, y sistemas de ecuaciones
diferenciales ordinarias.
El comando DSolve[ecuacin,y[x],x] resuelve la ecuacin diferencial dada,
en una ecuacin para la variable dependiente y[x] en trmino de la variable independiente x.
- Con la funcin Dsolve podemos resolver tambin problemas de valor inicial,
introduciendo las condiciones iniciales de la siguiente forma:
DSolve[{ecuacin,condiciones},y[x],x]
- La orden DSolve[{ec1,ec2,...},{y1[x],y2[x],...},x] resuelve el sistema de
ecuaciones diferenciales ordinarias definidas en la lista {ec1,ec2,...} para las variables
dependientes {y1[x],y2[x],...} en trminos de x.
- De igual manera, se puede incluir condiciones iniciales en el comando con:
DSolve[{ec1,ec2,...,condiciones},{y1[x],y2[x],...},x]
Ejemplos:
- Se pide resolver las siguientes ecuaciones diferenciales:
1) dy/dx=ay (Es decir, y'=ay)
2) x2 y'' -2 xy' +2 x = x4 ex
Para ello, escribiremos en Mathematica:
In[166]:=
Out[166]=
31
32
In[167]:=
Out[167]=
In[168]:=
Out[168]=
y1 yx . sol11
c1 a x
sol2 DSolvex^2 y''x 2 x y'x 2 yx x^4 Expx, yx, x
x2 y''2xy'2yx4 x
yx c2 x2 + c1 x + x x2 - 2 x
Out[169]=
x2 y''2xy'2yx4 x
Podemos observar que, si no se especifican las condiciones iniciales, Mathematica da las soluciones con un nmero apropiado de coeficientes indeterminados.
En este ejemplo, c1 y c2 ).
Ahora veamos unos ejemplos con condiciones iniciales:
- Se pide resolver la siguiente ecuacin diferencial:
y''-2y=8x;
Siendo las condiciones iniciales: y(0)=2 e y'(0)=-3
In[170]:=
Out[170]=
1
4
2 x
-16
2 x
x+
2 2
2 x
+ 4 2
2 x
2 + 4
Out[171]=
sol4 DSolvex't 2 xt 3 yt 0,
y't 2 yt xt 0, x0 0, y0 3, xt, yt, t
xt -
3
2
-2- 3 t
3 -2 t
, yt
3
2
-2- 3 t
3 -2 t
In[172]:=
Out[172]=
sol5 DSolvex't 2 xt 3 yt 0,
y't 2 yt xt 0, xt, yt, t
xt
1
2
yt
c1
-2- 3 t
1
2
3 -2 t
c2
-2- 3 t
3 -2 t
3 c2
-2- 3 t
1
2
c1
-2- 3 t
3 -2 t
3 -2 t
In[173]:=
x5 xt . sol51
1
Out[173]=
In[174]:=
-2- 3 t
3 -2 t
y5 yt . sol51
1
Out[174]=
c1
c2
-2- 3 t
3 -2 t
1
2
3 c2
-2- 3 t
c1
-2- 3 t
3 -2 t
3 -2 t
NDSolve[{ecuacin,condiciones},y[x],{x,xmin,xmax}]
Las soluciones as obtenidas se podrn evaluar en puntos pertenecientes al
intervalo considerado, as como representar grficamente.
In[175]:=
Out[175]=
In[176]:=
Out[176]=
x6 xt . sol61
33
34
In[177]:=
Plotx6, t, 0, 15
1.5
1.0
0.5
Out[177]=
10
12
14
-0.5
-1.0
-1.5
-2.0
LaplaceTransform[expresin,t,s]
InverseLaplaceTransform[expresin,s,t]
Donde "t" es la variable independiente en la expresin y "s" es el parmetro
independiente de la transformada de Laplace de la expresin.
In[178]:=
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
In[179]:=
LaplaceTransform5t , t, s
1
Out[179]=
s+5
1
In[180]:=
Out[180]=
InverseLaplaceTransform
-5 t
s5
, s, t
Out[181]=
1
3
-t2
3 t
3 sin
+ 3 cos
3 t
2
- cost
In[182]:=
y1 yt . sol11
1
Out[182]=
-t2
3 sin
3 t
2
+ 3 cos
3 t
2
- cost
Out[183]=
1
s4 + s3 + 2 s2 + s + 1
In[184]:=
LaplaceTransformyt, t, s . 1
1
Out[184]=
s4 + s3 + 2 s2 + s + 1
Calculamos la transformada inversa:
In[185]:=
y2 yt_ InverseLaplaceTransform, s, t
1
Out[185]=
-t2
3 sin
3 t
2
+ 3 cos
3 t
2
- cost
y1 y2
True
35
36
FourierTransform[expresin,t,w]
InverseFourierTransform[expresin,w,t]
FourierTransformt t , t, w
2
In[187]:=
w2
- 4 w
Out[187]=
2
w2
In[188]:=
InverseFourierTransform
4 w
2
, w, t
-t t
2
Out[188]=
Plot[funcin,{x,xmin,xmax}]
donde x es la variable independiente y xmin y xmax son los extremos del
intervalo del dominio de la funcin que deseamos representar. Por ejemplo:
In[189]:=
yx_
x + 3
Out[189]=
2x
x 3
2x
In[190]:=
Plotyx, x, 6, 6
20
15
10
5
Out[190]=
-6
-4
-2
-5
-10
Nota: Las grficas son imgenes y su tamao puede modificarse. Para ello,
las seleccionaremos con el botn izquierdo del ratn. Despus, haciendo clic en
cualquier esquina y manteniendo apretado el botn izquierdo del ratn, arrastramos la
esquina hasta conseguir el tamao deseado.
Adems, como ya se haba comentado anteriormente, podemos calcular el
valor numrico de la funcin ya definida, para distintos valores de la variable independiente:
In[191]:=
y2.5
Out[191]=
3.0365
PlotTanx, x, 6, 6
6
4
2
Out[192]=
-6
-4
-2
-2
-4
-6
37
38
In[193]:=
, Tanx, x, 6, 6
2x
La lista de funciones entre llaves
Plot
x 3
10
5
Out[193]=
-6
-4
-2
-5
p1 Plotx, x, 5, 5;
p2 Plotx2 , x, 5, 5;
p3 PlotCosx, x, 5, 5;
In[197]:=
Showp1, p2, p3
4
Out[197]=
-4
-2
-2
-4
6.1.1.- GRFICAS
PARAMTRICA
DE
FUNCIONES
EXPRESADAS
EN
FORMA
In[198]:=
Out[198]=
-30
-20
-10
10
20
30
-5
-10
39
40
en esta seccin.
Como ltimo argumento del comando, por ejemplo Plot[ ], se puede incluir
una secuencia de rdenes del tipo:
nombre->valor, para especificar el valor de varias de las opciones grficas. A
cada opcin que no asignemos un valor explcito, Mathematica le asignar un valor
por defecto.
Una orden como Plot[ ] tiene muchas opciones que podemos modificar. Algunas se muestran a continuacin:
AspectRatio->number especifica la proporcin alto-ancho de una grfica (el
valor por defecto es 0.618, que es llamado GoldenRatio). Si number=1, Mathematica
asigna la misma unidad de medida en ambos ejes.
Axes->Automatic sirve para incluir los ejes coordenados. Automatic es el
valor por defecto.
AxesLabel->{"xlabel","ylabel"} sirve para incluir etiquetas en los ejes;
AxesLabel->"ylabel" especifica una etiqueta slo para el eje "Y", y {xlabel,ylabel}
para ambos ejes. Para que Mathematica reconozca las etiquetas, stas deben ir entre
comillas. El valor por defecto es None.
AxesOrigin->{a,b} especifica las coordenadas (a,b) del punto de corte de los
ejes (origen). El valor por defecto es Automatic.
Frame->True enmarca el grfico. El valor por defecto es False.
trazo sea discontinuo. Este comando se debe usar con el comando Plot.
Background->color es una opcin que especifica en color del fondo de la
grfica.
RotateLabel->False cambia la orientacin de la FrameLabel en la ordenada
(es decir, el eje "Y") de vertical a horizontal. El valor por defecto es True. Esto no tiene
ningn efecto sobre AxesLabel.
- Una manera de obtener informacin de todas las opciones (incluidos sus
correspondientes valores por defecto) de las que dispone una funcin, como por
ejemplo Plot[ ], es emplear la orden Options[ ]:
In[199]:=
OptionsPlot;
AxesLabel None
OptionsPlot, AxesLabel
Nota: Una vez realizada la grfica, tambin podemos variar sus atributos y
aadir elementos utilizando las herramientas de dibujo (Drawing Tools) y el inspector
de grficos (Graphics Inspector) disponibles en el men Graphics.
- Mediante Graphics/Drawing Tools podemos seleccionar, ver coordenadas,
incluir puntos, flechas, figuras sencillas, textos, ...
- Mediante Graphics/Graphics Inspector podemos cambiar el grosor, color, ...
41
42
In[201]:=
PlotTooltip1 x, Sinx, x, 5, 5
6
2
Out[201]=
-4
-2
-2
-4
y = 1-x
4
y = Sin(x)
-4
-2
-2
-4
In[202]:=
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
In[203]:=
Out[203]=
In[204]:=
yx_ 3 x^a b
3 xa + b
p1 Plotyx . a 1, b 1, yx . a 2, b 2, x, 5, 5
60
40
Out[204]=
20
-4
-2
Como podemos observar, se muestran las grficas de la funcin y(x) para los
valores a=1 y b=1 (recta), y para los valores a=2 y b=2 (parbola).
Con la siguiente sentencia ponemos etiquetas (textos) centradas en las coordenadas que deseamos.
In[205]:=
Showp1, Graphics
Text"a1 y b1", 4, 17, Text"a2 y b2", 4.5, 40
60
a=2 y b=2
40
Out[205]=
20
-4
-2
a=1 y b=1
43
44
Plot3D[f,{x,xmin,xmax},{y,ymin,ymax}]
Por ejemplo: Representemos la funcin z(x,y) = Sen (x2 +y3 ) + Cos (2xy), donde
la variable "x" vara en el intervalo [-3,3] y la variable "y" vara en el intervalo [-2,2].
In[206]:=
Out[206]=
In[207]:=
Plot3Dzx, y, x, 3, 3, y, 2, 2
Out[207]=
In[208]:=
- Al situar el cursor encima del grfico, dicho cursor cambia de forma y apacen
dos flechitas con forma curva. Haciendo clic en el botn izquierdo del ratn y mantenindolo pulsado podemos rotar el grfico.
- Situando el cursor sobre el grfico y pulsando la tecla "Ctrl", el cursor
adquiere otra forma, apareciendo dos cuadros y una flecha dentro del cuadro mayor.
Manteniendo puldada la tecla "Ctrl", haciendo clic en el botn izquierdo del ratn y
mantenindolo pulsado podemos hacer un "zoom" del grfico.
Out[209]=
Out[210]=
In[211]:=
Out[211]=
zPi, Pi 2
sin p2 +
p3
8
+ cosp2
45
46
In[212]:=
Out[212]=
In[213]:=
PlotSint, t, 10, 10
1.0
0.5
Out[213]=
-10
-5
10
-0.5
-1.0
In[214]:=
1.0
0.5
Out[214]=
-10
-5
10
-0.5
-1.0
47
48
==
!=
<
>
<=
>=
igualdad
desigualdad
menor que
mayor que
menor o igual que
mayor o igual que
And[x,y]
Or[x,y]
!x
x&&y
x||y
!y
True
True
True
False
False
True
False
False
True
False
True
False
True
False
True
True
True
False
False
False
True
False
True
False
Xor[x,y]
Ejemplos:
In[215]:=
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
In[216]:=
x 5; y 8;
In[217]:=
x3
Out[217]=
False
In[218]:=
Out[218]=
In[219]:=
Out[219]=
In[220]:=
Out[220]=
In[221]:=
Out[221]=
In[222]:=
Out[222]=
x 4 && y 7
True
Orx 3, y 6
True
If[condicin,proceso1,proceso2]
Esta orden devuelve el valor del proceso1 si condicin es cierta y el valor de
proceso2 en caso contrario. Proceso1 y proceso2 pueden ser secuencias de rdenes
separadas por el carcter ;.
Por ejemplo la orden:
If[a>3||b==5,Print[a];Print[b],Print["Falso"]]
devuelve en la pantalla los valores de a y b si se verifica que a>3 o b=5; en
caso contrario se escribir el mensaje Falso.
In[223]:=
a 1; b 3;
Ifa 3 b 5, Printa; Printb, Print"Falso"
Falso
a 2;
Ifa 3, Printa
2
In[227]:=
a 4;
Ifa 3, Printa
49
50
In[230]:=
cd
2
",
cd
2.
5, Print"APROBADO:
",
cd
2.
cd
5,
2
", "Examen A
", c, "
cd
"Examen B ", d, c 3 && d 5 c 5 && d 3 &&
2
Print"NO COMPENSABLE:
", "Examen A ",
c, "
", "Examen B ", d,
cd
5,
c 3 && d 5 c 5 && d 3 &&
2
Print"NO COMPENSABLE:
",
"Examen A
NO COMPENSABLE:
", c, "
Examen A = 6
", "Examen B
", d
Examen B = 2
Clear""
Clear::wrsym : Symbol a is Protected.
Clear::wrsym : Symbol b is Protected.
Clear::wrsym : Symbol c is Protected.
General::stop : Further output of Clear::wrsym will be suppressed during this calculation.
",
5,
In[232]:=
Out[232]=
Como la condicin True es siempre cierta, esta orden define una funcin a
trozos dada por -x^2 en [0,5], por 2x en (5,10] y 0 sobre el resto de nmeros reales.
Para comprobarlo introducimos:
In[233]:=
Plotfx, x, 15, 15
Plotfuncin,variable independiente e intervalo
20
10
Out[233]= -15
-10
-5
10
15
-10
-20
f4.9
Out[234]=
-24.01
In[235]:=
f5
Out[235]=
-25
In[236]:=
Out[236]=
f11
0
7.4.- BUCLES
Un bucle es un proceso que se realiza un cierto nmero de veces. La
51
52
While[condicin,proceso]
Esta orden realiza el proceso especificado mientras se cumpla la condicin
requerida.
Es conveniente sealar que la orden While no necesita contador.
Ejemplo:
Introduciendo cualquiera de las siguientes rdenes (equivalentes entre s),
hallamos los cubos de los primeros nmeros naturales impares, comprendidos entre
los nmeros 1 y 10.
DoPrinti3 , i, 1, 10, 2
Fori = 1, i 10, i = i + 2, Printi3
i = 1;
Whilei 10, Printi3 ; i = i + 2
La respuesta es:
1
27
125
343
729
Break[ ]
Esta orden, que no lleva argumento, es til en los bucles definidos por For, Do
y While para interrumpir la ejecucin de los mismos cuando se llega a una determinada condicin. Suele ir asociada con la estructura If. As por ejemplo:
In[237]:=
", i, "
", i2
10 -> 100
12 -> 144
14 -> 196
16 -> 256
18 -> 324
20 -> 400
22 -> 484
Acumuladores
Un acumulador es una variable que, a partir de un valor inicial y mediante un
53
54
In[239]:=
Dos s 2 n, n, 1, 1000;
In[240]:=
In[238]:=
Out[240]=
In[241]:=
Out[241]=
1 001 000
1000
In[242]:=
n1
Out[242]=
1 001 000
Si la variacin del acumulador es de tipo multiplicativo, se expresar en la
forma:
acumulador=acumulador*expresin
Por ejemplo, el producto de los cubos de los 10 primeros nmeros impares se
puede calcular mediante el siguiente programa:
In[243]:=
p 1;
In[244]:=
Dop p 2 n 13 , n, 1, 5;
In[245]:=
Out[245]=
In[246]:=
Out[246]=
In[247]:=
Out[247]=