0% encontró este documento útil (0 votos)
35 vistas8 páginas

Introduccion de Mathematica

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
35 vistas8 páginas

Introduccion de Mathematica

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Introducción. Comenzando con Mathematica.

Comienzos con Mathematica


Ejecutamos el programa, "pinchando" el icono correspondiente. Una vez iniciado éste, podemos empezar a escribir opera-
ciones o instrucciones.
Por ejemplo, si escribimos
23 + 45
y pulsamos a la vez las teclas ÷ y ó (o bien la tecla ó del teclado numérico), aparece el resultado, 68, de la operación
anterior. La primera vez tarda un poco, mientras el programa carga el núcleo principal. Luego, como ya está cargado, la
respuesta es casi instantánea.
23 + 45

68

Nótese que el programa numera tanto la entrada como la salida. Marca la entrada como In[n]:= y la correspondiente salida
como Out[n]=, donde n es un número (contador) que va incrementándose cada vez que ejecutamos una instrucción. Veamos
algunos ejemplos más. Recordemos que hay que ejecutar cada instrucción pulsando ÷ + ó .

Definiciones de constantes, expresiones y funciones


Comenzamos con unos ejemplos de expresiones sencillas:

4x + 5x

9x

Observa cómo aparece el resultado al pulsar ÷ + ó.


A veces interesa hacer algún cálculo, pero no queremos que el resultado aparezca en pantalla; para conseguirlo, basta acabar
la instrucción con el carácter ;. Mira el ejemplo que sigue
4 x + 7 x;

El operador % toma el resultado de la última salida y lo utiliza para calcular con él. Se puede usar también %%, %%%, ...

Print@%D

11 x

Así, imprimimos la operación anterior, que habíamos ocultado con ;. Observa también los siguientes ejemplos. Se presentan
cuatro instrucciones y, debajo de cada una de ellas, la salida que produce.
x Hx + yL - y Hx + yL

x Hx + yL - y Hx + yL

%+3x

3 x + x Hx + yL - y Hx + yL

Simplify@%D

3 x + x2 - y2
2 00 - Introduccion.nb

Simplify@%%%D

x2 - y2

Podemos asignar valores a las variables. Por ejemplo, analiza la siguiente secuencia.

x = 2; y = 5;
Simplify@x Hx + yL - y Hx + yLD

- 21

Por eso hay que tener cuidado al utilizar variables, pues podrían tener algún valor asignado.
Podemos comprobar si una determinada variable tiene asignado algún valor, ejecutando la instrucción ?nombrevariable.
?x

Global`x

x=2

?y

Global`y

y=5

La interrogación es en realidad la instrucción para solicitar ayuda. Por ejemplo, si tecleamos ?Sqrt, el programa informa
sobre dicha función.
? Sqrt

Sqrt@zD or z gives the square root of z. ‡

Un comando útil para borrar valores de las variables es Clear[ ].

Clear@x, yD

?x

Global`x

Podemos dar valores a las variables de una expresión para hacer un cálculo, sin necesidad de hacer una asignación. El
siguiente ejemplo muestra como se hace.
x ^ 2 . x ® 5

25

?x

Global`x

Es decir, se ha sustituído x por 5 en la expresión x^2, pero sin asignar a la variable x ningún valor.
Se pueden hacer sustituciones de todo tipo; por ejemplo,
x ^ 2 . x ® 5 y ^ 2

25 y4

Resolución de ecuaciones
00 - Introduccion.nb 3

Resolución de ecuaciones
Una ecuación se escribe en el programa como expresión1==expresión2 (con dos símbolos de igualdad; un único signo de
igualdad sólo se usa para asignar valores a variables, como ya sabemos).
Por ejemplo, la ecuación x2 - 3 x = 2 x + 5 se escribe así:

x2 - 3 x == 2 x + 5

- 3 x + x2 Š 5 + 2 x

La resolución se puede llevar a cabo de dos formas: simbólicamente (de forma exacta) y numéricamente (de forma aproxi-
mada).
Como herramientas de resolución simbólica están las órdenes
Solve[ecuación, variable], que resuelve formalmente la ecuación respecto de la variable indicada y
Reduce[ecuación, variable], que simplifica la ecuación, reduciéndola todo lo posible y dando sus soluciones.
Veamos algunos ejemplos:

SolveAx3 - 3 x - 2 == 0, xE

88x ® - 1<, 8x ® - 1<, 8x ® 2<<

ReduceAx3 - 3 x - 2 == 0, xE

x Š - 1 ÈÈ x Š 2

SolveAx3 - 4 x2 + 13 x == 0, xE

88x ® 0<, 8x ® 2 - 3 ä<, 8x ® 2 + 3 ä<<

ReduceAx3 - 4 x2 + 13 x == 0, xE

x Š 0 ÈÈ x Š 2 - 3 ä ÈÈ x Š 2 + 3 ä

SolveAx2 - 8 x + 3 == 0, xE

::x ® 4 - 13 >, :x ® 4 + 13 >>

ReduceAx2 - 8 x + 3 == 0, xE

