PRÁCTICAS 1 y 2: MANEJO DEL PROGRAMA MATHEMATICA

Anuncio
PRÁCTICAS 1 y 2:
MANEJO DEL PROGRAMA MATHEMATICA
El programa Mathematica es una herramienta muy útil para realizar cálculos matemáticos.
Puede utilizarse como calculadora científica. Es capaz de manipular números enteros, racionales,
reales y complejos, realizando numerosas operaciones con ellos. Además permite definir funciones,
realizar operaciones con símbolos, trabajar con matrices y vectores, resolver ecuaciones, calcular
derivadas e integrales, representar funciones, etc.
Cuando queremos evaluar una expresión con Mathematica, una vez escrita hay que pulsar la
tecla INTRO del teclado numérico (en la parte inferior derecha del teclado), o bien la combinación
simultánea de las teclas SHIFT+ENTER (se mantiene pulsada la tecla SHIFT y después se pulsa
ENTER). Entonces el programa ejecuta la expresión y le pone un contador de entradas de la forma
In (que precederá a la expresión), y si tiene que mostrar el resultado de la evaluación éste va precedido
por un contador de salidas de la forma Out. Así, para la primera evaluación pondrá In[1] y Out[1]
en los datos de entrada y salida, respectivamente; para la segunda evaluación pondrá In[2] y Out[2],
y así sucesivamente. Todos estos datos de entrada o salida Mathematica los guardará en la memoria
durante toda la sesión, incluso aunque sean borrados de la pantalla.
Ejemplo 0.1 Ejecutar las siguientes sentencias (en el primer cálculo Mathematica necesita cargar
el núcleo del programa, con lo que tardará unos segundos)
a)
4−6
b)
4∗8
c)
5 + 18
Para modificar en pantalla una expresión, en primer lugar necesitamos situarnos en el lugar
adecuado, para lo cual se puede utilizar el ratón o las flechas del teclado. Después pueden eliminarse
algunos caracteres usando las teclas SUPR o ”←−”.
Incluso pueden ser aprovechadas expresiones ya escritas para no tener que volver a copiarlas si
vamos a utilizar otra similar. Esto puede hacerse marcando en negrita la expresión que queramos
copiar, mediante el ratón (pinchando a un lado de la expresión y manteniendo pulsado el botón
izquierdo del ratón hasta llegar al otro lado de la expresión, donde soltaremos el botón) o mediante
la tecla SHIFT (poniendo el cursor a un lado de la expresión, teniendo pulsada la tecla SHIFT, se
lleva el cursor, bien con el ratón o con las teclas de dirección, al otro lado de la expresión); después
se hace una copia de la expresión con las teclas CONTROL+C, o bien con el botón derecho del
ratón seleccionando la opción COPY (o con la opción COPY del menú EDIT de la parte superior
de la ventana). Una vez hecha una copia de esto se coloca el cursor en el lugar donde se quiere poner
lo que se ha copiado y se pulsa CONTROL+V, o bien con la opción PASTE del botón derecho del
ratón o del menú EDIT.
Existen otras formas de realizar lo anterior y otras variantes, que pueden adquirirse con la práctica,
pero no es nuestro propósito adquirir dominio en esta faceta.
1
1
Operaciones aritméticas elementales
Los operadores aritméticos son
+
−
∗
/ ˆ
Es conveniente que se tengan bien localizadas las teclas en las están cada uno de estos símbolos;
todos, excepto
ˆ
se pueden encontrar también en el teclado numérico, que está en la parte
derecha del teclado. Algunos de ellos precisan de la tecla SHIFT para su pulsación (esto no ocurre
cuando se utiliza el teclado numérico):
∗
/
ˆ
Además, hay que tener presente que
ˆ
no aparece en la pantalla hasta escribir otro carácter.
Las operaciones que representan son:
x+y
suma
x−y
resta
x∗y
ó
xy
(con un espacio en blanco en medio)
producto
x/y
división
xˆy
potencia
Para combinar estos operadores han de tenerse en cuenta los criterios de prioridad en matemáticas:
En un primer nivel de prioridad está la potencia; en un segundo nivel están el producto y el
cociente; finalmente aparecen la suma y la resta. Si dos operadores tienen la misma prioridad se
evualúa primero el que figura a la izquierda y después el de la derecha. Para cambiar el orden de
ejecución de las operaciones pueden utilizarse paréntesis.
Observación 1.1 Aunque en la mayoría de las ocasiones puede usarse tanto las teclas del teclado
numérico como las otras, es aconsejable no utilizar las del teclado numérico que a veces
presentan problemas.
Ejemplo 1.2 Ejecutar las siguientes sentencias
1)
6)
11)
14)
2∗4+3
2)
(6/3) − 2
7)
b/c + aˆd − e
b/(c + aˆd − e)
2 ∗ (4 + 3)
3)
(2 ∗ 4) + 3
4)
6/3 − 2
2 3ˆ2
8)
(2 3)ˆ2
9)
2 (3ˆ2)
10)
12)
b/(c + a)ˆ(d − e)
13)
(b/c + a)ˆd − e
15)
(b/c + a)ˆ(d − e)
16)
(3 − 8)10
Observación 1.3 Soluciones: 11, 14, 11, 0, 6, 0, 18, 36, 18, 18, ad +
b
(a + cb )d − e, ad +c−e
, (a + bc )d−e , -50
Ejercicio 1.4 Realizar las siguientes operaciones con Mathematica
a)
(1 − 2)3+8
b)
8
4·2+3
Observación 1.5 Soluciones: −1,
c)
8
,
11
− 13
,
17
3−4·22
3·4+23 −3
√
3 3
16
2
3
d)
(7·5−25 ) 2
4
( 3 −67
)4
7
b
c
5)
6/(3 − 2)
2(3ˆ2)
− e, b (a + c)−d+e ,
Observación 1.6 En general, cuando se ponga Ejemplo deberán escribirse literalmente las expresiones que figuran. Cuando se ponga Ejercicio las expresiones figurarán escritas del modo habitual
matemático, y el alumno deberá pasarlas al lenguaje del Mathematica.
Para aprovechar sentencias anteriores y no tener que volver a escribirlas enteramente puede utilizarse también el recurso que vamos a ver a continuación. Como ya hemos comentado anteriormente
Mathematica guarda en la memoria todas las entradas y salidas en una misma sesión. Pues bien,
podemos referirnos a éstas gracias al símbolo %. Este símbolo hace referencia al In[-] anterior. Así
por ejemplo, si ponemos % + 8 el resultado será el inmediatamente anterior más 8. Si queremos hacer
referencia al resultado dos veces anterior (el anterior del anterior) deberíamos poner %%, y al tres
veces anterior %%%, y así sucesivamente. También podemos hacer referencia a un resultado anterior
con su número de entrada (o salida). Así, si ponemos %14 nos debe dar como resultado, el que había
en el In[14].
Ejemplo 1.7 Ejecutar las siguientes sentencias
1)
6)
4−7
%%
2)
7)
5∗3
3)
%%%%%%
4)
9/3
%
5)
%%%
Observación 1.8 Soluciones: −3, 15, 3, 3, 15, 3, −3
Ejemplo 1.9 Ejecutar las siguientes sentencias
1)
6)
2∗4+3
5b
7)
2)
%∗5
3)
3 ∗ % − 2 %%
6/3 − 2
4)
6/(% − 2)
5)
11 a
Observación 1.10 Soluciones: 11, 55, 0, −3, 11a, 5b, −22a + 15b
Ejercicio 1.11
(3 · 4 − 5)5 · a
1. Realizar la operación
2. Multiplicar la expresión anterior por 4.
3. Realizar ahora la operación
−
( 30
4
15 4
)
10
9 2
· a − ( 12
) · 16a
4. Sumar ahora las expresiones de los apartados 2 y 3
5. Situarse en la línea de tipo In[] (no en el Out[]) donde aparece la expresión (3 · 4 − 5)5 · a
y borrar esa expresión. En esa misma línea escribir la sentencia
%%%
y ejecutarla.
Observar el resultado.
Observación 1.12 Soluciones: 16807a, 67228a, 1287a, 68515a
Observación 1.13 (Abortar un cálculo) Es posible que Mathematica tarde demasiado en hacer
algún cálculo. No es lo habitual, pero en alguna ocasión puede suceder que la operación sea extremadamente compleja, o incluso que nos hallamos equivocado al escribirla y casualmente se transforme
en algo que le haga al programa dar demasiadas vueltas. Cuando queremos detener alguno de estos
cálculos bastará con seleccionar la opción Abort Evaluation del Menú Kernel, de la parte superior
de la pantalla.
3
2
Números
Mathematica puede operar con números:
Racionales: Si se hacen operaciones con fracciones el resultado suele venir en forma de fracción.
Comprobarlo en el siguiente ejemplo
(2/3 − 3/5) ∗ 5/2
Irracionales: El programa trabaja con sus expresiones. Comprobarlo en el siguiente ejemplo
2ˆ(1/2)
Aproximación: En la mayoría de las ocasiones interesa tener una aproximación decimal del
resultado. En este caso podemos introducir uno de los números con un punto decimal o utilizar
//N
al final de la expresión o
N[expresión]
obteniéndose alrededor de 6 cifras significativas. Si queremos tener un número n de cifras significativas de la expresión
x
debemos
poner
N[x, n]
Con estos comandos también es posible obtener aproximaciones de números
enteros grandes.
Ejemplo 2.1 Ejecutar las siguientes sentencias
a)
2ˆ100
%//N
(2./3−3/5)∗5/2
e)
2.ˆ100
f)
j)
N[%%]
b)
(2/3−3/5)∗5/2//N
c)
2ˆ100//N
g)
N[2ˆ100, 10]
N[(2/3−3/5)∗5/2, 30]
h)
(2/3 − 3/5) ∗ 5/2
d)
i)
Observación 2.2 Soluciones: 0.166667, 0.166667, 0.166666666666666666666666666667,
1267650600228229401496703205376, 1.2676530 , 1.2676530 , 1.2676530 , 16 ,0.166667,0.166667,
Ejercicio 2.3 Obtener los siguientes números
a)
c)
√
2
√
3
35
con 17 cifras significativas
b)
con 100 cifras significativas
q
3
8
con 10 cifras significativas
Observación 2.4 Soluciones: 1.4142135623730950,0.612372
3
Notación y símbolos
Mathematica, como la mayoría de los programas informáticos, es muy estricto con las sentencias que
se le dice que ejecute. Un pequeño cambio en una expresión y el resultado puede ser muy distinto,
o bien, el programa puede no entender la sentencia. He aquí unas situaciones en las que conviene
hacer hincapié.
a) Mayúsculas y minúsculas: el programa distingue unos caracteres de otros. Los comandos
propios del programa empiezan por mayúsculas.
b) Espacios en blanco: se interpretan como un signo de multiplicar. Si un comando o una
expresión esta compuesto por varias palabras no hay que dejar espacios en blanco entre ellas.
4
c) Llaves, paréntesis y corchetes: las llaves definen listas de elementos, conjuntos finitos, vectores y matrices. Los paréntesis agrupan e indican prioridad de operaciones. Los
corchetes son exclusivos de las funciones para delimitar argumentos. Estos tres tipos de objetos
pueden ponerse las veces que sean necesarias, pero nunca pueden cambiarse unos por otros.
Tanto llaves como corchetes se obtienen manteniendo pulsada la tecla AltGr y pulsando después la
correspondiente tecla [
]
{
} .
4
Algunas constantes y funciones propias de Mathematica
El programa lleva incorporadas numerosas constantes y funciones propias.
4.1
Constantes
Algunas constantes de Mathematica son:
P i Es el número habitualmente designado por π, y cuyo valor aproximado es 3.1416
E Es el número habitualmente designado por e, y cuyo valor aproximado es 2.71
√
I Es la raíz imaginaria de −1, habitualmente designada por i = −1
Infinity Habitualmente denotado por +∞
π
Degree Es la constante 180
, útil para la conversión de grados a radianes. Hay que tener en
cuenta que las funciones trigonométricas usuales trabajan por defecto con el argumento en radianes.
4.2
Funciones
A continuación ponemos algunas de las funciones más importantes que Mathematica lleva incorporadas (a la izquierda figura la función en el lenguaje del Mathematica y a la derecha tal y como
nosotros la escribimos habitualmente):
Log[x]= ln x
Log[b,x]= logb x
Sin[x]= senx
Cos[x]= cos x
Tan[x]= tan x
ArcSin[x]= arcsenx
ArcCos[x]= arccos x
ArcTan[x]= arctan x
Abs[x]= |x|
(mi√
de el valor absoluto si x es un número real, y el módulo si x es un número complejo)
Sqrt[x]= x
x
Exp[x]= e
Ejercicio 4.1 Realizar las siguientes operaciones en Mathematica:
√
1)
cos π3
2)
log2 256
3)
48
4)
e−3x
5)
sen30
6)
sen30o
1
7)
|3 − 4i|
8)
∞−∞
9)
∞+∞
10)
11)
ln0
12)
Calcu∞
√
lar e con 100 cifras decimales y 5 con 1000
√
Observación 4.2 Soluciones: 12 , 8, 4 3, e−3x , Si n[30], 12 , 5, In det er min ación, ∞, 0, −∞
Observación 4.3 Pueden hallarse el valor de las funciones trigonométricas tanto en radianes como
en grados. Por ejemplo, para hallar el seno de π radianes pondríamos Sin[P i] y si lo hacemos en
grados (que serían 180) deberíamos poner Sin[Degree ∗ 180]
5
5
Variables y funciones
Estos objetos nos van a permitir definir nuevas variables y funciones que podremos utilizar de la
misma forma que las propias de Mathematica. A este tipo de objetos hay que asignarle un nombre,
siempre que dicho nombre no empiece por un número ni por el simbolo $. También es conveniente que la primera letra del nombre sea minúscula, para evitar colisiones con objetos propios de
Mathematica, que comienzan todos con una letra mayúscula. Nombres adecuados para las variables
o funciones podrían ser
x
y
z
pepe
hola
x1
variable1
f
f uncion1
f uncion3bis
Es importante destacar que algo como
xy
será identificado por el programa como un solo
objeto, una sola expresión. Si lo que pretendemos es expresar el producto del objeto
x
con el
objeto
y
deberíamos poner
xy
ó
x∗y
Para indicar que estamos multiplicando el número 5 por el valor de
x
podemos poner
5x
ó
5∗x
o incluso
5x
(cuando el primer factor de la multiplicación es un número, no una variable o función que pueda
ser representada mediante una expresión, puede omitirse el signo de multiplicación). Ahora bien si
ponemos
x5
el programa lo identificará como un objeto (una variable o función) que tiene
ese nombre completo.
Ejemplo 5.1 Ejecutar estos ejemplos, observando el resultado
a)
b)
c)
d)
e)
f)
5x + 4x + 4 x − 7 x − 8 ∗ x + x3 − 5x3 + x2 − 6x2
2x − 3y + 5xy − 6yx + 8x ∗ y − 6y ∗ x + 3 x ∗ y − 45 y ∗ x
3xyˆ2 − x ∗ yˆ2 + yxˆ2 − 2y ∗ xˆ2
2xyˆ2 + 3x ∗ yˆ2 − 2yxˆ2 − y ∗ xˆ2
% + %%
xyˆ2 ∗ xy
Ejercicio 5.2 Transcribir al lenguaje del Mathematica las siguientes expresiones
1)
3)
5.1
x3 − 45x2 + 3x − 5
2)
x2 y 3 − 4xy 2 + x3 y − 6x + xy
2
6x2 y 2 z 3 − 4xy + 5xz − 44y 2 z + √x y−3z
2 2
x y +1
Variables
Si ponemos
x = 0
habremos definido la variable
x
con valor 0. Si a continuación
ponemos
x = 4
le habremos cambiado el valor a la variable
x
que ahora pasará a
valer 4. Si ponemos la sentencia
y = x+1
estamos definiendo una variable
y
a la
que le estamos asignando el valor que tiene
x
más 1. Una situación similar sería la sentencia
x = x+1
que no representa una ecuación, sino que significa que a
x
le asignamos el valor
que tiene en este momento más 1. En este caso, después de esta operación, el nuevo valor de
x
es 5.
6
Si queremos borrar el valor de una variable o función es suficiente que escribamos Clear[nombre]
Así pues para borrar el nombre de una variable llamada t y una función llamada u debemos ejecutar
las dos sentencias
Clear[t]
Clear[u]
o bien de una sola vez
Clear[t,u]
Supongamos que tenemos definida la variable
c
cuyo valor actual es 3. Si escribimos la
sentencia
t := c
estaremos definiendo una variable
t
con valor igual a
c
¿En
qué se diferencia esto de la sentencia
u=c
? En que, además de que con los dos puntos
no se obtiene ningún Out,
t
será una variable cuyo valor coincidirá con el que tenga
c
en cada momento; en cambio
u
será una variable que tendrá el valor fijo 3, siempre que no
pongamos otra sentencia del tipo
u = nuevovalor
Para saber el valor actual de una variable introducimos su nombre y lo ejecutamos como si fuera
una sentencia.
Ejemplo 5.3 Ejecutar las siguientes sentencias
a)
5.2
x1 = 2
b)
x2 = x1
c)
x3 := x1
d)
x3
e)
x1 = −3
f)
x2
g)
x3
Funciones
Para definir una función que dependa de n variables debe utilizarse el siguiente esquema
nombrefuncion[variable1 _,variable2 _,...,variablen _]=
expresión en función de las variables
Ejemplo 5.4 Ejecutar la siguiente sentencia
a)
f 1[v_] = vˆ3 − 4; f 2[p_, q_] = Sin[p ∗ q]
Para obtener el valor de la función en un punto basta con sustituir las variables por las coordenadas
del punto, y no utilizar la raya ”_”, pues ésta sólo se utiliza a la hora de la definición de la función.
Así pondremos, para una función
f
de una variable
f [4]
para hallar el valor de esa
función en el punto 4; ó
g[−1, a]
si queremos hallar el valor de una función
g
de
dos variables al evaluarla en el punto (−1, a)
Hay que llevar precaución para usar las funciones y evaluar expresiones en ellas. Así por ejemplo
si tenemos definida la función de una variable
f
y ponemos
f [x]
el resultado será la
expresión de
f
evaluada en el valor
x
Si
x
no tiene ningún valor asignado
previamente la expresión quedará de forma genérica en función del valor del ”parámetro”
x
Ahora bien si
x
ya tiene algún valor asignado la expresión
f [x]
no quedará de forma
genérica. Por ello, cuando queremos que la expresión quede en forma genérica debemos asegurarnos
que los nombres que empleamos para los parámetros no han sido empleados anteriormente, o, en su
defecto, debemos eliminar el valor que hayan tenido antes con el comando Clear
Ejemplo 5.5 Ejecutar las siguientes sentencias
7
a)
f 3[variable_] = variableˆ3
b)
f 3[parametro]
c)
c1 = 3
d)
f 3[c1]
e)
f 4[cc_] = 3cc
f)
f 4[parametro2]
g)
Clear[f 4]
Cuando vayamos a definir un nuevo objeto es conveniente asegurarnos de que no hay ninguno
anterior con ese mismo nombre, eligiendo un nombre no utilizado anteriormente. En caso contrario,
el programa podría no dejarnos asignarle el mismo nombre a otro objeto, o podría eliminar el valor
anterior.
Ejercicio 5.6 Definir en Mathematica las siguientes funciones
2
2
cos√x
f 5(x) = x−
f 6(x, y) = e−(x +y ) cos xseny
3
y obtener los siguientes valores
√
a)
f 5(π)
b)
f 5( 3)
c)
f 6(0, π)
f 7(x, y, z) = xyz cos(x + y + z)
d)
f 6( π4 , − π4 )
e)
f 7(−1, 1, 0)
π2
Observación 5.7 Soluciones: − −√13+x , Inf inito, 0, − 12 e− 8 , 0
,y
Ejercicio 5.8 Crear las funciones g1(x) = −4x3 +x2 −7x, g2(x) = x4 −6x2 −3x+4 y g3(x) = g1(x)
g2(x)
evaluarlas en un parámetro (sin valor asignado) llamado
a
Después borrarlas de la memoria.
Observación 5.9 Aunque guardemos información en un archivo en el que se hayan definido una
serie de funciones o variables, éstas sólo permanecerán en memoria hasta que cerremos el programa. Esto quiere decir que cuando arranquemos de nuevo el programa y abramos el archivo, aunque
estén escritas esas definiciones hasta que no volvamos a ejecutar las sentencias correspondientes
Mathematica no tendrá guardadas en la memoria dichas funciones o variables.
Apéndice de las prácticas 1 y 2
5.3
El uso del punto y coma
Su función principal de separación de varias sentencias para ser ejecutadas en una misma línea
(aunque esto puede hacerse también en distintas líneas separadas por ENTER y no por INTRO). Si
se utiliza detrás de una sentencia el resultado de su ejecución, aunque existirá, no se mostrará en
pantalla.
Ejemplo 5.10 Ejecutar las siguientes sentencias
a)
g)
c = 3; t = c; u := c;
b)
t
c)
u
d)
c = −1;
2
Clear[x, y, z, f ]
h)
x = 2; f [z_] = z + 3; y = f [x]; y
8
e)
t
f)
u
6
Ayuda
El menú Help, situado en la barra superior, contiene un manual del programa, en el que vienen
todos los comandos de Mathematica, el uso de cada uno de ellos e incluso ejemplos aclaratorios. No
obstante existe una forma sencilla de conseguir ayuda en pantalla mediante algunos símbolos como
?
??
∗
Ejemplo 6.1
?Log
1.
2.
?Arc*
3.
?*Cos*
4.
?*Sin
5.
?@
ó
??Log
nos dan información acerca de la función Log
nos da una lista de todas las funciones que empiezan por Arc
nos da una lista de todos los comandos que contienen la expresión Cos
nos da una lista de todos los comandos que terminan en Sin
nos da una lista de todos los objetos que hemos definido.
PRÁCTICA 3: VECTORES Y MATRICES
7
Definición de vectores y matrices
Los vectores en Mathematica se escriben entre llaves y no con paréntesis. Así para escribir el vector
(−1, 2, 0) pondremos {−1, 2, 0}. Los vectores también pueden utilizarse en Mathematica para evaluar
una función en varios puntos. Así si f es una función de una variable, y escribimos f [{0, P i, a}]
estaremos aplicando f a los puntos 0, π y a, respectivamente, y el resultado será un vector cuyas
coordenadas son f [0], f [P i] y f [a].
Ejemplo 7.1 Teclear y ejecutar las siguientes sentencias:
1. f uncion[x ] = Cos[x]
2. f uncion[{0, P i, a}]
3. Sin[{0, P i, a}]
Supongamos que queremos definir la función f : R3 → R dada por f (x, y, z) = xyz 2 . Para escribir
esto en Mathematica debemos poner
f [x , y , z ] = x∗y ∗zˆ2
ó
f [{x , y , z }] = x∗y ∗zˆ2.
La única diferencia entre estas dos formas está en que en el primer caso la función hay que evaluarla
en tres números (por ejemplo f [1, 2, 0] ) y en el segundo en caso debemos evaluar la función en
un vector de tres coordenadas (por ejemplo f [{1, 2, 0}] ).
Se le pueden dar nombres a los vectores. Así, escribiendo u={2,-1,0,3} estaremos definiendo el
vector u que vale (2, −1, 0, 3). Si ponemos u[[1]] estaremos refiriéndonos a la primera coordenada
del vector u, es decir, a 2; y así ocurre con el resto de coordenadas u[[2]], u[[3]] y u[[4]]. Éstas
9
pueden ser modificadas, pues basta poner u[[2]]=5 para que la segunda coordenada deje de ser −1
y valga ahora 5.
Las matrices en Mathematica hay que definirlas como un vector de vectores. Al poner
{{1,2},{-3,0},{4,6}} estaremos definiendo en Mathematica la matriz quetiene porfilas los
1 2


