Saltar al contenido principal
LibreTexts Español

2.1: Números

  • Page ID
    113306
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    Resolver problemas de Computación Científica en última instancia se reduce a manipular datos y en lo más básico es el de cadenas y números. Comenzamos por comprender estos tipos de datos y cómo almacenar valores en ellos.

    También mostramos algo de sintaxis julia, que se parece a otros lenguajes (como python). Ojalá tengas algunos conocimientos básicos de computación, pero no es necesaria la suposición de ningún idioma en particular.

    Números

    No es sorprendente que el tipo de datos más importante en la computación científica, al menos en el nivel más atómico sean los números. Los números en cómputos imitan a los de las matemáticas con algunas diferencias importantes. Julia como la mayoría de los lenguajes de computación tienen dos tipos de números principales, enteros y puntos flotantes. Los enteros de Julia y muy parecidos a los enteros matemáticos en que almacenan números como\(0, 10, -400\). Los números de punto flotante generalmente son aproximaciones a números reales o decimales y se tratarán más detalles en el Capítulo??.

    Julia también tiene un tipo de datos racional para números comúnmente aunque como fracciones como\(-\frac{2}{3}\) o\(\frac{22}{7}\). Recordemos que típicamente\(i\) representa\(\sqrt{-1}\), el número imaginario base. Los números complejos como también\(2+3i\) son nativos de julia. Exploraremos en mayor profundidad tanto los números racionales como los complejos en el Capítulo??.

    Declaraciones de asignación y variables

    Cualquier cosa se puede almacenar como una variable usando el único signo igual como

    x=6

    Se trata de un operador de asignación, que crea el número 6 y lo almacena bajo el nombre x.

    Y ahora que se almacena la variable, podemos utilizarla en los cálculos. Por ejemplo

    x+3
    9

     

    Las variables en julia, al igual que otros idiomas son principalmente secuencias de caracteres alfanuméricos así como un guión bajo. Principalmente, una variable necesita comenzar con un carácter alfabético o y después del primer carácter puede contener números.

    Julia también permite muchos símbolos unicode en nombres de variables, sin embargo no todo. Por ejemplo, todas las letras griegas están permitidas, por lo que\(\alpha=45\) es válido.

    Para obtener una letra griega en Jupyter o el REPL, escribe\ alpha, pulsa la tecla TAB y se convierte en una\(\alpha\).

    Almacenamiento de variables en una pizarra virtual

    Los detalles de almacenar variables en hardware informático no son necesarios, sin embargo, pensar en almacenar como escribir variables y valores en una pizarra es un paradigma útil. Imagina una pizarra con una columna de nombres de variables y una columna de valores. Por ejemplo, si tenemos

    x=6
    y=-1
    z=8.5
    8.5

    entonces puedes pensar en la pizarra luciendo así:

    variable valor
    x 6
    y -1
    z 8.5

     

    Si evaluamos alguna expresión que contenga alguna de estas variables, entonces el valor buscado sustituyó en la expresión. Por ejemplo,

    2*y
    -2

    busca el valor de y (que es -1) y sustituye ese valor en y multiplica el resultado por 2. Como puedes ver el resultado es -2.

    Si cambiamos uno de los valores, como

    y = y+5

    esto significa que el lado derecho se evalúa buscando el valor de y y y el resultado es 4. Después el 4 se coloca en la pizarra blanca, que ahora se verá así:

    variable valor
    x 6
    y 4
    z 8.5

    Si estás pensando en cómo funciona una pieza de código, a menudo necesitarás llegar al punto de escribir una versión de la pizarra.

    Cuerdas

    En muchos campos de la Computación Científica, como la Ciencia de Datos, las cadenas surgen a menudo y es importante entender algunos de los conceptos básicos de las mismas. En Julia, una cadena es una secuencia de caracteres rodeada de “” (comillas dobles). Por ejemplo:

    str ="This is a string"

    y si ingresas

    typeof(str)
     

    lo que demuestra que es una String. La Sección 1.2 entrará en más detalles sobre los tipos de datos en Julia. Las partes individuales de la cadena se llaman caracteres, que son de tipo Char y son por defecto Caracteres Unicode (que veremos son súper útiles). Algunas otras cosas útiles sobre las cadenas son

    • La longitud de una cadena se encuentra usando el comando length. length (str) devuelve 16.

    • Para acceder al primer elemento de la cadena, escriba first (str), el último se encuentra por last (str) y el 3er carácter por ejemplo es str [3]. En julia, la indexación de cadenas comienza en 1

    • Para convertir otros tipos de datos en cadena, utilice la función string. Por ejemplo

      string(3.0)
      "3.0"

      y nuevamente tenga en cuenta que las comillas dobles indican que se trata de una cadena.

    Operaciones de cadena

    Una operación de cadena común es la concatenación, o la fusión de dos cadenas. Considerar

    str1 = "The tide is high "
    str2 = "and I'm having fun."

    Podemos concatenar de dos maneras, con el símbolo del operador * o la función string. Ambos

    str1 * str2
    string(str1,str2)
    "The tide is high and I'm having fun."

    devuelve la misma concatenación de cadenas. Encuentro la segunda opción más clara en que * es una opción extraña para la concatenación de cadenas. Muchos lenguajes incluyendo java y ecmascript (javascript) usan + en su lugar para la concatenación de cadenas, lo que creo intuitivamente tiene más sentido.

    Otra operación linda para cuerdas es la operación de intercalación. Esto podría ser útil, sin embargo, un ejemplo no tan útil es

    "Hip, hip, hooray! "^3
    "Hip, hip, hooray! Hip, hip, hooray! Hip, hip, hooray! "

    concatena la cadena tres veces. Otras funciones importantes relacionadas con las cadenas se pueden encontrar en JULIA DOCUMENTACIÓN SOBRE

    Interpolación de cadena

    A menudo es necesario mezclar cadenas y otras variables juntas y podemos usar los métodos de concatenación como los anteriores. No obstante, hay una mejor manera. Usemos el valor de x que almacenamos arriba e insértelo al final de “El valor de x es". Lo siguiente hará

    result = "The value of x is $x"
     

    En realidad, hay otra manera de hacer la concatenación de cadenas si usa este método. Usando las variables almacenadas en str1 y str2, entonces

    "$str1$str2"
     

    también concatenar las cadenas.

    También podemos ir más allá de solo buscar cadenas en que también podemos ejecutar código. Digamos que tenemos la variable

    n=6

    Si queremos una cadena con su cuadrado, podemos ingresar:

    "The square of $n is $(n^2)."
    "The square of 6 is 36."

    donde debes notar que el código n^2 se ejecuta ya que ese código está dentro del $ ().

    Ejercicio

    Usa el volumen de una esfera\(\frac{4}{3}\pi r^3\), para calcular el volumen y producir una cadena. Por ejemplo, almacene r=3 y luego devuelva el resultado

    “El volumen de una esfera de radio 3 es 113.0973355292"

    donde 3 y el volumen se genera con interpolación de cadena.

     
     

     

    Expresiones

    Una expresión es una combinación de variables, elementos de datos (como números y cadenas), operaciones (como + o *) y funciones (como). Hemos visto una serie de expresiones a lo largo de este capítulo hasta ahora como

    x=6
    x+3
    str1 * str2
    length(str)
     

    En definitiva, escribir cosas en julia consistirá en escribir expresiones (y estructuras un poco más complicadas).

    Precedencia del operador

    Cuando escribimos una expresión como 11+2* (4+3) ^3, es importante entender el orden en que se realizan los operadores. Para las matemáticas, el pnemónico PEMDAS es útil para recordar en que el orden es:

    • Paréntesis: La expresión dentro de la () se realiza primero. Para el ejemplo anterior, el 4+3 es la primera operación realizada.

    • Exponenciales: El ^ se hace a continuación. Elevar el 7 desde arriba a la potencia de 3 resultando en 343.

    • Multiplicación y División: En este ejemplo, el 2* (343) se realiza a continuación

    • Suma y resta: Por último, suma 11 al resultado y el resultado es 697.

    En cualquier lenguaje de cómputos, también hay otros operadores y hay orden a esa precedencia, así veremos que hay otras cosas en las que pensar. Por ejemplo, el operador de asignación, tiene la prioridad más baja. Es decir, al asignar algo a una variable, todos los cálculos se realizan en el lado derecho del = antes de la asignación.

    Los detalles de todo esto se pueden encontrar en la DOCUMENTACIÓN DE JULIA SOBRE PRED

    Comentarios

    Un comentario en el código de computadora son secuencias de caracteres que se ignoran. El propósito de un comentario es alertar a un humano sobre lo que está pasando. Es posible que te hayan dicho que escribas comentarios para que alguien más que lea tu código entienda lo que estás haciendo. No obstante, he descubierto que a la persona que más le gusta leer tu código eres tú en una fecha posterior. Deberías agregar comentarios por ti mismo.

    En julia, un comentario es cualquier cosa a la derecha de un, signo de libra o etiqueta hash. Por ejemplo:

    ## This calculates the area of a circle
    r=3
    pi*r^2 # this is the actual formula for the area

    Ambas líneas 1 y 3 tienen comentarios. En la línea 1, se ignora toda la línea ya que la línea comienza con #. En la línea 3, todo después del 2 (el poder) es ignorado. Además, observe que hay dos etiquetas hash en la línea 1 y 1 en la línea 3. Esto es simplemente un estilo diferente. Ya que cualquier cosa después de un sencillo es un comentario, todo después del primero se ignora.


    2.1: Números is shared under a CC BY-NC-SA license and was authored, remixed, and/or curated by LibreTexts.