x Š 4- 13 ÈÈ x Š 4 + 13

Observemos que la presentación de resultados para Solve es diferente que la de Reduce. En ambos casos la resolución se hace
simbólicamente, siendo las soluciones de la última ecuación 4 - 13 y 4 + 13 .
Si queremos que Mathematica presente las soluciones en forma decimal, tenemos dos opciones:
Introducir uno de los coeficientes en forma decimal:

SolveAx2 - 8 x + 3.0 == 0, xE

88x ® 0.394449<, 8x ® 7.60555<<

O bien, usar el comando NSolve[ecuación, variable]

NSolveAx2 - 8 x + 3 == 0, xE

88x ® 0.394449<, 8x ® 7.60555<<

Por último, conviene aclarar que cuando se resuelve una ecuación no polinómica con el comando Solve o Reduce no se
obtienen, en general, todas las soluciones sino sólo algunas de ellas. Por ejemplo, la ecuación sen x = 0 tiene infinitas
soluciones (los números de la forma kΠ, kÎZ). Sin embargo, la instrucción Solve[ ] da sólo una, aunque avisa de que puede
haber otras; propone además usar Reduce[ ] como instrucción más adecuada:
4 00 - Introduccion.nb

Solve@Sin@xD == 0, xD

Solve::ifun :
Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete
solution information. ‡
88x ® 0<<

Reduce@Sin@xD == 0, xD

C@1D Î Integers && Hx Š 2 Π C@1D ÈÈ x Š Π + 2 Π C@1DL

Vectores.
Hay unas cuantas instrucciones para trabajar con vectores. Veamos las más elementales.

Como ejemplo, vamos a definir v = H2, 4, 6, 8, 10L y w = H-2, 0, 4, -3, 1L, para calcular 3v y 3v + 5w.

Los vectores se definen escribiendo sus elementos entre llaves, { y }. Por tanto, haremos

v = 82, 4, 6, 8, 10<
w = 8- 2, 0, 4, - 3, 1<
3v
3v+5w

82, 4, 6, 8, 10<

8- 2, 0, 4, - 3, 1<

86, 12, 18, 24, 30<

8- 4, 12, 38, 9, 35<

Se pueden hacer diversos cálculos con ellos. Por ejemplo, el producto escalar

Dot@v, wD

Para vectores de orden 3, se puede definir el producto vectorial.

Cross@82, 4, 6<, 85, - 3, 1<D

822, 28, - 26<

Algunas instrucciones para crear vectores de forma automática son


Table[expre, {i}], que genera un vector con i copias de expr.
Table[expr, {i, imax}], que genera un vector variando expr desde i = 1 hasta i = imax.
Table[expre, {i, imin, imax}], que genera un vector variando expr desde i = imin hasta i = imax.
Table[expre, {i, imin, imax, d}], que genera un vector variando expr desde i = imin hasta i = imax, de d en d.

Matrices.
Observa en el siguiente ejemplo cómo se definen las matrices y cómo se escriben en pantalla, si queremos que aparezcan de la
forma tradicional

Definamos las matrices siguientes


00 - Introduccion.nb 5

A = 881, - 3, 1<, 8- 2, 0, 3<, 85, 1, 1<<


B = 880, - 2, 1<, 81, 1, 2<, 8- 1, 0, - 2<<

881, - 3, 1<, 8- 2, 0, 3<, 85, 1, 1<<

880, - 2, 1<, 81, 1, 2<, 8- 1, 0, - 2<<

Se pueden expresar en formato tradicional con MatrixForm[ ]

MatrixForm@AD
MatrixForm@BD

1 -3 1
-2 0 3
5 1 1

0 -2 1
1 1 2
-1 0 -2

Hagamos algumos cálculos:

La matriz 2A + 3B,
Los determinantes y las inversas de A y B,
El producto A·B
La matriz traspuesta de A.
MatrixForm@2 A + 3 BD

2 - 12 5
-1 3 12
7 2 -4

Det@AD

- 56

MatrixForm@Inverse@ADD
3 1 9
-
56 14 56
17 1 5
-
56 14 56
1 2 3
28 7 28

Det@BD

MatrixForm@Inverse@BDD

-2 -4 -5
0 1 1
1 2 2

[email protected]

-4 -5 -7
-3 4 -8
0 -9 5

MatrixForm@Transpose@ADD

1 -2 5
-3 0 1
1 3 1

El producto de matrices se calcula escribiendo A.B. Si ponemos A*B, Mathematica hace el "producto" elemento a elemento.
Observa la diferencia entre A . B y A*B
6 00 - Introduccion.nb

El producto de matrices se calcula escribiendo A.B. Si ponemos A*B, Mathematica hace el "producto" elemento a elemento.
Observa la diferencia entre A . B y A*B
Print@"Las matrices iniciales son A=", MatrixForm@AD, " y B=", MatrixForm@BDD

1 -3 1 0 -2 1
Las matrices iniciales son A= - 2 0 3 y B= 1 1 2
5 1 1 -1 0 -2

A.B  MatrixForm H* Producto usual de matrices *L