vectores anteriores, es decir, la matriz que nosotros usualmente escribimos así  −3 0 . Si le
4 6
asignamos un nombre a esta matriz, poniendo por ejemplo matriz={{1,2},{-3,0},{4,6}} podemos
referirnos a sus coeficientes o a sus filas, o incluso cambiarlos. Poniendo matriz[[3,1]] nos debe dar
como salida el elemento de la matriz anterior que ocupa la tercera fila y la primera columna, es
decir, 4. Si ponemos matriz[[3,1]]=-2 le habremos cambiado el valor que tenía, valiendo ahora
−2. Si ponemos ahora matriz[[3]] nos debe dar como salida la tercera fila de la matriz anterior.
Si queremos ver en forma matricial la matriz anterior hay que poner MatrixForm[matriz]. Este
comando sólo sirve para visualizar la matriz. Al poner
DiagonalMatrix[{a1 , a2 , ..., an }] estamos poniendo una matriz diagonal cuyos elementos de la
diagonal principal son a1 , a2 , ..., an . Si escribimos IdentityMatrix[n] obtenemos la matriz identidad
de orden n.
Ã
!
1 −1 2
Ejercicio 7.2
1. Definir la matriz m=
. Cambiar el primer vector-fila por el vector
0
3 5
(0, 3, 4), y asignarle al coeficiente a22 el valor −4.
2. Ver en forma matricial la matriz identidad de orden 11, la matriz diagonal cuyos elementos
son π, −1, 0, 3, 2, −2 y la matriz cuyas filas son los vectores (−1, 3, 4, 5, 6), (2, 4, −1, 0, 456),
(5, −1, −9, 55, 0) y (0, 0, 0, 3, −2).
8
Operaciones con vectores y matrices
La suma o resta de dos vectores o dos matrices se realiza, igual que para los números, mediante los
símbolos + y −
El producto de dos matrices se realiza mediante un punto .
Este último símbolo, utilizado sobre vectores, sirve para realizar el producto escalar. En el caso
de vectores podemos usar también el comando Dot Para el producto vectorial (en R3 ) se usa Cross
Para multiplicar un escalar por un vector o por una matriz puede utilizarse el símbolo de multiplicación usual entre números, esto es, ∗ o dejar un espacio en blanco.
Ejemplo 8.1 Teclear y ejecutar las siguientes sentencias:
1. u1 = {a1, b1, c1}; u2 = {a2, b2, c2}; u1 + u2
u1 − u2
10
3u1 − 5 u2
−5 ∗ u1 + 2u2
2. m1 = {{1, 2}, {−3, 0}, {4, 6}}; m2 = {{−1, 0}, {2, 1}, {6, 4}}; m1 + m2
m1 − m2
a m1 − 3m2
m3 = {{−1, 1, 0}, {6, 5, 4}, {4, 5, −2}}; 6 ∗ m1 − m3.m2
u1.u2
Dot[u1, u1]
Cross[u1, u2]
Ejemplo 8.2 El producto escalar de los vectores (1, 0, −2) y (1, −2, 3) es Dot[{1,0,-2},{1,-2,3}]
La norma del vector (−3, 0, 1, −2, 5) es Sqrt[Dot[{-3,0,1,-2,5},{-3,0,1,-2,5}]]
Ejercicio 8.3 Supongamos que tenemos los vectores u = (1, −1, 0, 2) y v = (3, 4, 1, 2).
1. Realizar el producto escalar de u y v.
2. Deducir si u y v son ortogonales.
3. Hallar la norma de u y la norma de v.
4. Deducir si alguno de los vectores es unitario.
5. Hallar el ángulo que forman u y v.
6. Hallar dos vectores LI w1 y w2 , que sean ortogonales tanto a u como a v.
La sentencia Transpose[m] nos da la traspuesta de una matriz m Si la matriz m es
cuadrada para hallar el determinante bastará teclear Det[m] Si la matriz m es invertible, la
inversa de m se puede hallar poniendo Inverse[m] Para realizar la potencia n-ésima de una
matriz cuadrada m (es decir, el producto n veces de m consigo misma, que usualmente lo denotamos
por mn ) existe el comando MatrixPower[m,n]


