de Óptica y Optometría.
Primera práctica
Empezar a trabajar en Mathematica.
Para compilar una operación en Mathematica, basta escribirla en una celda de texto tipo input y pulsar "shift+intro" (esto es, la tecla de mayúsculas y la tecla intro a la vez), o bien la tecla "intro" del teclado numérico. El texto que compila- mos aparecerá como una entrada
" In[número]:=operación",
siendo el número que aparece entre corchetes, un contador de las compilaciones que llevamos hasta el momento. El resultado que obtiene el Mathematica al hacer la operación que hemos implementado, nos lo muestrade la forma
"Out[número]=resultado".
Pero todo esto se ve mucho más fácil con un ejemplo; en efecto, sitúa el cursor al final de la línea siguiente y pulsa la tecla "intro" del teclado numérico (a partir de aquí diremos sólo "intro")
4 + 5
Tanto In[1]:= como Out[1] los introduce el programa y no nosotros.
El editor del Mathematica se estrucura mediante celdas, las cuales están delimita- das por un corchete azul situado a la derecha de los párrafos. Para cambiar de una celda a otra debemos pulsar las flechas ≠ y Ø situadas en el teclado entre el bloque numérico y el alfabético. Cuando pulsamos dichas teclas, justo antes de cambiar de celda aparece una línea. Si en ese momento pulsamos la tecla intro abrimos una nueva celda. Por defecto, la celda será tipo "input"; si queremos cambiar el tipo, debemos pinchar en FormatÆStyle y depués el estilo que queramos. Por ejem- plo, esta celda está escrita en estilo "text". El único estilo válido para implementar operaciones es el input, mientras que los otros estilos se utilizan para escribir texto de diferentes tamaños.
Para eliminar una celda, señalamos con el ratón el correspondiente corchete azul
de la derecha y pulsamos "supr".
Operaciones básicas
Las operaciones suma y resta se implementan con "+" y "-" respectivamente, para la multiplicación no es necesario poner nada, basta con dejar un espacio en blanco
4 5 20
aunque también se puede utilizar "*"
4 ∗ 5 20
Los paréntesis "(" y ")" funcionan como es habitual y para la división se utiliza "/"
36ê 3 12
EJERCICIO.- Realice la operación de la suma de 8 más 9 dividida por 17, ¿el resultado es e1 mismo? ¿por qué?
La potencia se escribe mediante el acento circunflejo "^"
2 ^ 3 8 o también
2 ^Hx^2 + 2L 22+x2
La raíz cuadrada se implementa mediante el comando Sqrt[expresión]
Sqrt@36D
6 otro ejemplo
Sqrt@x^2 + 2D è!!!!!!!!!!!!2 + x2
aunque, lógicamente, también se puede poner del siguiente modo (observe lo importante de colocar adecuadamente los paréntesis).
36^H1 ê 2L 6
EJERCICIO.- ¿Sería capaz de calcular la raíz octava de 390625?
Estas, y otras operaciones básicas se pueden introducir utilizando las palettes de ayuda que contiene Mathematica, como la de la figura siguiente que se puede obtener picando en FileÆPalettesÆBasicInput.Aquí también puede obtener letras del alfabeto griego.
Picando con el ratón en la operación deseada se inplementa en la celda, por ejem- plo la potencia:
Para pasar de un "cuadrito" a otro lo puede hacer con la tecla tabulador o picando con el ratón.
EJERCICIO.- Utilice la palette BasicInput para calcular 354, 363 ,è!!!!!!16 ,è!!!3 8. Otras funciones interesantes son las siguientes:
Constantes más importantes y manejo de números decimales.
Las constantes predefinidas también empiezan con mayúscula, así como todos los comandos existentes en el Mathematica. Entre las más usualesdestacan el número p que en el programa se escribe como "Pi"
Pi π
y e que Mathematica reconoce como "E"
E
Para calcular una aproximación de p o de cualquier otro número utilizamos el comando "N[número,dígitos]". Este comando tiene dos argumentos, el primero es el número del cual queremos conocer su representación decimal, y el segundo, el número de dígitos que queremos que represente.
N@Pi, 21D
3.14159265358979323846
Si suprimimos el segundo argumento calcula la aproximación por defecto con 6 dígitos significativos.
N@PiD
3.14159
Todos los comandos predefinidos en el Mathematica empiezan por mayúscula, como ya hemos dicho.
Además, sus argumentos se encierran entre corchetes y se separan por comas. Un ejemplo de ello lo constituye el comando "N" que acabamos de ver.
EJERCICIO.- Calcule con una aproximación de 20 cifras decimales el número e, è!!!!!!!!!!7 3547y ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄè!!!!!!!!!!!37+ep3 .
Algo sobre variables y cálculo simbólico
Mathematica permite la introducción de variables y el cálculo simbólico:
a = 17;
b = 32;
N@Sqrt@a^2 + bD, aD 17.916472867168917
Observe que al poner al final de una línea ";" Mathematica no produce ninguna salida, lo que nos permite introducir varias expresiones seguidas.
EJERCICIO.- Compruebe qué pasa si no pone el ";".
Para eliminar el valor asignado a una ovarias variables se utiliza la orden Clear[variable1,variable2,...]; así si queremos queremos que las variables a y b del ejemplo anterior dejen de valer 17 y 32 respectivamente y así poder asignarles nuevos valores ponemos
Clear@a, bD
Observe los siguientes ejemplos de cálculo simbólico:
E ^ x E ^ y
x+y
x ^ 2 + 3 x − 3 x ^ 2 + 5 x + 2 + x − 6
−4 + 9 x − 2 x2
Para finalizar esta sección señalemos que se pueden utilizar resultados de opera- ciones anteriores sin necesidad de escribirlas de nuevo; en efecto, si no queremos referir a la operación inmediatamente anterior utilizamo el símbolo "%"
% + E ^ 2
−4 + 2 + 9 x − 2 x2
Si nos queremos referir a la penúltima ponemos "%%", y así sucesivamente o bien si pretendemos utilizar la que ocupo la salida n (Out[n]) ponemos "%n".
Algunas funciones elementales.
Ya hemos visto la exponencial de base e que Mathematica reconoce como E, también se puede implementar como Exp[expresión]
Exp@x^2D
x2
El logaritmo neperiano se representa por Log[expresión] (no como Ln) y el log- aritmo en general en otra base como Log[base,expresión]
Log@x^nD Log@xnD
Log@ED 1
Log@10, xD Log@xD Log@10D
Log@10, 10^2D
2
Mathematica también conoce las funciones trigonométricas:
Sin[x] =seno de x Cos[x] =coseno de x
Tan[x]=tangente de x Csc[x]=cosecante de x Sec[x]=secante de x Cot[x]=cotangente de x ArcSin[x]=arcoseno de x ArcCos[x]=arcocoseno de x ArcTan[x]=arcotangente de x ArcCsc[x]=arcocosecante de x ArcSec[x]=arcosecante de x Arc[Cot]=arcocotangente de x
También conoce las identidades trigonométricas y puede usarlas para trabajar con expresiones con senos, cosenos,... Para esto se utilzan los comandos Trig- Expand[expresión], TrigFactor[expresión] y TrigReduce[expresión], obser- vando los siguientes ejemplos puede conocer su funcionamiento:
TrigExpand@Cos@x + yDD
Cos@xD Cos@yD − Sin@xD Sin@yD
TrigExpand@Sin@x + 3 yD + Cos@2 zD Sin@x − yDD Cos@yD3 Sin@xD + Cos@yD Cos@zD2 Sin@xD +
3 Cos@xD Cos@yD2 Sin@yD − Cos@xD Cos@zD2 Sin@yD −
3 Cos@yD Sin@xD Sin@yD2 − Cos@xD Sin@yD3− Cos@yD Sin@xD Sin@zD2 + Cos@xD Sin@yD Sin@zD2
TrigFactorA Cos@xD2
2 − Cos@xD8
2 − Sin@xD2
2 +
8 Cos@xD6 Sin@xD2 − 15 Cos@xD4 Sin@xD4 + 8 Cos@xD2 Sin@xD6 − Sin@xD8
2 E
H1 + 2 Cos@2 xDL2 HCos@xD − Sin@xDL Sin@xD2 HCos@xD + Sin@xDL
TrigReduceA Cos@xD2
2 − Cos@xD8
2 − Sin@xD2
2 +
8 Cos@xD6 Sin@xD2 − 15 Cos@xD4 Sin@xD4 + 8 Cos@xD2 Sin@xD6 − Sin@xD8
2 E
1
4 H2 Cos@2 xD − Cos@4 xD − Cos@8 xDL
Observe que comandos distitnos sobre la misma expresión producen salidas distin- tas en su forma.
Comandos y observaciones interesantes.
El comando Simplify[expresión] consta de un solo argumento y sirve para simpli- ficar expresiones.
Simplify@1 ê Hx − 1L + 1 ê Hx + 1LD 2 x
−1 + x2
Si la expresión es demasiado complicada, puede no ser satisfactorio el comando anterior y se puede utilizar el comando
FullSimplify[expresión], por ejemplo
SimplifyA"########################
5 è!!!!!!
13 − 18
3 E
H−18 + 5 è!!!!!!13L1ê3
FullSimplifyA"########################
5 è!!!!!!
13 − 18
3 E
1
2 H−3 + è!!!!!!13L
El comando Expand[expresión] se utiliza para desarrollar una expresión Expand@Hx − 2L^3 + 3 Hx + 1L^2D
−5 + 18 x − 3 x2+ x3
El comando Factor[expresión] para factorizar, incluso con varias variables Factor@3 x^3 − 4 x^2 y − 5 x y^2 + 2 y^3D
Hx − 2 yL H3 x − yL Hx + yL
Por último, para resolver ecuaciones y sistemas de ecuaciones sencillas, se utiliza el comando
Solve[{ecuación1,ecuación2,...},{variable1,variable2,...}]
Solve@8x^4 − 3 x^2 + x + 3 0<, 8x<D
98x → −1<, 9x → 13 − 7 3 i
kjj 2 61 − 9 è!!!!!!29
y {zz1ê3 − 1
3 J 1
2 H61 − 9 è!!!!!!29LN1ê3=, 9x → 13 + 1
6 H1 + è!!!3L J 12 H61 − 9 è!!!!!!29LN1ê3+ 7H1 − è!!!3L
3 22ê3 H61 − 9 è!!!!!!29L1ê3 =, 9x → 13 + 1
6 H1 − è!!!3L J 12 H61 − 9 è!!!!!!29LN1ê3+ 7H1 + è!!!3L
3 22ê3 H61 − 9 è!!!!!!29L1ê3 ==
Como puede observar, el "igual" de la ecuación se indica al programa con "==" y en el ejemplo anterior aparecen raíces complejas (en la proxima práctica veremos números complejos), como
13 + 16 H1 + è!!!3L H 12 H61 − 9 è!!!!!!29LL1ê3 + 7I1− è!!!3M
3 22ê3I61−9 è!!!!!!29M1ê3 . Para algunos sistemas sencillos:
Solve@8x^2 + y^2 1,
Hx − 2L^2 + Hy − 1L^2 4<, 8x, y<D 98x → 0, y → 1<, 9x → 4
5 , y → − 3 5 ==
Observe que entre llaves aparecen las soluciones con un valor para x y el corre- spondiente valor para y.
Se pueden también resolver ecuaciones trigonométricas o de otro tipo
Solve@8Sin@xD − Cos@xD 0<, 8x<D
— Solve::ifun :
Inverse functions are being used by Solve, so some solutions may not be found.
99x → − 3 π4 =, 9x → π4 ==
Observe que Mathematica ofrece un comentario previo a las soluciones, esto ocurre cuando no puede resolver la ecuación, o como en este caso, cuando puedan existir más soluciones.
Hay veces que el programa no puede resolver algunas ecuaciones pero nosotros (si sabemos lo que hacemos), podemos utilizar el programa para facilitar la tarea;
por ejemplo, si queremos resolver el sistema formado por sen(x)+sen(y)=1 y 2(x+y)=p y ponemos
Solve@
8Sin@xD + Sin@yD 1, 2 Hx + yL Pi<, 8x, y<D
— Solve::incnst :
Inconsistent or redundant transcendental equation. After reduction, the bad equation is −π +2 ArcSin@Sin@xDD+
2 ArcSin@Sin@yDD == 0.
— Solve::incnst :
Inconsistent or redundant transcendental equation. After reduction, the bad equation is −π +2 ArcSin@Sin@xDD+
2 ArcSin@Sin@yDD == 0.
— Solve::tdep :
The equations appear to involve
the variables to be solved for in an essentially non−algebraic way.
Solve@
8Sin@xD + Sin@yD == 1, 2 Hx + yL == π<, 8x, y<D
Obtenemos un mensaje que indica que no lo puede hacer. Sin embargo podemos despear la y en la segunda ecuación:
Solve@82 Hx + yL Pi<, 8y<D 99y → 1
2 Hπ − 2 xL==
y sustituir en la primera ecuación (por ejemplo marcando la solución, copiando y pegando):
SolveA9Sin@xD + SinA 1
2 Hπ − 2 xLE 1=, 8x<E
— Solve::ifun :
Inverse functions are being used by Solve, so some solutions may not be found.
98x → 0<, 9x → π2 ==
Sólo queda encontrar los valores de y corespondientes a cada valor de x.
Algunos errores habituales.
Hay que tener en cuenta que al escribir el acento circumflejo de la potencia, no lo vemos en pantalla hasta que escribimos el siguiente número.
Al escribir è!!!x3 , solemos olvidar los paréntesis:
x ^ 1ê 3 NO!!!!!!
Al escribir una fracción en la que el numerador o el denominador están formados por una expresión compuesta, ya sea una suma o una multiplicación, solemos olvidar los paréntesis. Así, si queremos escribir ÅÅÅÅÅÅÅÅÅÅx-1x+1 no será correcto escribir
x + 1ê x − 1 NO!!!!!!
sino que tendremos que teclear
Hx − 1L ê Hx + 1L
Es usual que para escribir el logaritmo neperiano, utilicemos ln.
ln@xD NO!!!!!!!
pero debemos utilizar "Log"
Log@xD
Es habitual que escribamos la función seno mediante "sen", en vez del correcto
"Sin".
sen@xD NO!!!!!!!
Sin@xD
Cuando tenemos que elevar al cuadrado una función, hay que escribir el cuadrado al final y no inmediatamente después del nombre de la función.
log^ 2 HxL NO!!!!!!
Lo correcto es
Log@xD^2
Cos^ 2@xD NO!!!!!!
Lo correcto sería en este caso Cos@xD^2
Además es muy habitual escribir el argumento de la función encerrado entre parén- tesis y no entre corchetes que es lo correcto.
Sin HxL NO!!!!!!!
Sin@xD
Ejercicios
Intente resolver con ayuda de Mathematica los ejercicios del 10 al 16 de la hoja número 1 y 31, 32, 33, 34, 35, 36, 37, 41, 42 y 43 de la hoja número 2.