-4 -5 -7
-3 4 -8
0 -9 5

A * B  MatrixForm H* "Producto" elemento a elemento *L

0 6 1
-2 0 6
-5 0 -2

De manera similar, para calcular una potencia de una matriz debemos utilizar la instrucción adecuada.
Así, para calcular A3 hemos de poner MatrixPower[A,3], no A^3. Esta última instrucción daría una matriz que está formada
por las potencias de exponente 3 de los elementos de A. Compruébalo.
MatrixForm@A ^ 3D

1 - 27 1
-8 0 27
125 1 1

MatrixForm@MatrixPower@A, 3DD

- 19 - 43 - 1
0 - 38 41
81 - 15 - 25

A veces necesitaremos hacer referencia a algunos elementos de una matriz. Observa en los ejemplos que siguen cómo se
extraen elementos, filas o columnas de una matriz dada.
A@@1, 2DD H* Elemento 1,2 de A *L

-3

A@@2DD H* Fila 2 de A *L

8- 2, 0, 3<

A@@All, 2DD H* Columna 2 de A *L

8- 3, 0, 1<

CA = 8A@@3DD, A@@2DD, A@@1DD< ; H* Cambiamos de orden las filas de A *L

Print@"A=", MatrixForm@AD, " CA=", MatrixForm@CADD

1 -3 1 5 1 1
A= - 2 0 3 CA= - 2 0 3
5 1 1 1 -3 1

Pueden extraerse submatrices de una matriz A dada, que sean cuadradas o no. Basta indicar las filas y columnas que quere-
mos tomar.
00 - Introduccion.nb 7

SM1 = A@@81, 2<, 81, 3<DD;


H* Submatriz de A formada por las filas 1 y 2 y las columnas 1 y 3 *L
SM2 = Take@A, 81, 2<, 81, 3<D;
H* Submatriz de A formada por las filas 1 a 2 y las columnas 1 a 3 *L
SM3 = A@@81, 2, 3<, 81, 3<DD; H* Submatriz de A formada por las filas 1,
2 y 3 y las columnas 1 y 3 *L

Print@MatrixForm@SM1D, " ", MatrixForm@SM2D, " ", MatrixForm@SM3DD

1 1
1 1 1 -3 1
-2 3
-2 3 -2 0 3
5 1

Por último, comentemos la instrucción Append[ ], que permite añadir una fila (y, con cuidado, una columna) a una matriz.
Será útil para obtener la matriz ampliada de un sistema sin necesidad de escribir otra vez la matriz de los coeficientes.
A1 = Append@A, 88, 8, 8<D; H* Añade una fila *L
MatrixForm@A1D

1 -3 1
-2 0 3
5 1 1
8 8 8

A2 = Transpose@Append@Transpose@AD, 88, 8, 8<DD; H* Añade una columna *L


MatrixForm@A2D

1 -3 1 8
-2 0 3 8
5 1 1 8

Más adelante veremos otras instrucciones muy útiles para trabajar con matrices desde el punto de vista de la asignatura, para
calcular valores y vectores propios, por ejemplo.

Cálculo con constantes.


El cálculo con constantes puede hacerse de forma simbólica o calculando numéricamente los resultados.
Compara las siguientes salidas.
E + Pi

ã+Π

N@E + PiD

5.85987

N@E + Pi, 20D

5.8598744820488384738

Log@3 + E ^ 5D

LogA3 + ã5 E

N@Log@3 + E ^ 5D, 10D

5.020012253

HH2 + IL  H1 - 3 ILL ^ 7

92 567 60 319 ä
-
1 250 000 1 250 000
8 00 - Introduccion.nb

HH2 + IL  H1 - 3 ILL ^ 7  N

0.0740536 - 0.0482552 ä

Asignación en Mathematica.
Como final, un comentario sobre la asignación de un valor a una variable en Mathematica. Hay dos formas de asignación, la
asignación inmediata (=) y la asignación diferida (:=).

Si escribimos en Mathematica expr1 = expr2 (también puede escribirse Set[expr1, expr2]), se evalúa el valor de expr2 y se
guarda el contenido en expr1. Si posteriormente cambiase el valor de expr2, eso no tendría ningún reflejo en el valor de
expr1, que permanece siempre fijo.
Si embargo, la instrucción expr1 := expr2 (también puede escribirse SetDelayed[expr1, expr2]), hace que Mathematica no
evalúe el valor de expr2 para asignárselo a expr1 hasta que llamamos a dicha expresión expr1. Además lo evalúa tantas veces
como llamemos a dicha expresión, de modo que los cambios que experimente expr2 tienen su reflejo en el valor de expr1.
Un ejemplo ayudará a entender mejor esto.
a = 2;
x = a + 3;
y := a + 3;
Print@"a=", a, " x=", x, " y=", yD

a=2 x=5 y=5

a = 7;
Print@"a=", a, " x=", x, " y=", yD

a=7 x=5 y=10

Como se ve, el valor de x es 5, a pesar de que a ha cambiado de valor; sin embargo en el valor de y sí se refleja dicho
cambio.

También podría gustarte