1 2
3


Ejercicio 8.4 Dada la matriz m1= 0 3 −1  hallar su traspuesta (y defiirla como m2) y su
1 5
3
determinante. Comprobar que m1 es invertible y hallar su inversa (definirla como m3), la traspuesta
de m3 y la inversa de m2. Finalmente comprobar que las dos últimas matrices coinciden.
Ã
!
2 3
Ejemplo 8.5 Para calcular la potencia de orden 5 de la matriz
podemos escribir
−3 0
MatrixPower[{{2,3},{-3,0}},5]
11
Ã
−1 2
Ejercicio 8.6 Dada la matriz m =
3 6
mando MatrixPower y poniendo m.m.m
y observar el resultado.
!
hallar m3 . Realizar esta operación mediante el coTeclear también
m^3
mmm
y
m*m*m
Apéndice de la sección: Operaciones con vectores y matrices
Existen comandos de Mathematica que sirven para crear vectores y matrices dependientes de
”contadores”. Así es Table Observemos su funcionamiento. Si ponemos Table[i,{i,1,4}]
nos dará como salida el vector (1,2,3,4). Si escribimos Table[i^2,{i,1,4}] nos dará como salida
el vector (1,4,9,16). Tecleando Table[i-1,{i,3,7}] nos dará como salida el vector (2,3,4,5,6).
Su expresión general es Table[expresión,{contador,inicio,final}] la cual crea una tabla (que
puede ser por ejemplo un vector o una matriz) que tiene como entradas el valor de expresión en las
que contador empieza en inicio y termina en final. Además, pueden ponerse más de un contador
(si se pone sólo uno el resultado es un vector; si se ponen dos el resultado es una matriz; si se ponen
tres el resultado será una tabla tridimensional, etc.).
Ejemplo 8.7 Teclear las siguientes sentencias
1. Table[-i,{i,2,6}]
2. Table[i^3,{i,3,9}]
3. Table[2i-1,{i,3,10}]
4. Table[i j,{i,4,8},{j,1,3}]
5. Table[i+j,{i,2,11},{j,2,3}]
6. u={2,-3,9};Table[-i u[[i]],{i,1,3}]
7. m={{1,2},{3,4},{5,6}};Table[(-1)^j m[[j]],{j,1,3}]
Observación 8.8 Puede omitirse inicio y se supondría que vale 1.
9
Rango
Dada una matriz m puede obtenerse (realizando transformaciones elementales-fila) una escalonación
de la matriz inicial tecleando RowReduce[m] Ésta última tiene por tanto el mismo rango que
m y sus filas no nulas constituyen una base del subespacio generado por las filas de m
Si queremos obtener todos los menores de orden n de la matriz debemos teclear Minors[m,n]
Mathematica mostrará, en el resultado de esta sentencia, dichos menores ordenados a su vez en forma
de matriz (según los órdenes). De este modo cada uno de los números que aparezca en la matriz
resultado será un menor de la matriz m de orden n.
12

