Download Capitulo 2.nb

Document related concepts

Búsqueda de patrones wikipedia , lookup

Transcript
Capitulo 2.nb
1
2. Aritmética Básica.
Variables y funciones
Ejemplos con Mathematica
1. Operaciones aritméticas elementales
ü Ejemplo 2.1.
Observar la importancia de los paréntesis realizando con Mathematica las
siguientes operaciones aritmeticas.
4 + 1 ∗ 3 + 3^2
16
Mathematica primero efectúa la potencia,después el producto y por último
las sumas.
H4 + 1L ∗ 3 + 3 ^ 2
24
En este caso, se realiza primero la suma entre paréntesis y después el
producto.
4 + 1 ∗ H3 + 3L ^ 2
40
Ahora, antes que la potencia, se realiza la suma del paréntesis.
Capitulo 2.nb
2. Tipos de datos y números
ü Ejemplo 2.2.
Calcular 21000y comprobar que efectivamente este cálculo es más preciso
que si se efectúa con una calculadora científica.
2 ^ 1000
10715086071862673209484250490600018105614048117055336074437503883703510
5112493612249319837881569585812759467291755314682518714528569231404359
8457757469857480393456777482423098542107460506237114187795418215304647
4983581941267398767559165543946077062914571196477686542167660429831652
624386837205668069376
ü Ejemplo 2.3.
6 3
1
Comprobar, realizando el cálculo ÅÅÅÅÅ J ÅÅÅÅÅ - ÅÅÅÅÅ N,
4 2
5
como Mathematica al realizar una operación aritmética
con números racionales nos devuelve un número racional,
y no una aproximación decimal.
6 ê 4 H3 ê 2 − 1 ê 5L
39
20
ü Ejemplo 2.4.
Calculemos la raíz cuadrada de 3 y observemos que la expresa de forma
simbólica.
è!!!!
3
Sqrt@3D
è!!!
3
è!!!
3
2
Capitulo 2.nb
Como vemos, con Mathematica podemos calcular la raíz cuadrada de 3 de
dos formas, mediante la paleta BasicInput o directamente usando la función
Sqrt[-].
ü Ejemplo 2.5.
Calcular la parte real y la parte
H2 + iL H3 - 2 iL
imaginaria del número complejo ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
ÅÅÅÅÅÅÅÅÅÅ
-3 - i
H2 + IL H3 − 2 IL ê H−3 − IL
23
11 − + 10
10
Ahora usando el % para referirnos a la operación anterior calculamos su
parte real y su parte imaginaria,
Re@%D
Im@%%D
23
− 10
11
10
ü Ejemplo 2.6.
Comprobar si la parte real del ejemplo anterior es menor que la parte imaginaria o viceversa.
a = Re@H2 + IL H3 − 2 IL ê H−3 − ILD < Im@H2 + IL H3 − 2 IL ê H−3 − ILD
b = Re@H2 + IL H3 − 2 IL ê H−3 − ILD > Im@H2 + IL H3 − 2 IL ê H−3 − ILD
True
False
3
Capitulo 2.nb
ü Ejemplo 2.7.
Introducir una cadena de caracteres y comprobar que Mathematica realmente la entiende como tal.
"Esto es Mathematica"
Esto es Mathematica
Head@%D
String
3. Diferentes precisiones en el cálculo
ü Ejemplo 2.8.
2
3
Calcular ÅÅÅÅÅ + ÅÅÅÅÅ 3
5
1
1
ÅÅÅÅÅ y posteriormente volver a calcular dicha expresión cambiando ÅÅÅÅÅ por 0.5.
2
2
2ê3 + 3ê5 − 1ê2
23
30
La suma de números racionales es devuelta como un número racional.
2 ê 3 + 3 ê 5 − 0.5
0.766667
Se realiza la misma operación, pero como uno de los términos aparece en
forma decimal, Mathematica supone que deseamos un cálculo aproximado
y de esta manera nos devuelve un valor decimal.
ü Ejemplo 2.9.
Calcular una aproximación de la raíz cuadrada de 3.
4
Capitulo 2.nb
Sqrt@3D êê N
1.73205
Otra opción para obtener la aproximación anterior es escribir el 3 en forma
decimal como:
[email protected]
1.73205
ü Ejemplo 2.10.
Calcular una aproximación de la raíz cuadrada de 3 con 100 dígitos.
N@Sqrt@3D, 100D
1.732050807568877293527446341505872366942805253810380628055806979451933
016908800037081146186757248576
4. Constantes y funciones elementales
ü Ejemplo 2.11.
Calcular una aproximación decimal del número p con 39 cifras decimales.
N@Pi, 40D
3.141592653589793238462643383279502884197
Obtenemos el valor aproximado del número p con 40 cifras significativas y
por tanto con 39 cifras decimales.
ü Ejemplo 2.12.
Calculemos el seno de 30º:
5
Capitulo 2.nb
6
Sin@30D êê N
−0.988032
Como vemos el valor obtenido no se corresponde con el seno de 30º; esto se
debe a que en Mathematica las funciones trigonométricas tienen sus argumentos en radianes y no en grados. Para calcular el seno de 30º debemos de
multiplicar
por la constante Degree:
Sin@30 ∗ DegreeD
1
2
Calculemos ahora un redondeo y el menor entero mayor que la raíz cuadrada de 30
Sqrt@30D êê N
5.47723
Round@%D
5
Ceiling@%%D
Round[%] nos devuelve un redondeo de
è!!!!!!
entero mayor que 30 .
è!!!!!!
30 y Ceiling[%%] el menor
Comprobar que el signo de la diferencia e - p es -1, que el número 30 no es
primo y que el 233 si lo es:
Sign@E − PiD
−1
Nos devuelve –1 pues e – p es un número negativo.
Capitulo 2.nb
PrimeQ@30D
False
PrimeQ@233D
True
En efecto, 30 no es primo y que 233 si lo es.
5. Variables y funciones
ü Ejemplo 2.13.
Asignar dos valores a variables con nombre a y b usando en un caso el
carácter “;”.
a = Round@Sqrt@3DD
2
Evalúa la expresión y asigna el valor 2, resultante de la operación, a la variable a.
b = Ceiling@Sqrt@2 PiDD;
Mathematica no nos devuelve nada aunque la asignación si queda hecha,
como comprobamos a continuación:
b
3
ü Ejemplo 2.14.
Veamos las diferencias de ambas asignaciones utilizando la variable b que
ya teníamos definida para definir dos nuevas variables c y d usando las dos
asignaciones.
7
Capitulo 2.nb
c=b+2
d := b − 2
5
Mathematica nos da el valor de c y no nos devuelve nada para d, a diferencia de lo que ocurrió con la variable b ahora la evaluación y asignación de d
no se hará hasta que la usemos. Si ahora cambiamos el valor de b por 0 y
volvemos a pedir los valores de c y d se tendrá:
b = 0;
c
d
5
−2
Observemos que c sigue teniendo el mismo valor pero el valor de d no es e1
que cabría esperar antes de cambiar el valor de b. Esto se debe a que la
evaluación de d se ha llevado a cabo justo después de cambiar el valor de b
y no al principio como ocurre con la variable c.
ü Ejemplo 2.15.
Definir la aplicación f(x) = x3 – 2 y calcular f(5) y f(z + 1).
f@x_D := x ^ 3 − 2
f@5D
123
f@z + 1D
−2 + H1 + zL3
ü Ejemplo 2.16.
Definir la función de Fibonacci y evaluarla en 10.
8
Capitulo 2.nb
9
fib@1D = 1; fib@2D = 1;
fib@n_D := fib@n − 2D + fib@n − 1D
fib@10D
55
La función anterior sólo tiene sentido para números naturales; si se intenta
calcular el valor de dicha función para un número decimal, usando la
definición anterior, caeríamos en un ciclo recursivo sin final y Mathematica
lo indica con un mensaje de error.
[email protected]
— $RecursionLimit::reclim : Recursion depth of 256 exceeded.
— $RecursionLimit::reclim : Recursion depth of 256 exceeded.
— $RecursionLimit::reclim : Recursion depth of 256 exceeded.
— General::stop :
Further output of $RecursionLimit::reclim will be suppressed during this calculation.
Para evitar este problema, podría indicarse en la definición de la función
que su argumento sólo puede tomar valores enteros:
fib2@1D = 1; fib2@2D = 1;
fib2@n_IntegerD := fib2@n − 2D + fib2@n − 1D
[email protected]
[email protected]
Ahora, el programa no intenta calcular el número de Fibonacci de 3.5 y
devuelve la función sin evaluar.
ü Ejemplo 2.17.
Usar la orden Clear[] para limpiar la función fib.
Clear@fibD
Capitulo 2.nb
[email protected]
[email protected]
Una vez que hemos limpiado la definición de la función “fib”, Mathematica
no puede evaluarla.
ü Ejemplo 2.18.
Borrar todas las asignaciones que hemos hecho en este capítulo.
Clear@"Global`∗"D
b
d
fib2@7D
b
d
fib2@7D
6. Impresión en pantalla
ü Ejemplo 2.19.
Asignar a la variable a el valor 1 e imprimir en pantalla “El valor de la variable a es 1”.
a = 1;
Print@"El valor de la variable a es ", aD
El valor de la variable a es 1
10