Download Capitulo 2.nb
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