2
0 1
0


Ejemplo 9.1 Para hallar el rango de la matriz  1 −2 0
2  podemos teclear
1
2 1 −2
m={{2,0,1,0},{1,-2,0,2},{1,2,1,-2}};RowReduce[m]
El resultado sería una matriz escalonada que tiene dos filas no nulas, por tanto el rango de m es
2. Otra forma sería teclear
m={{2,0,1,0},{1,-2,0,2},{1,2,1,-2}};Minors[m,1]
Minors[m,2]
Minors[m,3]
Observando que hay menores de orden 2 no nulos y no hay menores de orden 3 no nulos deduciríamos también que el rango vale 2.

Ejercicio 9.2 Hallar el rango de las siguientes matrices (de tres formas: utilizando menores, escalonando la matriz por filas y escalonando la matriz por columnas):


1
2 −1
0


3
2 
 2 −2
1
8 −6 −2





1
1
2
0
2
2 −2
3 −2
0
5
0 −2
1 −4
3





Ejemplo 9.3 Para hallar una base del subespacio de R4 generado por los vectores (−1, 3, 2, 4),
(1, −3, −2, −4), (1, 0, −2, 1) y (0, 3, 0, 5) podríamos teclear
m={{-1,3,2,4},{1,-3,-2,-4},{1,0,-2,1},{0,3,0,5}};RowReduce[m]
El resultado sería una matriz escalonada cuyas filas no nulas constituyen dicha base
Ejercicio 9.4 Hallar una base del subespacio de R4 generado por los vectores (0, 0, 0, 4), (0, 0, −2, −4),
(1, 0, −2, 1), (4, 0, 2, 3) y (1, 0, 0, 5).
Ejemplo 9.5 Dadas las bases B1 = {(1, 0), (1, −1)} y B2 = {(1, −2), (3, 1)} de R2 hallar las matrices
cambio de base MB1 B2 y MB2 B1 .
Para la primera basta con teclear la sentencia
Inverse[Transpose[{{1,-2},{3,1}}]].Transpose[{{1,0},{1,-1}}]
La segunda es inversa de la primera.
Ejercicio 9.6 Dadas las bases B1 = {(1, 0, 1), (1, 1, 0), (0, 1, 1)} y B2 = {(1, 2, 3), (1, 3, 0), (3, 2, 3)}
de R3 hallar las matrices cambio de base MB1 B2 y MB2 B1 .
PRÁCTICA 4: SISTEMAS DE ECUACIONES LINEALES Y APLICACIONES LINEALES
13
10
Sistemas de ecuaciones lineales
Para resolver sistemas de ecuaciones hemos usado ya los comandos Solve y Reduce Cuando las ecuaciones son lineales Mathematica puede usar también LinearSolve y NullSpace
El primero actúa así: si tenemos un sistema de ecuaciones, dado en forma matricial de la forma
mx=b
donde la matriz de coeficientes del sistema es m y el vector de términos
independientes es b ejecutando la sentencia LinearSolve[m,b] obtendremos una solución
del sistema (si éste es compatible). En caso de que sea incompatible el programa nos lo dirá. Ya
tenemos una forma de ver si un sistema lineal es SC o SI: con LinearSolve Nos interesamos
ahora por determinar si un SC es SCD o SCI. Para ello utilizaremos el Ejercicio de la hoja 2, en
el que obteníamos la solución general de un SC a partir del sistema homogéneo asociado (es decir, el
sistema lineal homogéneo que tiene la misma matriz de coeficientes): la solución general del sistema
se obtiene sumando a una solución particular soluciones del sistema homogéneo asociado. Cuando
este sistema homogéneo tenga alguna solución no nula entonces el SC inicial será SCI, y cuando no
ocurra así será SCD. Tecleando NullSpace[m] obtenemos una base de este sistema homogéneo
asociado, si éste es no nulo.
Ejemplo 10.1 Discutir y resolver, en su caso, los siguientes sistemas de ecuaciones lineales:
(
2x − 3y = −3
1.
2x + 2y =
2
Tecleando LinearSolve[{{2,-3},{2,2}},{-3,2}] determinamos una solución particular (0, 1)
del sistema (por lo que vemos el sistema es compatible). A continuación ponemos
NullSpace[{{2,-3},{2,2}}] y vemos que el sistema homogéneo asociado tiene solución nula
(la respuesta del programa es que este espacio vectorial no tiene ninguna base). Concluimos
que es un SCD cuya única solución era el vector (0, 1).


 x − 2y − 3z = 1
2.
−x − y + z = 0


2x − y − 4z = 2
Para determinar una solución del sistemas tecleamos
LinearSolve[{{1,-2,-3},{-1,-1,1},{2,-1,-4}},{1,0,2}] y observamos que el programa nos
responde que no tiene solución. Por tanto es un SI.
3.
(
x − y + 2z − t =
3
2x + y + z + t = −2
Tecleando LinearSolve[{{1,-1,2,-1},{2,1,1,1}},{3,-2}] hallaríamos en primer lugar una
solución particular v0 = ( 13 , − 83 , 0, 0) del sistema (y ya de paso sabemos que el sistema es
compatible). Ahora hallaríamos una base de sistema homogéneo asociado tecleando
14
NullSpace[{{1,-1,2,-1},{2,1,1,1}}] En este ejemplo concreto nos saldrían dos vectores
u1 = (0, −1, 0, 1) y u2 = (−1, 1, 1, 0) con lo que sabemos ya que estamos con un SCI. De este
modo la solución general de nuestro sistema lineal está formada por todos los vectores u que
son de la forma u = v0 + αu1 + βu2 , para cualesquier escalares α y β ∈ R, es decir, los vectores
de la forma
1
8
1 8
( , − , 0, 0) + α(0, −1, 0, 1) + β(−1, 1, 1, 0) = ( − β, − − α + β, β, α)
3 3
3
3
Ejercicio 10.2 Discutir y resolver los siguientes sistemas lineales:



x + 2y + z + 3t = 45
x
+
2y
−
z
+
t
+
u
=
0







 x + y + z + 4t = 48
 3x − y + t − u = 6
 x−y+z =2
c)
a)
b)
3x + 2y − 2z = 1



2x + y + 4z + 10t = 101
6x
+
y
+
t
+
u
=
1





−x + 3y − z = 2


−x − 3y + 7z + 5t = −4
x − 2y + 2z − 2t = −5
Saber resolver sistemas lineales nos permite hacer algunas cosas más relacionadas con vectores.
Así por ejemplo, para saber si un vector se pone o no como combinación lineal de otros, y, en su
caso, hallar los escalares que permiten hacer esto, lo que tenemos que hacer es precisamente resolver
un sistema lineal. Un caso particular de esta situación se presenta cuando queremos hallar las
coordenadas de un vector en una base, o, incluso, cuando queremos hallar la matriz cambio de base
de dos bases de un espacio vectorial.
Ejercicio 10.3 Responder a las siguientes preguntas:
1. Comprobar si el vector (1, −1, 0, 2) es combinación lineal de los vectores (0, −2, 3, 1) y (1, 0, 0, 1),
y en caso afirmativo, hallar los escalares que permiten dicha combinación lineal.
2. Hallar las coordenadas del vector (1, −1, 0) en la base {(1, 2, 3), (1, 3, 0), (3, 2, 3)} de R3 .
11
Aplicaciones lineales
Ejemplo 11.1 Consideremos la aplicación f : R4 → R3 , definida por f (x, y, z, t) = (x − z, 0, y −
2z + t). Responder a las siguientes cuestiones:
1. Definir la aplicación f .
2. Hallar la matriz asociada a f respecto de las bases canónicas de R4 y R3 .
3. Hallar bases del núcleo y de la imagen de f .
4. Clasificar f .
5. Hallar la matriz asociada a f respecto de las bases C4 (=base canónica de R4 ) y
B = {(1, 1, 0), (1, 1, 1), (1, 0, 0)}.
15
6. Hallar la matriz asociada a f respecto de las bases B1 = {(1, 2, 3, 4), (0, 1, 2, 3), (0, 0, 1, 2), (0, 0, 0, 1)}
de R4 y
B2 = {(−2, 1, 0), (1, 1, 0), (3, 0, −3)} de R3 .
Ejecutando Clear[f,x,y,z,t];f[{x_,y_,z_,t_}]={x-z,0,y-2z+t} tenemos definida la función.
La matriz
m=Transpose[{f[{1,0,0,0}],f[{0,1,0,0}],f[{0,0,1,0}],f[{0,0,0,1}]}]
es la asociada a f respecto de las bases canónicas de R4 y R3 . En este caso esta matriz es


1 0 −1 0


0 0 
 0 0
0 1 −2 1
Para el núcleo la línea NullSpace[m] nos da una base de él. Para la imagen, la sentencia
RowReduce[Transpose[m]] nos da un SG de la imagen ya escalonado, y quitando los vectores
nulos tendremos una base de la imagen. Claramente dim ker f = 2 y dim Im f = 2, por lo que la
clasificación es: f no es ni inyectiva ni suprayectiva (por tanto tampoco es biyectiva). Para la matriz
asociada del penúltimo apartado podemos construimos en primer lugar la matriz cambio de base de
B a C3 la cual es
n=Transpose[{{1,1,0},{1,1,1},{1,0,0}}] Seguidamente obtenemos nuestra matriz sin más
que hacer el producto Inverse[n].m
Similarmente podemos hacer para la última en donde construimos en primer lugar las matrices
cambio de base de B1 a C4 y de B2 a C3 las cuales son, respectivamente
p=Transpose[{{1,2,3,4},{0,1,2,3},{0,0,1,2},{0,0,0,1}}]
y q=Transpose[{{-2,1,0},{1,1,0},{3,0,-3}}] Finalmente obtenemos nuestra matriz haciendo
el producto Inverse[q].m.p
Ejercicio 11.2 Consideremos la aplicación f : R3 → R2 , definida por f (x, y, z) = (x−y−z, x−y−z).
Responder a las siguientes cuestiones:
1. Definir la función f .
2. Hallar la matriz asociada a f respecto de las bases canónicas de R3 y R2 .
3. Hallar bases del núcleo y de la imagen de f .
4. Clasificar f .
5. Hallar la matriz asociada a f respecto de las bases B1 = {(1, 1, 0), (1, 1, 1), (1, 0, 0)} y B2 =
{(2, −1), (3, 1)}.
Apéndice de las práctica 4
16
12
Ecuaciones
En Mathematica la igualdad en una ecuación se escribe con el símbolo == para distinguirlo del
símbolo = que utilizábamos para definir variables o funciones. Así la ecuación que nosotros habitualmente designamos por x = 2x − 3 se escribiría x == 2x − 3 Para resolver una ecuación o un
sistema de ecuaciones, Mathematica dispone de varios comandos:
a) Solve[ecuación,variable]
o
Solve[{ec1 ,ec2 ,...,ecn },{var1 ,var2 ,...,varn }]
Con estas sentencias el programa resuelve, si existe solución, la ecuación o el sistema de ecuaciones,
para las variables dadas.
b) Reduce[ecuación,variable]
o
Reduce[{ec1 ,ec2 ,...,ecn },{var1 ,var2 ,...,varn }]
Con estos comandos el programa simplifica todo lo posible la ecuación o el sistema, considerando
sus soluciones, tanto en términos de las variables como de los posibles parámetros (dando los valores
de los parámetros para los cuales existe la solución y la solución correspondiente)
c) El comando
FindRoot
halla una raíz (mediante aproximación numérica) de una
ecuación de una variable, a partir de una condición inicial próxima (utilizando el conocido método de
Newton). Con los otros comandos Mathematica intenta hallar las soluciones del sistema de ecuaciones
más o menos despejando y sustituyendo, utilizando funciones inversas, y eso no es siempre posible.
Por ello no será capaz de resolver muchos sistemas de ecuaciones. Ahora bien, a veces nos puede
interesar hallar una solución concreta de una ecuación (bien porque las otras no nos sean de interés, o
bien porque sepamos que es única). Puede aplicarse el método de Newton para hallarla. No vamos a
ver detalles de este método, pero sí diremos que funciona en numerosas situaciones y que proporciona
una solución de una ecuación si damos un valor inicial próximo a la solución.
Ejemplo 12.1
1. Vamos a hallar las raíces del polinomio y 4 −3y 3 +2y 2
la sentencia
Solve[yˆ4 − 3yˆ3 + 2yˆ2 == 0, y]
Para ello escribimos
y
x2 + (y − 1)2 = 1
2. Vamos a intersectar las circunferencias x2 + y 2 = 1
ello escribimos la sentencia Solve[{xˆ2 + yˆ2 == 1, xˆ2 + (y − 1)ˆ2 == 1}, {x, y}]
Para
3. Sabiendo que la ecuacion ex = 3x tiene una raíz próxima a 1 vamos a hallarla escribiendo
F indRoot[Eˆx == 3x, {x, 1}]
Ejercicio 12.2 Resolver las siguientes ecuaciones, para la variable x (utilizar tanto Solve como
Reduce y observar la diferencia):
1. x4 − 5x3 + 5x2 + 5x − 6 = 0
2. ax + b = c
3. ax2 + bx + c = 0
17
Ejercicio 12.3 Resolver el siguiente sistema en las variables
Solve como Reduce y observar la diferencia):
x2 + y 2 = 1
Ejercicio 12.4 Hallar la raíz de la ecuación
x
e
y
(utilizar tanto
x+y =a
cos x = 3senx
próxima a 0.
Observación 12.5 Para mostrar los resultados de Solve y Reduce es necesario conocer los operadores lógicos que se explican a continuación.
12.1
Operadores lógicos
Mathematica a veces necesita mostrar resultados en los que intervienen proposiciones lógicas. Para
este tipo de cosas es necesario conocer los siguientes símbolos:
==
igualdad
6=
desigualdad
&&
conjunción (y)
||
disyunción (o)
Ejemplo 12.6
1. La expresión
igual a 3 o a igual a 4”.
2. La expresión
distinto de 4”.
a == 2 || a == 3 || a == 4
significa ”a igual a 2 o a
significa ”a distinto de 2 y a distinto de 3 y a
a6=2 && a6=3 && a6=4
PRÁCTICA 5: DIAGONALIZACIÓN Y LÍMITES Y REPRESENTACIÓN GRÁFICA DE FUNCIONES DE UNA
VARIABLE
13
Diagonalización de matrices
Supongamos que m es una matriz cuadrada de orden n. Para hallar los valores propios de m
deberemos ejecutar la sentencia
Eigenvalues[m]
Si lo que queremos es unir bases de todos
los subespacios propios de m lo que deberemos poner es
Eigenvectors[m]
Hay que tener
en cuenta que el último comando lo que hace es hallar bases de cada uno de los subespacios propios
y después unirlas. Para cada valor propio, añade tantos vectores cero como diferencia hay entre la
multiplicidad del valor propio (multiplicidad que tiene como raíz del polinomio característico de m)
y la dimensión del correspondiente subespacio propio. Además, los valores propios los ordena según
el orden natural de los números, y los vectores propios aparecen en el mismo orden que los valores
propios a los que van asociados. Para saber si una matriz m es diagonalizable tenemos que ver que
18
todos los valores propios son reales y que existe una base del espacio formada por vectores propios.
Esto último puede hacerse directamente viendo si el número de vectores propios (no nulos) que el
programa nos da después de ejecutar la sentencia Eigenvectors[m] es igual al tamaño de la matriz.
Ejemplo 13.1 Ejecutando las siguientes sentencias:
m = {{3, 0, 0}, {0, 2, 0}, {0, 0, 2}}
Eigenvalues[m]
Eigenvectors[m]
vemos que la matriz es diagonalizable, pues todos los valores propios son reales y los vectores que
salen son no nulos. Ejecutando el comando
JordanDecomposition[m]
vemos cuál es la matriz de paso (primera) y la diagonal (segunda), o visualmente con
MatrixF orm[%]
la matriz de paso está arriba y la diagonal abajo.
Ejemplo 13.2 Ejecutando las siguientes sentencias:
n = {{1, −1, 3}, {0, −2, 3}, {0, 0, 2}}
Eigenvalues[n]
Eigenvectors[n]
vemos que la matriz es diagonalizable, pues todos los valores propios son reales y los vectores que
salen son no nulos. Ejecutando el comando
JordanDecomposition[n]
vemos cuál es la matriz de paso (primera) y la diagonal (segunda), o visualmente con
MatrixF orm[%]
la matriz de paso está arriba y la diagonal abajo.
Ejemplo 13.3 Ejecutando las siguientes sentencias:
a = {{1, 0, 0, 0, 0, 0}, {1, 1, 0, 0, 0, 0}, {0, 1, 1, 0, 0, 0}, {0, 0, 0, 2, 0, 0}, {0, 0, 0, 1, 2, 0}, {0, 0, 0, 0, 0, −1}}
Eigenvalues[a]
Eigenvectors[a]
vemos que la matriz es no diagonalizable, pues aunque todos los valores propios son reales hay
vectores que salen nulos.
Ejercicio 13.4 Para las siguientes matrices, hallar los valores propios, una base de cada subespacio
propio, comprobar si son diagonalizables, y, en caso afirmativo, hallar las matrices cambio de base
correspondientes P y P −1 y las matrices diagonales correspondientes D (observar cuáles son los
elementos de la diagonal de D):



1 −1 −1
5 0 −4
1 2 0




0 
0   1 −1
 −1 3 1   0 3
1
0 −1
2 0 −1
0 1 1

19
14
Límites de funciones de una variable
La sentencia Limit[funcion[variable],variable->punto] proporciona el límite de la función
funcion cuando variable tiende hacia punto
(el símbolo -> se consigue poniendo primero un guión y luego el signo de mayor que; puede sustituirse por la flecha de la tabla
de símbolos que aparece al principio).
Ejemplo 14.1 Teclear la siguiente sentencia
Limit[(x − 1)/(xˆ2 − 1), x− > 1]
Ejercicio 14.2 Calcular los siguientes límites:
x2 −1
2
x→∞ 2x −x−1
1. lim
2. lim
x→0
sen5x
x
1+senx−cos x
,
x→0 1+senpx−cos px
3. lim
15
p∈R
Representación gráfica de funciones
Mathematica es capaz de hacer gráficas de funciones de una variable. El comando a utilizar es
Plot
La forma de usarlo es la siguiente:
Plot[funcion,{variable,extremoizquierdo,extremoderecho}]
También pueden hacerse simultáneamente las gráficas de S funciones poniendo
Plot[{funcion1,funcion2,...,funcionS},{variable,extremoizquierdo,extremoderecho}]
Ejemplo 15.1 Ejecutar las siguientes sentencias (observar lo que ocurre con el ejemplo 8))
1.
P lot[Cos[x], {x, −P i, P i}]
2.
P lot[xˆ3 − 2x, {x, −1, 1}]
3.
P lot[Exp[x], {x, 0, 4}]
4.
P lot[Sqrt[1 − xˆ2], {x, −1, 1}]
5.
P lot[{Sin[x], Cos[x]}, {x, −P i, P i}]
6.
P lot[{Sin[x], Cos[x]}, {x, 0, 2P i}]
7.
P lot[Sin[x]ˆ2 ∗ Cos[3x], {x, −P i, P i}]
8.
P lot[1/x, {x, −1, 1}]
20
Si lo que queremos es representar una superficie de ecuación z = f (x, y) en el rectángulo
[a, b] × [c, d] en el espacio deberemos poner Plot3D[f[x,y],{x,a,b},{y,c,d}]
También puede utilizarse la forma paramétrica para representar las curvas o superficies. Así
poniendo ParametricPlot[{f[t],g[t]},{t,a,b}]
nos da la representación en R2 de la curva cuya ecuación paramétrica es (f (t), g(t)) en el intervalo
dado [a, b]. Poniendo ParametricPlot3D[{f[t],g[t],h[t]},{t,a,b}]
puede obtenerse la gráfica de una curva en R3 cuya ecuación paramétrica sea (f (t), g(t), h(t)) en
el intervalo [a, b]. Poniendo ParametricPlot3D[{f[u,v],g[u,v],h[u,v]},{u,a,b},{v,c,d}]
puede obtenerse la gráfica de una superficie en R3 cuya ecuación paramétrica sea (f (u, v), g(u, v), h(u, v))
en [a, b] × [c, d].
Ejemplo 15.2 Ejecutar las siguientes sentencias
1.
P lot3D[Cos[x ∗ y], {x, −P i, P i}, {y, −P i, P i}]
2.
P lot3D[xˆ2 − yˆ2, {x, −1, 1}, {y, −1, 1}]
3.
P lot3D[Sin[x] ∗ Cos[y], {x, −P i, P i}, {y, −P i, P i}]
4.
P arametricP lot[{Sin[t] + Sin[t]ArcT an[t], Cos[t] + Sin[t]ArcT an[t]}, {t, −20P i, 20P i}]
5.
P arametricP lot[{Eˆ(−t/20)Sin[t], Eˆ(−t/20)Cos[t]}, {t, 0, 20P i}]
6.
P arametricP lot3D[{Sin[P i t], Cos[P i t], Eˆ(1 − t(t + 1))Cos[t]}, {t, 0, 20P i}]
7.
P arametricP lot3D[{Sin[t], Cos[t], t/10}, {t, −4P i, 4P i}]
8.
P arametricP lot3D[{Cos[v], Sin[v]Cos[u], Sin[v]Sin[u]}, {u, 0, 2P i}, {v, 0, P i}]
9.
P arametricP lot3D[{t, Sin[s], Cos[s]}, {t, 0, 3}, {s, 0, 2P i}]
Apéndice de las práctica 5
16
Manipulación de expresiones
Los siguientes comandos son útilles para manipular expresiones polinómicas:
Apart
reduce una fracción a suma de fracciones simples
Cancel
simplifica denominadores comunes en fracciones
Expand
multiplica y realiza potencias
ExpandAll
multiplica y realiza todas las potencias
Factor
expresa como producto de factores irreducibles
Simplify
simplifica expresiones
Together
agrupa una suma de fracciones con un denominador común
21
Los siguientes comandos son para expresiones trigonométricas
TrigExpand
Desarrolla expresiones en sumas
TrigFactor
Transforma expresiones en productos
TrigReduce
Reduce expresiones usando múltiplos de los ángulos iniciales
Ejemplo 16.1 Ejecutar las siguientes sentencias (eliminar previamente el valor de todas los parámetros que se usen)
1.
Apart[1/((x − 1) ∗ (x − 3))]
2.
Cancel[(x − 1)/(xˆ2 − 1)]
3.
Expand[(x − 1)ˆ3(x − 4)ˆ2]
4.
Expand[((x − 3)ˆ2(x + 4))/((x − 5)ˆ2(x + 2))]
5.
ExpandAll[((x − 3)ˆ2(x + 4))/((x − 5)ˆ2(x + 2))]
6.
F actor[xˆ4 − 3xˆ3 + 2xˆ2]
7.
Simplif y[(b ∗ aˆ2 − aˆ2)/(a ∗ bˆ2 − b a)]
8.
T ogether[1/(x − 1) − 3/(xˆ2 − 1)]
9.
T rigExpand[Cos[3x]Sin[x]Cos[10x]]
10.
T rigF actor[Sin[x] − Sin[5x]]
11.
T rigReduce[Cos[x]ˆ5Sin[x]ˆ2 + 4Sin[x]]
17
Proposiciones lógicas
Mathematica es capaz de manejar proposiciones lógicas y decir el valor que tienen: True (verdadero) o False (falso). Veamos el siguiente ejemplo:
Ejemplo 17.1 Ejecutar las siguientes sentencias:
1) x = 2; y = 3; z = 3; 2) {x, y, z} 3) x == y
4) x == z
5) y == z
PRÁCTICA 6: FUNCIONES DE UNA VARIABLE: DERIVADAS, POLINOMIOS DE TAYLOR E INTEGRALES
22
18
Derivadas
Para derivar funciones de una variable podemos usar el comando
D
Su formulación es la
siguiente:
D[funcion,variable]
También puede utilizarse la comilla 0 con el nombre de la función.
Para hallar la derivada de orden n de una función f es suficiente con ejecutar la sentencia
D[f[variable],{variable,n}]
Ejemplo 18.1 Ejecutar las siguientes sentencias
1.
D[xˆ3 − 2x, x]
2.
D[xˆ3 − 2y, y]
3.
D[ArcSin[(x − 1)/4], x]
4.
D[ArcT an[(3x + 1)/2], x]
5.
D[Exp[Cos[t]ˆ2 − tˆ4], t]
6.
f [x ] = xˆx
7.
D[f [u], u]
8.
g[y ] = f [3y]
9.
D[g[u], u]
10.
D[ArcCos[x], {x, 5}]
11.
D[Exp[xˆ2], x, x, x]
12.
Clear[f, x]; f [x ] = Si n[3x − 1] ∗ xˆ2; f 0 [x]
Ejercicio 18.2 Calcular las derivadas de órdenes 3, 6 y 10 de las funciones que se indican a continuación:
1. f (x) = sen(x2 )
2. f (x) = log(cos x)
√
2
3. f (x) = sen( x) · e1+x
4. f (x) =
1+x−x2
1−x+x2
3 −2
5. f (x) = ((1 + cos x) · log x)x
23
19
Polinomios de Taylor
Si lo que queremos es hallar el polinomio de Taylor de f en el punto centro de grado n debemos
ejecutar la sentencia
Series[f[variable],{variable,centro,n}]
Ejemplo 19.1 Teclear la siguiente sentencia
Series[Cos[x], {x, 0, 5}]
Ejercicio 19.2 Calcular los polinomios de Taylor de las siguientes funciones en los puntos que se
indican:
1.
f (x) = ex−1 · cos πx − arctan x
2.
g(x) =
3.
) · log(6x − 11)
h(x) = cos2 ( πx
3
20
arcsen(x3 )
√
1−x2
en el punto 1 de grado 6
en el punto 0 de grado 12
en el punto 2 de grado 5
Integrales
Para calcular integrales de funciones de una variable podemos usar el comando
Integrate
Su
formulación es la siguiente:
Integrate[funcion,variable]
calcula una primitiva de la función indicada
Integrate[funcion,{variable,extremoizquierdo,extremoderecho}]
calcula la integral definida de la función indicada en el intervalo indicado.
R
Ejemplo 20.1 Para calcular la integral cos xdx tendríamos que teclear
Integrate[Cos[x], x] y
R2 3
para calcular la integral
x dx tendríamos que teclear
Integrate[xˆ3, {x, −1, 2}]
−1
Ejemplo 20.2 Ejecutar las siguientes sentencias
1.
Integrate[xˆ3 − 2x, x]
2.
Integrate[Cos[x]ˆ8, x]
3.
Integrate[ArcT an[x], x]
4.
Integrate[Sqrt[3t − tˆ2], t]
5.
Integrate[x/((xˆ2 + 1) ∗ (x − 2)ˆ3), x]
6.
Integrate[(xˆ3 − 2x)/((xˆ2 − 1) ∗ (x − 2)ˆ2 ∗ (xˆ2 + 2x + 2)), x]
7.
Integrate[Cos[x]ˆ3, {x, −P i, P i}]
8.
Integrate[s ∗ Log[s], {s, 0.1, 1}]
Apéndice de las práctica 6
24
21
Otras funciones de Mathematica
Función factorial
n! o F actorial[n]
calcula el factorial del número natural n
¡n¢
n!
Números combinatorios
Binomial[n, m]
calcula m
= m!(n−m)!
Parte entera
IntegerP art[x]
halla la parte entera del número real x (es decir, el mayor
número entero que es menor o igual que x). Además, el comando
Round[x]
da el entero
más próximo a x.
División módulo n
Mod[n, m]
halla el resto resultante de la división de n entre m (ambos
números naturales).
Divisors[n]
Calcular los divisores del número natural n.
F actorInteger[n]
Calcula la factorización en primos del número natural n.
P rime[n]
Calcular el número primo número n (n es el lugar que ocupa dentro de la lista de
los números primos).
Max[x1, x2, ...] y Min[x1, x2, ...] hallan el máximo y el mínimo, respectivamente, del conjunto de
números que hay en su argumento.
GCD[x1, x2, ...] y LCM[x1, x2, ...] hallan el máximo común divisor y el mínimo común múltiplo,
respectivamente, del conjunto de números naturales que hay en su argumento.
P olinomiaRemainder[p, q, x] da el resto de dividir p entre q (ambos polinomios en la variable x)
P olynomialGCD[p1 , p2 , ..., pk ] o P olynomialLCM[p1 , p2 , ..., pk ] da el MCD o el MCM, respectivamente, de los polinomios en cuestión.
F indMinimum[f [x], {x, x0 }] encuentra el mínimo relativo de f cercano a x0
Re[z], Im[z], Conjugate[z], Arg[z] y Abs[z]
calculan la parte real, parte imaginaria, el conjugado, el argumento principal y el módulo de un número complejo z.
Para realizar sumas o productos mediante un contador, los comandos a emplear son
Sum
y P roduct
Su empleo es similar al del comando T able
Así por ejemplo, la sentencia
Sum[jˆ2, {j, 1, 5, 1}] nos da 12 + 22 + 32 + 42 + 52 , la sentencia
P roduct[2i + 3, {i, 2, 8, 2}] nos
da 7 · 11 · 15 · 19. Finalmente, la sentencia
Sum[1/2ˆj, {j, 0, Inf inity}]
nos da la suma de
P 1
la serie
2j
j≥0
25
Descargar