lunes, 27 de diciembre de 2021

La buena ordenación

Se dice que un conjunto no vacío está bien ordenado si todos sus subconjuntos no vacíos tienen mínimo, esto es: si la mayor de las cotas inferiores ( o ínfimo ) de cada uno de ellos está incluida en el respectivo subconjunto. Esta propiedad de la buena ordenación es muy importante en los números naturales, pues en ella se sustenta el principio de inducción.

En efecto, el conjunto de los números naturales $\mathbb{N}$ está bien ordenado. No lo está, sin embargo, el conjunto de los números enteros $\mathbb{Z}$ y, por consiguiente, tampoco lo está el de los racionales $\mathbb{Q}$ ni el de los reales $\mathbb{R}$.

Para demostrar que el conjunto de los números naturales $\mathbb{N}$ está bien ordenado expondré una sencilla y bonita demostración que puede encontrarse en muchos manuales y que contribuye a mostrar la belleza de las matemáticas. Deberemos probar pues que todos los subconjuntos no vacíos del conjunto de los números naturales tienen mínimo.

Sea $(\mathbb{N},\le)$ el conjunto de los números naturales con la relación de orden $\le$.
Sea $A$ un subconjunto no vacío cualquiera de $\mathbb{N}$, entonces cabe hacer distinción entre los siguientes casos:

(a) Si $1 \in A$, hemos terminado ya que cualquier número natural es mayor o igual que $1$, que es el menor número natural y, por tanto, el mínimo de $A$.
(b) Si $1 \notin A$, demostraremos que tiene elemento mínimo, procediendo por el método de contradicción. Sea $B$ el conjunto formado por todos los números naturales estrictamente menores que cualquier elemento de $A$ y partamos de la siguiente hipótesis: la menor de las cotas inferiores de $A$ (que denotamos por $m$) está en $B$. De dicha hipótesis se deduce que $m+1 \in A$. Por otra parte, al ser $m$ estrictamente menor que cualquier elemento $a \in A$, podemos escribir $m+1 \le a$, esto es: $m+1 \in B$, luego $m+1 \notin A$, llegando así a una contradicción y debiendo por tanto negar la hipótesis de partida, luego $m \in A$ y esto ocurre para cualquier subconjunto no vacío de $\mathbb{N}$, luego dicho conjunto posee buena ordenación.   $\square$


Números complejos con GNU MAXIMA

  • [ 1 | 2 | 3 ]

Programación con GNU MAXIMA


Estadística descriptiva de una variables con GNU MAXIMA


Desarrollo de Taylor de funciones con GNU Maxima

Cálculo de integrales indefinidas y definidas con GNU MAXIMA

Cálculo de límites con GNU MAXIMA

Listas y conjuntos con GNU MAXIMA



Archivos y listas con GNU MAXIMA


Multiplicación de matrices con MAXIMA

domingo, 26 de diciembre de 2021

El problema de Apolonio sobre las circunferencias tangentes

El problema de Apolonio (Apolonio de Pérgamo, c. 262-190 adC, el matemático griego que dio nombre a los tres tipos de cónicas: elipse, parábola e hipérbola), consiste en determinar una circunferencia que sea tangente a tres circunferencias dadas. Aunque Apolonio dio ya una solución al problema que él mismo planteó, muchos siglos después, el matemático francés Joseph Diaz Gergonne (1771-1859), al trabajar con dicho problema buscando nuevos enfoques, empleó también la noción de centro radical de tres circunferencias y la de eje radical de dos circunferencias, y, por tanto, también la noción de potencia de un punto respecto de una circunferencia. Además, de conceptos modernos (s XIX) - propios de la geometría proyectiva, como es la noción de inversión del plano; resultó de todo ello una demostración muy elegante los detalles de la cual se pueden leer en este artículo (Wikipedia).


En esta figura se muestran las ocho soluciones al problema. Fuente: http://upload.wikimedia.org/wikipedia/commons/a/a7/Apolloniuscircle.gif. La noción de potencia d'un punto respecto de una circunferencia es una pieza clave en la resolución de problemas de tangencia. En matemática aplicada, son de enorme interés en ingeniería mecánica. $\square$

Proposiciones recíproca, contrarrecíproca, e inversa


El llenguatge col·loquial, a vegades, ens pot jugar alguna mala passada. L'altre dia vaig escoltar una conversa entre dues persones. Una li deia a l'altra “ (...) així, tots els elefants són mamífers, però la (sic) inversa no es pot pas validar(...)”. De seguida vaig notar alguna cosa que no anava bé en allò que s'estava dient. En arribar a casa, rumiant més acuradament, me'n vaig adonar del que no estava bé. I és que, sovint, es confon la proposició inversa amb la proposició recíproca. De fet, la persona que havia parlat hauria hagut de dir: (...) així, tots els elefants són mamífers, però la recíproca (no pas inversa) no es pot pas validar (...)”, perquè, probablement, estava confonent proposició recíproca amb proposició inversa.

Naturalment, la proposició inversa – la inversa de veritat – diria: “tot animal que no sigui un elefant no és un mamífer” que, clarament, no és pas certa; hi una ha infinitat de contra exemples (gossos, gats, dofins, etcètera). Val a dir, però que la proposició contra recíproca sí que és vàlida, però: “tot animal que no sigui mamífer no és un elefant”.





Considerem una proposició donada de la forma A implica B la qual entendrem com a "proposició directa". A partir d'aquesta distingirem entre les següents proposicions associades:

  • recíproca: B implica A
  • inversa: no A implica no B
  • contra recíproca: no B implica no A


  • Vegem un altre exemple:
    Considerem la proposició directa: plou, per tant hi ha núvols (proposició certa, és clar). Associada amb aquesta hi ha tres proposicions més, de les quals, dues no es poden validar:
    • recíproca: hi ha núvols, per tant plou (no es pot validar)
    • inversa: no plou, per tant no hi ha núvols (no es pot validar )
    • contra recíproca: no hi ha núvols, per tant no plou (és certa)

    I el terme viceversa ? Per altra banda, aprofito per comentar que, a vegades, i de forma gens apropiada, es fa servir viceversa com a sinònim de inversa o de recíproca en les proposicions condicionals, la qual cosa crea, molt sovint, una nova font de confusió i error, ja que viceversa es refereix a la inversió de l'ordre dels termes (diccionari IEC). Sí que és apropiat el seu ús, per tant, per fer referència als sentits oposats d'una acció, per exemple, "Josep passa la pilota a Marta, i viceversa" (i Marta la passa a Josep). $\square$

    miércoles, 22 de diciembre de 2021

    Algunas de mis herramientas de cálculo favoritas

    Mis herramientas favoritas

    Lenguajes de programación y asistentes de cálculo:
        Hoja de cálculo ( herramienta generalista, muy versátil; está integrada en muchas otras herramientas )
        R ( estadística, probabilidad, y cálculo numérico )
        Octave ( cálculo y análisis numérico )
        Maxima ( Un clásico CAS - cálculo simbólico - )
        Python ( lenguaje de propósito general, orientación a objetos; muy adecuado para los trabajos de modelización )
        C/C++ ( lenguaje de propósito general, orientación a objetos; muy adecuado para los proyectos de ingeniería y electrónica )
        Processing ( lenguaje muy apropiado para la elaboración de gráficos, orientación a objetos. También sirve como interfaz para la adquisición de datos mediante la intervención de una placa microcontroladora )
        Julia ( cálculo numérico, cálculo paralelo, un proyecto interesantísimo )
        JavaScript ( lenguaje orientado a objetos muy adecuado para preparar utilidades interactivas en una página web )

    Herramientas de mucha utilidad didáctica para las matemáticas en e. secundaria:
        GeoGebra ( multiherramienta: hoja de cálculo, cálculo simbólico, gráficos en 2 y 3 dimensiones, ...)
        Logo ( un clásico didáctico del MIT )
        Scratch ( programación visual, muy apropiada para aprender a programar, hereda la filosofía de los científicos que concibieron el lenguaje Logo, pero con eficaces interfaces gráficos que facilitan el aprendizaje )

    Calculadoras científicas, gráficas, programables ...:
        Casio fx 82 MS ( humilde calculadora científica, pero muy buena )
        Casio fx 850P ( un clásico entrañable de los años 80 del siglo pasado, programable en Casio Basic, con una gran librería de utilidades ). Se me estropeó hace unos años (era muy viejecita)
        TI 92 II ( un calculadora gráfica de los años 90 del siglo pasado, programable en TI Basic; entre otras herramientas, incorpora un módulo CAS con Derive, todo un clásico )
        TI Voyage 200 ( es la evolución de la TI92, con algunas mejoras, todo un clásico de la primera década del actual siglo )
        NumWorks ( calculadora gráfica y programable del siglo XXI, muy rápida y con mucha capacidad de memorai, con un enfoque novedoso por tratarse de un proyecto colaborativo: software y hardware abiertos. Es programable en Python. Presenta una buena conectividad a través de la página web del fabricante. El software se puede actualizar periódicamente y se desarrolla de forma continua, cada vez es mejor. )

    Herramientas de edición:
        Bloc de notas ( por su sencillez y pocos recursos necesarios, cualquiera sirve. Una herramienta humilde, pero necesaria. Aparece integrada en todos los sitemas operativos )
        LaTeX ( sistema de composición de documentos, muy apropiado para la tipografía científica )
        LibreOffice ( conjunto de herramientas ofimáticas )
        LyX ( procesador de textos híbrido WYSIWYG - LaTex )
        HTML ( un lenguaje de marcas ( 'tags' ) para editar trabajos en la www: un clásico fundamental )

    Electrónica:
        Fritzing ( programa para el diseño de circuitos electrónicos: por si os gusta experimentar en el taller, trastear y soldar )
    nbsp   Scratch ( programación visual, puede utilizarse en proyectos de robótica )
        MBlock ( programación visual, similar a Scratch y especialmente útil en proyectos de robótica )

    Astronomía: ( programas de ayuda para la localización de astros y para obtener sus coordenadas )
        Stellarium
        Cartes du Ciel

    «A un cerezo subí, que cerezas tenía ...»

    ENUNCIADO. A un cerezo subí, que cerezas tenía; cerezas no cogí, y cerezas en el cerezo no dejé. ¿Cuántas cerezas había en el cerezo antes de subir?

    SOLUCIÓN. De la frase cerezas tenía (se habla de cerezas), se deduce que el número de cerezas que tenía el cerezo era mayor que $1$. Por otra parte, de la frase cerezas no cogí (no cogí más de una cereza), se deduce que cogí $1$ o bien $0$ cerezas; pero, teniendo en cuenta, además, la frase cerezas en el cerezo no dejé (no quedó en el cerezo más de una cereza), tuve que coger exactamente $1$ cereza y dejar de coger exactamente $1$ cereza. Necesariamente, debí coger alguna cereza, pues, de lo contrario (de no haber cogido ninguna), habría quedado alguna cereza en el cerezo, en contra de lo que se dice en la tercera frase. Por consiguiente, en el cerezo había exactamente $2$ cerezas. $\square$

    viernes, 17 de diciembre de 2021

    Un problema de raonament ...

    En Jan, un excursionista, caminant per un viarany que solca un bosc frondós, fa via cap al refugi. Arriba en un punt on el viarany es bifurca. A la vora del camí hi ha una masia on sap que hi viuen dos germans. Un és sincer – li direm S – i l'altre és un mentider – l'anomenarem M -. En Jan ja havia estat advertit per un company que es trobaria amb el dilema d'haver de formular una pregunta a una persona que tant podria dir sempre la veritat, com de topar-se amb el seu germà, que diu sempre coses falses.

    Evidentment no serviria de res fer la pregunta que li faria a una persona sincera perquè senzillament la probabilitat que aquesta persona fos S és del 50%. No hi ha manera de saber amb certesa si Jan es trobarà amb S o bé amb M. Més aviat, pensa Jan, hauria de deduir el camí correcte a partir de la resposta que li fos donada a la pregunta que formulés, fos qui fos qui es trobés, el germà S o bé el germà M. Jan s'aturà davant la porta de la masia. De seguida va sortir un dels germans que, com que Jan no sap quins dels dos és, aquí l'anomerarem G.

            Jan: Bon dia ! - saludà en Jan alegrement.
            G: I bona hora – el respongué l'home.
            Jan: Voldria fer-vos una pregunta molt important per a mi en aquest moment
            G: Feu-me-la, bon home.
            Jan: Podríeu dir-me quin és el camí que diria el vostre germà que he de prendre per anar cap al refugi ? El de la dreta o el de l'esquerra ?.
            G: Ell diria, sens dubte, el de la dreta.
    (...)

    Jan en va tenir prou per decidir quin era el camí del refugi amb total certesa: prengué el de l'esquerra. Al vespre, a la llum del foc, explicà l'anècdota a d'altres estadants i el per què d'haver de decidir prendre el camí contrari a l'indicat per G (...)

            Jan: Mireu. Si la persona a qui vaig preguntar hagués sigut S (el sincer), aquesta hauria contestat amb sinceritat allò que hauria contestat M, el mentider: el camí que no era; per tant, és lògic que prengués el camí contrari del que em deia. Per altra banda, si la persona a qui vaig preguntar hagués sigut M, hauria contestat el contrari del que el seu germà S hauria contestat (el camí correcte), per tant, també hagués hagut de prendre el camí contrari que m'indicava. En qualsevol cas ... em cal1ia prendre el camí contrari a l'indicat !.

    lunes, 13 de diciembre de 2021

    Introducción al cálculo simbólico con GNU MAXIMA

    Una bona manera d'engrescar-nos en la manipulació simbòlica fent ús d'un eina CAS es començar a fer unes proves ben senzilles. Vegeu a continuació un exemple.

    Els primers passos programan amb GNU MAXIMA

    Els primers passos programant amb MAXIMA
    Primera cosa ...

    Editem la funció que anomenem "programa_extremadament_senzill"
    (%i5) programa_extremadament_senzill():=
    (print("hola")
    )$
    Depurem els possibles errors i fem actuar la funció escrivint l'entrada
    (%i6) programa_extremadament_senzill();
    Obtenint ...
    hola
    (%o6) hola

    Observem que les entrades de l'usuari es designen amb el símbol del sistema %i i les sortides amb el símbol %o, convenientment numerades.

    Exemple 1 (totes les variables són globals)

    (%i3) programa_senzill_1(a,b):=
    (
    s:a+b,
    print("suma de a i b =",s)
    )$
    (%i4) programa_senzill_1(2,3);
    suma de a i b = 5
    (%o4) 5


    Exemple 2 (els paràmetres d'entrada a i b són variables globals, mentre que el resultat s és una variable local)

    (%i1) programa_senzill_2():=
    block([s],
    a:read("entreu el primer sumand"),
    b:read("entreu el segon sumand"),
    s:a+b,
    print("suma de a i b =",s)
    )$

    (%i2) programa_senzill_2();
    entreu el primer sumand 1;
    entreu el segon sumand 2;
    suma de a i b = 3
    (%o2) 3

    Observem que les variables locals d'una funció (aquí, "programa_senzill_2") - en aquest, l'única variable local és s - apareixen, després de block( entre claudàtors - block([s],... -, separades per comes si n'hi ha més d'una. El parèntesi "(" amb què hem començat el "block" - "block(" - cal tancar-lo necessàriament al final. El símbol de l'acabament "$" indica a l'interpret que no volem eco del sistema - llevat de la comunicació dels possibles errors - un cop hàgim validat la funció

    Exemple 3 (totes les variables són locals)

    (%i1) programa_senzill_3():=
    block([s,
    a:read("entreu el primer sumand"),
    b:read("entreu el segon sumand")],
    s:a+b,
    print("suma de a i b =",s)
    )$

    (%i2) programa_senzill_3();
    entreu el primer sumand 1;
    entreu el segon sumand 2;
    suma de a i b = 3
    (%o2) 3

    Treballant amb fitxers de funcions que prèviament hem programat
    Podem fer servir un bloc de notes per editar codi font de les funcions
    que volem fer servir en una sessió de càlcul amb MAXIMA, a més, naturalment,
    de les moltes que ja té incorporades. A mode d'exemple,
    he escrit el codi de dues funcions molt simples,
    funcio_que_multiplica() i funcio_potencial(), en un mateix fitxer de text amb extensió .mac: prod.mac
    Juntament amb el codi font de les funcions, podem posar comentaris abastant una o vàries línies, a l'estil de C o Java; per exemple, /* això només és un comentari */, és a dir, obrint amb "/*" i tancant amb "*/"

    (contingut del fitxer prod.mac)

    /* multiplicació de dos nombres */
    funcio_que_multiplica():=
    block([p,
    a:read("entreu el primer factor"),
    b:read("entreu el segon factor")],
    p:a*b,
    print("a x b =",p)
    )

    /* potència de dos nombres */
    funcio_potencial():=
    block([w,
    a:read("entreu la base de la potència"),
    b:read("entreu l'exponent")],
    w:a^b,
    print("a^b =",w)
    )


    Per fer ús d'aquest fitxer amb les funcions que hem programat, carreguem el fitxer prod.mac des d'una sessió de MAXIMA
    (%i8) load("e:/taller_maxima/ex_160807/prod.mac");
    (%o8) e:/taller_maxima/ex_160807/prod.mac

    I, si s'escau, després de depurar el codi, emprem les funcions que conté:

    (%i9) funcio_que_multiplica();
    entreu el primer factor 4;
    entreu el segon factor 2;
    a x b = 8
    (%o9) 8

    (%i10) funcio_potencial();
    entreu la base de la potència 2;
    entreu l'exponent 3;
    a^b = 8
    (%o10) 8

    Ejemplos de gráficas con GNU MAXIMA

    Ejemplo de uso de Gráficas de funciones con MAXIMA
    Consideremos el problema de resolver la ecuación trascendente $\sin{x}+x^2=0$, esto es, el de resolver la ecuación $\sin{x}=-x^2$,
    que podemos resolver, de forma aproximada, representado las gráficas de las funciones de ambos miembros, encontrando los puntos de intersección:
    (%i7) plot2d ([sin(x),-x^2], [x, -2*%pi, 2*%pi])


    Ejemplo de gràfics de superficies con MAXIMA
    Sea una superficie en $\mathbb{R}^3$ como, por ejemplo, la bada de Möbius; podemos visualizarla tecleando:
    (%i1) plot3d([cos(x)*(3+y*cos(x/2)),sin(x)*(3+y*cos(x/2)),y*sin(x/2)],[x,-%pi,%pi],[y,-1,1],[grid,50,15]);


    Una película sobre Hypatia d'Alexandria

    El director de cinema Alejandro Amenabar va dirigir una pel·lícula ambientada en els temps convulsos que li va tocar viure a la matemàtica, astrònoma, i filosofa neoplatònica Hypatia (Alexandria, en els darrers temps de la famosa biblioteca, segles IV-V d. C.). El paper d'Hypatia el representa l'actriu Rachel Weisz.
        Després de més mil cinc-cents anys, en un temps - el nostre - on el fanatisme, l'ànsia de poder i les guerres dissortadament continuen existint, la pel·lícula és – mal ens pesi – d'una actualitat renovada. Però, sens dubte, és també un homenatge al rigor, a l'ètica, al valor, i a la inquietud matemàtica i científica d'una dona sàvia, honesta, i valenta: Hypatia (Alexandria, ~370-415 d.C.)


        En una bon nombre d'escenes apareixen disquisicions sobre el sistema de Ptolomeu (el sistema geocèntric): reflexions sobre els seus avantatges i les seves llacunes, de la qual cosa, per descomptat, se'n tenia consciència, malgrat pesessin més les bondats del model que no pas les seves incoherències de base. El director, els guionistes, i els assessors científics i històrics aconsegueixen també escenificar prou bé el rigor del raonament lògic emprat pels grecs a la llum dels Elements d'Euclides (segle III a. C.) i les reflexions filosòfiques sobre el moviment i les dificultats per superar la trava intel·lectual de la idea de “perfecció” de les formes – atribuïda a la circumferència – que, per als clàssics grecs, havia d'anar forçosament lligada als moviments i formes dels astres. En astronomia, els treballs sobre les trajectòries còniques – les corbes/seccions còniques [d'un con] estudiades ja pels matemàtics grecs que van precedir Hypatia (Apoloni de Perge, , segles III-II a. C.) [i tal com es mostra amb molta elegància en una escena de la pel·lícula] - no estarien a punt de substituir el model geocèntrica de Ptolomeu de manera clara fins a finals del segle XVI gràcies als treballs de l'astrònom Johannes Kepler (1571-1630), ajustant-se – com és ben sabut - molt millor a la realitat i, el que és més importat, fent possible la substitució del model subtil i artificiós de Ptolomeu pel mòdel heliocèntric, ja postulat de forma poc precisa i sense desenvolupar per Aristarc de Samos (segle III a. C.).

        Cap de les obres d'Hypatia es va salvar, però gràcies als comentaris d'alguns dels seus deixebles (Sinesi de Cirene i Hesiqui d'Alexandria), de les obres dels quals sí que se'n té proves, hom sap que va escriure uns comentaris a les Seccions Còniques d'Apoloni de Perge -sobre la paràbola, l'el·lipse, i la hipèrbola -; va fer també una revisió de les taules astronòmiques de Ptolomeu; una compilació pròpia d'efemèrides astronòmiques; i es va cuidar de l'edició del comentari del seu pare Teó d'Alexandria (matemàtic i astrònom) als Elements d'Euclides; també va escriure obres sobre el que avui entenem per teoria de nombres: un comentari a l'Aritmètica de Diofant d'Alexandria (segle III d.C.); elaborà planisferis i va treballar en el camp de la mecànica i la hidrostàtica.$\square$

    martes, 23 de noviembre de 2021

    martes, 26 de octubre de 2021

    Representación gráfica de la banda de Möbius con MAXIMA

    Un ejemplo de uso de MAXIMA para obtener el desarrollo de Taylor de una función dada

    Un procedimiento básico para resolver sistemas de ecuaciones lineales con MAXIMA


    Selección de la precisión con MAXIMA



    Un ejemplo de manipulación simbólica con MAXIMA

    Uso de MAXIMA como ayuda para detectar la no existencia del límite global de una función real de una variable real en un punto dado. Un ejemplo

    Interpolación de Lagrange con MAXIMA. Un ejemplo


    Dos ejemplos de representación gráfica de curvas paramétricas con MAXIMA


    Un ejemplo de realización de pruebas repetidas

    [Extracciones sucesivas de bolas de una urna, con y sin reemplazamiento de las que se van sacando]

    La paradaja del falso positivo en un test

    [Falso positivo]

    Varios ejercicios sencillos de cálculo de probabilidades

    [Algunos cálculos básicos de probabilidades]

    Un ejercicio de aplicación de la distribución geométrica (o de Pascal)

    [Lanzando repetidamente un dado]

    Un ejercicio de aplicación de la distribución de Poisson

    [Los buscadores de perlas]

    Aplicación del teorema de Taylor para obtener aproximaciones numéricas

    [Varios ejemplos]

    Variable aleatoria. Momentos.

    [Momentos]

    Aproximaciones útiles de n!

    lunes, 25 de octubre de 2021

    Raíz n-ésima de un número complejo

    [Raíz n-ésima de un número complejo]

    Demostración de la fórmula de De Moivre por inducción, sin tener que emplear la fórmula de Euler

    Demostración de la fórmula de De Moivre por el método de inducción

    Fórmula de De Moivre y fórmula de Euler

    Ecuación de una circunferencia en R^3 que resulta de la intersección de una esfera y un plano

    [ Circunferencia en R^3 como intersección de una esfera y un plano ] (2020)

    Algunos ejercicios de descomposición de endomorfismos. Forma de Jordan

    [Unos cuantos ejercicios resueltos]

    Ejemplo de cálculo de la matriz de Jordan y de la matriz de paso con MAXIMA

    Ejemplo de cálculo de los valores propios y del polinomio mínimo asociado a una matriz dada con MAXIMA

    viernes, 15 de octubre de 2021

    Corba envolupant, corves involutes i evolutes / curva envolvente, corves involuta y evoluta

    Vaig escriure ja fa molt de temps aquest breu apunt. Un exemple que podem esmentar fa referència al problema del llençament paràbolic: l'envolupant de la familia de trajectories parabòliques que s'obtenen en variar l'angle de llençament es una altra paràbola, que, per raons obvies, s'anomena paràbola de seguretat. $\square$

    La espiral de Cornú (clotoide)

    Escribí hace tiempo estos apuntes. Véase la gráfica de esta curva, así como los cálculos que he realizado con MAXIMA para dibujarla, en las figuras de abajo (Figura 1 en el texto de los apuntes).
    Figura 1

    $\square$

    viernes, 8 de octubre de 2021

    Redondeo

    Recordemos que la operación de redondeo de un número real $x$ se define así: $\mathcal{R}(x;n)=\text{Ent}(b^n \times 0.m+\mu)\times b^{e-n}$, donde $b$ es la base de numeración y $e$ es el valor del exponente en la notación científica en coma flotante $0.m\times b^e$ (siendo $m$ los dígitos de la mantisa), y $\mu$ representa media unidad en la base de trabajo. Veamos un ejemplo de redondeo, conservando $n:=4$ cifras/dígitos significativos para el caso $\sqrt{5}=2.236067977\ldots=0.2236067977\ldots\times 10^1$. Luego, $e:=1$ (exponente de la potencia), y,como $b:=10$, la media unidad es $\mu:=0.5$.

    SOLUCIÓN.
    Entonces, $\mathcal{R}(\sqrt{5};4)=\text{Ent}(10^4\times 0.2236067977\ldots+0.5)\times 10^{1-4}=$
      $=\text{Ent}(2236.067977\ldots+0.5)\times 10^{-3}$
        $=\text{Ent}(2236.567977\ldots)\times 10^{-3}$
          $=2236\times 10^{-3}$
            $=2.236$
              $=0.2236\times 10^1$

    El máximo error de redondeo, también llamado presición de la máquina, o unidad de redondeo, viene dado por $\dfrac{1}{2}\,b^{e-n}$, que, en nuestro caso es $\dfrac{1}{2}\cdot 10^{1-4}=\dfrac{1}{2}\cdot 10^{1-4}=0.0005$
    $\square$

    Representación IEEE Standard 754 en punto flotante

    Actualmente, la representación que usan la mayoría de los computadores es la llamada IEEE Standard 754 en punto flotante. Está basada en los tres elementos que se ha mencionado antes: signo, mantisa y exponente. Si la base es binaria, $b=2$, el primer dígito (dígito principal) es, siempre, $1$, esto es, $d_1=1$, por lo que no haría falta almacenarlo en memoria (en cuyo caso nos referiríamos a él como dígito principal implícito).

    En precisión simple, el estándard utiliza $32$ bits ($4$ bytes), de los cuales $8$ bits ($1$ byte) es para el exponente $E$ (representando números enteros no negativos que varían entre $0$ y $255$, esto es, los que se pueden codificar en base $2$ con $8$ bits); $23$ bits son para la parte fraccionaria, $F$, y $1$ bit para el signo, $S$. Cada bit almacena un $0$ o bien un $1$. Así, el valor asignado a una representación es $$(-1)^{S}\times 2^{E-127} \times \mathbb{1}.F$$

    Se utiliza un sesgo de $127$ aplicado al valor del exponente almacenado $E$, dando lugar al exponente verdadero $E-127$, lo cual tiene como finalidad el poder representar tanto exponentes positivos como negativos; de este modo, un valor almacenado $E$ representa el valor verdadero $E-127$.

    Como ya hemos visto que $E$ varía entre $0$ y $255$, entonces $E-127$ toma valores en el conjunto de $2^8=256$ elementos: $\{-127,-126,\ldots,0,1,2,\ldots,128\}$, y , por tanto, $2^{E-127}$ varía entre $2^{-127}\approx 10^{-38}$ y $2^{128}\approx 10^{38}$.

    El ordinal de cada término de la sucesión $-127,-126,\ldots,0,1,2,\ldots,128$ (empezando a contar desde $0$) se denomina característica. El valor de la característica varía pues de $0$ (para el valor del primer término $-127$) a $255$ (para el valor del último término $128$), y representa el valor del exponente almacenado $E$.

    Designando por $n$ al número de bits del campo del exponente (en nuestro caso $n:=8$), esta característica es igual, por tanto, al valor del exponente verdadero $E-127$ más lo que viene a denominarse desplazamiento y que es fácil ver que es igual a $2^{n-1}-1$. Así por ejemplo, si el exponente verdadero es $E-127:=100$, entonces el valor de la característica es $100+2^{8-1}-1=100+128-1=227$; y (otro ejemplo), como seria de esperar si $E-127:=-127$, entonces sus característica es igual a $-127+2^{8-1}-1=-127+128-1=0$; y si $E-127:=-128$, entonces su característica es igual a $128+2^{8-1}-1=128+128-1=255$, que es el último término de la sucesión que hemos comentado.



    Por otra parte, El bit del signo es $0$ para positivos y $1$ para negativos.

    Ejemplo 1.
    Consideremos la representación de un cierto número (veremos cuál es al final) en el estándar IEEE 754 de simple precisión (32 bits) $$\underset{\overbrace{1\; \text{bit para el signo}}}{1}\quad \underset{\overbrace{8\; \text{bits para el exponente}}}{01010011} \quad\underset{\overbrace{23\; \text{bits para la mantisa}}} {10011110\; 00101000\; 0101000}$$ es tal que:

    i) El signo es negativo por ser el valor del bit $S$ igual a $1$, y, por tanto, $(-1)^S=(-1)^1=-1$

    ii) la mantisa $1.F$ es

    1+$(1\cdot 2^{-1}+0\cdot 2^{-2}+0\cdot 2^{-3}+1\cdot 2^{-4}+\overset{\underbrace{23}}{\ldots}+0\cdot 2^{-22}+0\cdot 2^{-23})$
    donde a partir del segundo sumando se expresa la cantidad $F$, siendo el primer sumando a la izquierda, el primer uno, que viene de la notación $1.F$, luego la mantisa corresponde al número $$\dfrac{2097151}{1048576}$$

    iii) El exponente verdadero de la potencia $2^{E-127}$ es igual a 0$1010011_{2}$, o lo que es lo mismo 0b$1010011$ — en base $2$ los números suelen empezar por 0 o bien por 0b— corresponde a $83_{10}-127=-44$
    Por tanto, la representación estándard indicada da el valor

    $$-( \dfrac{2097151}{1048576} ) \times 2^{83-127}$$ es decir $$-( \dfrac{2097151}{1048576} ) \times 2^{-44} \approx -0.1136868\times 10^{-12}$$ pues con $23$ bits de mantisa el número de dígitos/cifras significativas correctas que podemos asegurar es de $7$


    -oOo-



    Nota: En doble precisión, se reservan $11$ bits es para representar el exponente $E$, donde el sesgo es ahora de $2^{11-1}-1=2^{10}-1=1023$.
    -oOo-
    Referencias:
      [1] Moreno, C.: Introducción al Cálculo Numérico, UNED, Madrid, 2011
      [2] García Valle, J.L.: Matemáticas especiales para computación, McGraw-Hill, Madrid, 1988

    Caligrama: Tozudos sueños

                            Entre rutas
             tan lejanas,                  añoradas
           ignoradas,                       andan
          olvidadas,                         algunas ideas  
           indiferentes                     errantes 
            a las cosas,                   en tozudos sueños,
             al tiempo                    deambulando  
                           tan ausentes
    


                   © Joan Aranes Clua
                   Madrid, octubre de 2021
    
    

    viernes, 1 de octubre de 2021

    Punto interior/exterior a una circunferencia. Un ejercicio de programación en C/C++

    //-----------------------------------------------------------------
    // Verificació de condicions amb operadors relacionals 
    //
    // Joan Aranès Clua
    // data: 15/12/2001
    // 
    // Pertany el punt (x,y) al cercle de centre (a,b)  i radi r ?
    //-----------------------------------------------------------------
    
    #include <stdio.h>
    #include <math.h>
    
    void main ()
    
    {
    
      double a,b,r,x,y;
      double dist2;//distància euiclidiana al quadrat entre P(x,y) i O(a,b)
    
        
      //definició de la circumferència -> cercle
      printf("-----------------------------------\n");
      printf("Definiu una circumfer\x08Ancia donant el centre i el radi:\n");
      printf("introdu\x08Bu les coordenades del centre de la 
         circumfer\x08Ancia: a i b, separades per un espai:\n");
        scanf("%lf %lf",&a, &b);
      printf("introdu\x08Bu el valor del radi de la circumfer\x08Ancia r:\n");
        scanf("%lf",&r);
    
      
      //definició del punt P(x,y) interior o exterior a la circumferència
      printf("-----------------------------------\n");
      printf("Pertany el punt P(x,y) al cercle de centre O(a,b) i radi r ?\n");
      printf("introdu\x08Bu les coordenades del punt P: x i y, 
         separades per un espai:\n");
        scanf("%lf %lf",&x, &y);
      
      printf("\n");
      printf("Si el punt P \x082s interior a la c. escriur\x085 un 1,en cas\n");
      printf("contrari escriur\x085 un 0 ....\n");
      printf("\n");
      
      // càlcul de la distància al quadrat entre el centre de la c. i el punt	
      dist2=pow((x-a),2)+pow((y-b),2);
    
      printf("resposta:\n");
      printf("%d\n",dist2<=pow(r,2));
    
      }
    

    El algoritmo 3n+1. Conjetura de Collatz. Un ejercicio de programación en C/C++

    //-----------------------------------------------------------------
    // CICLE d'un nombre enter. L'algoritme 3n+1  
    // 
    // Joan Aranès Clua
    // data: 17/12/2001
    // 
    // Aquest programa calcula el "cicle" d'un nombre n
    // el qual es calcula de la manera següent:
    // 1. s'entra n 
    // 2. es mostra n 
    // 3. si n =1 
    // 4.   aleshores ACABA EL PROGRAMA  
    // 5. si n es senar aleshores n:=3n+1 
    // 6. en cas contrari, és a dir, si n és parell, aleshores n:=n/2 
    // 7. tornar a la línia 2 
    //---------------------------------------------------------------------
    // exemple 1. cicle(22) = {22, 11, 34, 17, 52, 26, 13, 
                              40, 20, 10, 5, 16, 8, 4, 2, 1}
    // es tracta d'un cicle de longitud 16
    // --------------------------------------------------------------------
    // EXEMPLES AMB POTÈNCIES DE ^2: 2^x
    // exemple 2. cicle(32) = {32, 16, 8, 4, 2, 1}
    // exemple 3. cicle(64) = {64, 32, 16, 8, 4, 2, 1}
    // ...
    // exemple 4. cicle(1024) = {1025, 512, 256, 128, 
                                64, 32, 16, 8, 4, 2, 1}
    // ...
    //    Cal observar que:
    //		1r Efectivament, les longituds dels cicles de les potències de 2 
               són relativament curtes
    //      2n longitud_del_cicle(2^x) = x+1
    //-----------------------------------------------------------------
    
    #include <stdio.h>          //printf i scanf
    #include <stdlib.h>         //system() .. per a la f. cls
    
    void main()
    {
    
        int n;  // variable corresponent a la dada d'entrada
        int m;  // variable auxiliar
    	int longitud; // variable per mesurar la longitud del cicle
    
        system("cls"); //esborra la pantalla
    
    	// entrada dels coeficients
    	printf("\nintrodu\x08Bu un nombre enter:\n");
        printf("n=");
    	scanf("%d",&n);
    	printf("\ncicle(%d)=",n);
    
    	m=n;
    	longitud=1;
    	while (m>1)
    	{
    		printf("%d ",m);
    		if ((m%2)!=0) 
    			m=3*m+1;
    		else 
    			m=m/2;
    		longitud=longitud+1;
    		
        }
    	printf("%d ",m);
    		
    	printf("\nlongitud del cicle(%d)=%d",n,longitud);
    	printf("\n\n");
    } 
    
    

    Encriptación de un texto por sustitución monoalfabética. Un ejercicio en C/C++

    //////////////////////////////////////////
    // Còpia encriptada per substitució monoalfabètica
    // Joan Aranès Clua
    // 7/04/2002
    //////////////////////////////////////////
    
    
    // MANEIG DE L'EXECUTABLE:
    //
    // Cal posar-nos a la consola del DOS 
    // i anar al directori on es troba l'executable m8e1.exe
    // seguint els següents passos:
    // 1. generem un fitxer de prova fent, per exemple,
    //	1.1.: %>copy con prova.txt
    //			aixo es una prova
    //          CTRL+Z (insereix la marca de final d'arxiu EOF)
    // 2. executem el programa que genará un segon arxiu amb el missatge encriptat 
    //    el nom del qual haurem de triar (p.ex: 'arxiu2.txt') fent: 
    //	2.1.: %>m8e1 prova.txt prova2.txt
    // 3. comprovar el contingut del fitxer generat 
    //        %>type prova2.txt
    
    
    
    
        #include <stdio.h>
    	#include <ctype.h>
    
        
    	void main(int argc, char *argv[]){
             FILE *origen, *desti;
             char car;
    		 int codi; //codi de substitució
    
    
             if(argc!=3){
                printf("S'ha d'especificar arxiu origen i arxiu destí\n");
                return;
             }
    
    		 printf("\n\nintroduïu el codi (0-25)...\n");
    		 scanf("%d", &codi);
    
             origen=fopen(argv[1],"rb");//fitxer de lectura i binari
             desti=fopen(argv[2],"wb");// fitxer d'escriptura i binari
             if (origen==NULL || desti==NULL){
                 printf("no es pot realitzar l'operació\n");
                 return;
             } 
             car=getc(origen);
             while(!feof(origen)) 
    			 // llegeix en el fitxer origen fins trobar
    			 // la marca EOF de final d'arxiu
    		 {
    			 if (car!=' ') 
    				 // si no es tracta d'un espai en blanc 			    				 
    				{
    				 car =(tolower(car)-97+codi)%26+97;
    				}
               putc(car,desti); // també copia els espais 
               car=getc(origen);
             }
             fclose(origen);
             fclose(desti);
         }
    
    

    miércoles, 29 de septiembre de 2021

    Una relación entre el error relativo de un número aproximado y el número de dígitos significativos exactos

    Leyendo el clásico libro de Demidovich y Maron sobre introducción al cálculo numérico, he recordado este interesante teorema —una demostración del cual se puede leer en la página 32 de dicho libro— que relaciona el número de dígitos significativos exactos de una número aproximado con una cota de error relativo, y que resumo a continuación.

      El error relativo en una aproximación $\bar{x}$ de un número $x$, con $n$ dígitos signifativos exactos ($\bar{x}=.d_{1}d_{2}\ldots d_{n}\times 10^{e}$) es menor o igual que $\dfrac{1}{d_n}\cdot 10^{1-n}$, donde $d_n$ es el dígito más significativo de la aproximación.

    Ejemplo: Podemos aproximar $\sqrt{2}$ por $1,41=0.141\times 10^1$, con $3$ dígitos significativos exactos. Entonces, como el dígito más signicativo es $1$ y $n=3$, tenemos que el error relativo en la aproximación de $\sqrt{2}$ cumple que $e_{r}(\sqrt{2})\le \dfrac{1}{1}\cdot 10^{1-3}=10^{-2}=0.01=1\,\%$

    COMENTARIO. Recordemos que una aproximación $\bar{x}=.d_{1}d_{2}\ldots d_{n}\times 10^{e} \approx x$ tiene todos sus dígitos exactos si el error absoluto es menor o igual que media unidad del orden del dígito menos significativo, esto es, $|x-\bar{x}|\le \dfrac{1}{2}\cdot 10^{-n}$
    $\square$
    -oOo-

    Referencias:
      Demidovich, B.P,; Maron, I.A., Cálculo Numérico Fundamental, Paraninfo, Madrid, 1988

    martes, 28 de septiembre de 2021

    Acerca de algunas funciones discretas básicas

    Entenderemos por funciones discretas las definidas en $\mathbb{R}$ sobre $\mathbb{Z}$, esto es, las funciones que envían números reales a números enteros. Como su nombre sugiere, son importantes en cálculo numérico, programación y matemática discreta. Básicamente, se construyen mediante las funciones suelo y techo. Así, siendo $x \in \mathbb{R}$, se definen de la siguiente manera:

    $\text{suelo}(x) \equiv \lfloor x \rfloor \overset{\text{def}}{=}\text{máximo}\{k\in \mathbb{Z}: k\le x\}$, o lo que es lo mismo, $y=\lfloor x \rfloor : y=\{y\in \mathbb{Z} \wedge x\in \mathbb{R} \wedge y \le x \prec y+1\}$
    Ejemplos: a) $\lfloor 4,7 \rfloor = 4$, b) $\lfloor -2.6 \rfloor = -3$
    y
    $\text{techo}(x) \equiv \lceil x \rceil \overset{\text{def}}{=}\text{máximo}\{k\in \mathbb{Z}: k\ge x\}$ , o lo que es lo mismo, $y=\lceil x \rceil : y=\{y\in \mathbb{Z} \wedge x\in \mathbb{R} \wedge y-1 \prec x \le y\}$
    Ejemplos: c) $\lceil 4,7 \rceil = 5$, b) $\lceil -2.6 \rceil = -2$


    Mediante estas dos funciones podemos hablar de la parte entera de un número real, entendiéndola como la función suelo. En muchos libros de texto suele notarse de la forma $E(x)\equiv\lfloor x \rfloor$ - y se suele notar de la forma $[x]$, esto es, definiéndola de la forma $[x]=E(x):=n \Leftrightarrow n \le x \lt n+1$ -, esto es, endiendo ésta como la función suelo. Así, en muchos lenguajes de programación (como, por ejemplo, Python), $E(x)$ se invoca mediante la instrucción $\text{int}(x)\equiv\lfloor x \rfloor$

    Ejemplos: e) $[ 4,7 ] = 4$, f) $[ -2.6 ] = -3$


    Observación. No obstante, en el lenguaje de programación C, se sigue otra definición que es la siguiente $\text{int}_{C}(x)=\left\{\begin{matrix}\lceil x \rceil & \text{si} & x \prec 0 \\ \lfloor x \rfloor & \text{si} & x \ge 0 \end{matrix}\right.$
    Ejemplos: g) $\text{int}_{C}( 4,7) = 4$, b) $\text{int}_{C}( -2.6) = -2$


    -oOo-


    Funciones de redondeo y truncamiento Para enviar un número real, $x$, a un número entero por truncamiento utilizamos la siguiente función: $$\mathcal{T}(x)=\left\{\begin{matrix}\lceil x\rceil & \text{si} & x \prec 0 \\ \lfloor x\rfloor & \text{si} & x \ge 0\end{matrix}\right.$$ y para hacerlo por redondeo empleamos $$\mathcal{R}(x)=\left\{\begin{matrix}\lceil x-0.5\rceil & \text{si} & x \prec 0 \\ \lfloor x+0.5\rfloor & \text{si} & x \ge 0\end{matrix}\right.$$
    Ejemplos:
    i) $\mathcal{T}(1,9)=1$, h) $\mathcal{T}(-1.2)=-2$
    j) $\mathcal{R}(1,9)=2$, k) $\mathcal{R}(-1.2)=-2$

    Por otra parte, para truncar y redondear ( respectivamente ) un número real a otro número real con un cierto número de dígitos, $n$, en la parte decimal lo hacemos de la siguiente manera: $$\mathcal{T}(x;n)=\left\{\begin{matrix}\dfrac{\lceil 10^{n}\cdot x \rceil}{10^n} & \text{si} & x \prec 0 \\ \\ \dfrac{\lfloor 10^{n}\cdot x \rfloor}{10^n} & \text{si} & x \ge 0 \end{matrix}\right.$$ y para redondear $$\mathcal{R}(x;n)=\left\{\begin{matrix}\dfrac{\lceil 10^{n}\cdot x -0.5 \rceil}{10^n} & \text{si} & x \prec 0 \\ \\ \dfrac{\lfloor 10^{n}\cdot x +0.5 \rfloor}{10^n} & \text{si} & x \ge 0 \end{matrix}\right.$$ Ejemplos:
    l) $\mathcal{T}(\pi,3)=3.141$, m) $\mathcal{T}(-2.6785,3)=-2.678$
    n) $\mathcal{R}(\pi,3)=3.142$, p) $\mathcal{R}(-2.6785,3)=-2.679$
    $\square$
    -oOo-

    Referencias:
      [1] Funciones discretas, https://es.wikipedia.org/wiki/Funci%C3%B3n_discreta, Wikipedia
      [2] Moreno, C., Introducción al Cálculo Numérico, UNED, Madrid, 2011

    Representación en punto flotante en base 10 y en base 2

      En el siguiente ejemplo se muestra la manera de representar en el formato de punto flotante varios números reales (expresados en base 10) en la misma base o en base 2, y con un cierto número de dígitos significativos

    NOTA PRELIMINAR. En la representación de un númro real $x$ en el formato de coma flotante, se considera el conjunto de dígitos $\mathcal{M}$, de tal manera que $$\text{float}(x):=\pm\,0.d_{1}\,d_{2}\,\ldots\times b^e\approx \pm\,0.d_{1}\,d_{2}\,\overset{\underbrace{n}}{\ldots},d_{n}\times b^e$$ que es la representación finita de dicha cantidad, donde $0\le d_i \prec b$ para $i=1,2,\ldots ,n$, siendo $b$ un número entero positivo que corresponde a la base de la representación, y el número entero $e$ es el exponente, que puede variar en un determinado rango; y, finalmente, el número entero positivo $n$ da cuenta de la precisión de la representación. La parte fraccionaria se denomina mantisa ( $0.d_{1}d_{2}\ldots d_{n}$ ). Para pasar a la represntación finita, utilizaremos la siguiente notación para notar las necesarias operaciones de truncamiento o bien de redondeo — recordemos que lo usual será hacerlas por redondeo &madash;: $$\mathbb{R}\ni \text{float}(x)=\pm\,0.d_{1}d_{1}\ldots \times b^e \approx \left\{\begin{matrix}\mathcal{T}(x;n)=\text{Ent}(b^n \times 0.m)\times b^{e-n} \\ \mathcal{R}(x;n)=\text{Ent}(b^n \times 0.m+\mu)\times b^{e-n}\end{matrix}\right.$$ donde $\mu$ denota media unidad en el sistema de numeracíon de base $b$ que se emplee; así, si $b=10$ es claro que $\mu=0.5$, y, si, por ejemplo, $b=2$, entonces $\mu=0.1_{2}$ ya que $0.1_{2}=2^{-1}=0.5_{10}$


    ***

    ENUNCIADO. Hállese la representación en punto flotante ( sin dígito principal implícito ) de: a) $2/7$ en un sistema con $b=10$ y $n=6$
    b) $327$ en un sistema con $b=2$ y $n=6$
    c) $-4/3$ en un sistema con $b=2$ y $n=6$

    SOLUCIÓN.
    a)
    $2/4=0.\overline{285714}_{10}\times 10^0$, luego $e=0$. Así, $4/7 \approx \mathcal{R}(4/7;6) =\text{Ent}(10^6 \times 0.\overline{285714}_{10} +0.5 )\times 10^{0-6}=$
      $=\text{Ent}(10^6 \times 0.285714285714\ldots_{10} +0.5 )\times 10^{-6}$
        $=\text{Ent}(285714.5) \times 10^{-6}$
          $=285714 \times 10^{-6}$
            $=0.285714 \times 10^{0}$

    b)
    $327_{10}=101000111_{2}=0.101000111_{2}\times 2^9$, luego $e=9$
    Entonces, $0.101000111_{2}\times 2^9 \approx \mathcal{R}(0.101000111_{2}\times 2^9;6)=$
      $=\text{Ent}(2^6\times 0.101000111_{2}+\mu)\times 2^{9-6}$
        $=\text{Ent}(101000.111_{2}+\mu)\times 2^{3}$, donde $\mu$ ( media unidad en el sistema binario ) es $0.1_{2}$ ya que esto a su vez es igual a $0.5_{10}$
        $=\text{Ent}(101000.111_{2}+.1_{2})\times 2^{3}$
        $=\text{Ent}(101001.011_{2})\times 2^{3}$
          $=101001_{2}\times 2^{3}$
            $=0.101001_{2}\times 2^6 \times 2^{3}$
              $=0.101001_{2}\times 2^{9}$
    Observación. Veamos esa cantidad en base $10$:
                $=(1\times 2^{-1}+1\times 2^{-3}+1\times 2^{-6})\times 2^{9}$
                  $=1\times 2^{8}+1\times 2^{6}+1\times 2^{3}$
                    $=256+64+8$
                      $=328$

    c)
    $4/3=1.\overline{3}_{10}=1.01010101\ldots_{2}=0.10101010\ldots_{2}\times 2^1$, luego $e=1$
    Entonces $0.10101010\ldots_{2}\times 2^1 \approx $
      $\approx \mathcal{R}(0.10101010\ldots_{2};6)=$
        $=\text{Ent}(2^6\times 0.10101010\ldots_{2}+\mu)\times 2^{1-6}$, donde $\mu$ ( media unidad en el sistema $b=2$) es $\mu=.1_{2}=2^{-1}=0.5_{10}$; y, siendo $e=1$ y $n=6$, el exponente $e-n=1-6=-5$
          $=\text{Ent}(101010.1010\ldots_{2}+.1_{2})\times 2^{-5}$
            $=\text{Ent}(101011.0010\ldots_{2})\times 2^{-5}$
              $=101011\ldots_{2}\times 2^{-5}$
                $=1.01011_{2}$
                  $=0.101011_{2}\times 2^1$
    Finalmente, tendremos en cuenta que $\mathcal{R}(-x)=-\mathcal{R}(x)$, con lo cual podemos escribir que
                    $-4/3 \approx \mathcal{R}(-4/3;6)=-\mathcal{R}(4/3;6)=-0.101011_{2}\times 2^1$
    $\square$
    -oOo-
    Referencias:
      [1] Moreno, C., Introducción al Cálculo Numérico, UNED, Madrid, 2011
      [2] Aubanell, A. et al., Útiles básicos de Cálculo Numérico, Labor, Barcelona, 1993
      [3] Demindovich, B.O.;Maron, I.A., C., Cálculo Numérico Fundamental, Paraninfo, Madrid, 1988

    lunes, 27 de septiembre de 2021

    ¿Qué es un grupo simple finito?¿Cómo se clasifican?

    Un grupo algebraico es un conjunto de elementos en el que se define una operación interna que cumple las siguiens propiedades: i) asociativa, ii) existencia de elemento neutro, iii) cada elemento del grupo tiene asociado un elemento opuesto con respecto de la operación definida (en el sentido de que dicho elemento operado con su opuesto es igual al elemento neutro); además, si se cumple la propiada conmutativa, diremos que el grupo en cuestión es abeliano (o conmutativo). Cuando el número de elementos de que consta el grupo es finito decimos que el número de elementos de que consta es finito. Pero, ¿a qué nos referimos cuando hablamos de grupos simples (además de finitos)?¿Cómo se clasifican?.

        Sabido es que todo número natural puede descomponerse de manera única en un conjunto de números naturales, más pequeños, llamados primos por no poder a su vez descomponerse en otros más sencillos; así que podemos ver a los números primos como los materiales primigenios de construcción de los números naturales. Tomando esta idea (véase [4]), ¿podrían ciertos grupos finitos, con determinadas características (véase [1]), llamados simples, descomponerse también en un conjunto de grupos más « sencillos »? Pues bien, la respuesta es sí. Los grupos simples, por tanto, son suceptibles de una clasificación (teorema de clasificación, véase [2]): ¿cuántos tipos de grupos simples finitos hay?.

    Desde 1955 los algebristas se lanzaron a estudiar las posibles estructuras de dichos grupos finitos simples, y esa tarea monumental fue completada, arduamente, en 2004. Gracias a este gran esfuerzo colectivo se sabe que todo grupo finito simple es: o bien cíclico, o bien alternante, o de una cierta clase de grupos de Lie (los grupos de Lie son de gran importancia en Física) — hay $18$ familias de infinitos de tales grupos (véase [1]) —; o bien es considerado « anómalo », por tratarse de alguno de los $27$ grupos que no encajan en dichas familias, razón por la cual reciben el nombre de grupos (simples finitos) esporádicos. Por cierto, se sabe que el grupo finito simple esporádico más grande tiene casi $10^{54}$ elementos, y por ello, se le llama el Monstruo (véase [3]).

    -oOo-
    Referencias:
      [1] Wikipedia, https://es.wikipedia.org/wiki/Grupo_simple
      [2] Wikipedia, https://es.wikipedia.org/wiki/Teorema_de_clasificación_de_grupos_simples
      [3] Wikipedia, https://es.wikipedia.org/wiki/Grupo_monstruo
      [4] Freiberger, M.; Thomas, R., Matemáticas. Cien conceptos, Librero, Madrid, 2020

    $\square$

    viernes, 24 de septiembre de 2021

    La técnica de marcaje y recaptura para estimar el número total de individuos de una población

        La técnica de marcaje y recaptura se suele emplear en ecología para estimar el número total de individuos, $N$, de una cierta especie que habitan en un área delimitada, y consiste en extraer una primera muestra de tamañó $n$, marcando con algún tipo de señal todos los individuos de la misma, liberando después a dichos individuos. Pasado un tiempo razonable, al objeto de que la población se redistribuya de manera homogénea, se extrae una segunda muestra de $m$ individuos, de los cuales, se espera que encontaremos entre ellos $m'$ individuos marcados (que ya formaban parte de la primera muestra). Entonces, teniendo en cuenta que la razón aritmética entre el número de individuos marcados y el número total de individuos en cada muestra debería ser aproximadamente constante, tandrá que cumplirse de manera aproximada la siguiente proporción:
    $\dfrac{m'}{m} \sim \dfrac{n}{N}$, y por tanto, el número total de individuos de dicha especie que se estima que hay en el área en la que realizamos el estudio es $N \sim \dfrac{n\,m}{m'}$

    Ejemplo del tipo que puede encontrarse en (Yates, 2020):   Queremos estimar el número de caracoles que hay en un jardín. Para ello, capturamos ( en una primera muestra ) 23 individuos ( $n=:23$ ) y los marcamos pegándoles una discreta etiqueta adhesiva en la concha antes de soltarlos. Unos días después, realizamos capturamos otro grupo de caracoles, esta vez fueron ($m=:18$), de los cuales $m'=:3$ tenían la marca que pusimos a los individuos de la primera muestra. Estimemos el número de caracoles, $N$, que hay en el jardín: como
    $\dfrac{3}{18} \sim \dfrac{23}{N}$, de donde se obtiene que el número estimado de caracoles que hay en el jardín es $N \sim \dfrac{23\cdot 18}{3} = 138$ individuos en total.
    -oOo-

    Referencias:
      [1] Yates, K., Los números de la vida, Blackie Books, 2020
      [2] Piñol, J.; Martínez-Vilalta, J., Ecología con números, Lynx, Barcelona, 2006

    $\square$

    Distribución de bolas (iguales) en urnas sabiendo que algunas de las urnas tienen que quedar vacías

    Continuando con los problemas de « bolas y urnas », ligados al patrón de combinaciones con repetición. El caso que se presenta ahora es similar al anterior, sin embargo, ahora fijaremos el número de urnas que deben quedar vacías al distribuir entre ellas un cierto número de bolas.

    ENUNCIADO.
      a) ¿De cuántas maneras es posible distribuir $n$ bolas iguales en $k$ urnas (identificables), de manera que $s$ cualesquiera de las urnas queden vacías ($s\le k$)?
      b) ¿De cuántas maneras es posible distribuir $n$ bolas iguales en $k$ urnas (identificables), de manera que $s$ determinadas urnas queden vacías ?


    SOLUCIÓN. En un artículo anterior se ha resuelto el problema básico de repartir $n$ bolas iguales en $k$ urnas, en el que se había justificado que la solución consiste en calcular el número de combinaciones con repetición de $n$ bolas elegidas en una gama de $k$ clases: $$\displaystyle \left(\binom{k}{n}\right):=\dfrac{(n+(k-1))!}{n!\,(n-k)!}=\binom{n+(k-1)}{n}=\binom{n+(k-1)}{k-1}$$
    a) Como $s$ urnas tienen que quedar vacías, ahora $k:=k-s$ en la solución del problema genérico, con lo cual tendremos $$\displaystyle \left(\binom{k-s}{n}\right)=\binom{n+((k-s)-1)}{(k-s)-1}=\binom{n+k-s-1}{k-s-1}\,\text{posibilidades}$$

    b) Si $s$ determinadas urnas del total de $k$ urnas ($s\ge k$) tienen que quedar vacías, el problema difiere el algo del del apartado anterior. Debemos contabilizar primero de cuántas manera podemos elegir esas $s$ urnas que deberán quedar vacías, y ello se puede hacer de $\displaystyle \binom{k}{s}=k$ maneras distintas. A continuación, razonaremos de la siguiente manera: como de las $k-s$ urnas restantes no deberá quedar ninguna vacía, procedamos a ubicar exactamente $1$ bola en cada una de ellas para poder garantizar tal cosa, y, a continuación, veamos de cuántas manera podemos distribuir las $n-(k-s)$ bolas que nos quedan entre las $k-s$ urnas que deberán contener al menos una bola: estableciendo pues $n:=n-(k-s)$ y $k:=k-s$ en la solución genérica de distribución de bolas iguales en urnas distintas, la solución a este problema de reparto entre las urnas no vacías es $$\displaystyle \left(\binom{k-s}{n-(k-s)}\right)=\binom{(n-(k-s))+(k-s)-1}{(k-s)-1}=\binom{n-1}{k-s}$$
    Por consiguiente, teniendo en cuenta además (como ya hemos dicho) las posibilidades que tenemos de elegir las $s$ urnas que han de quedar vacías, tendremos un total de $$\displaystyle \binom{k}{s}\cdot\binom{n-1}{k-s}\,\text{posibilidades}$$

    -oOo-

    Veamos un caso concreto: EJEMPLO. Supongamos que tenemos $n:=8$ bolas a distribuir en $k:=4$ urnas, de entre las cuales:
      (1) $s:=3$ urnas cualesquiera han de quedar vacías
      (2) $s:=3$ urnas prefijadas han de quedar vacías
    ¿De cuántas maneras se podrá hacer eso?


    SOLUCIÓN.
    Recordemos ahora que $n:=8$, $k:=4$ y $s:=3$, luego de las soluciones genéricas deducidas arriba, obtenemos los siguientes resultados:

      (1)             $\displaystyle \binom{8+4-3-1}{4-3-1}=\binom{8}{0}=1$ posibilidad

      (2)             $\displaystyle \binom{4}{3}\cdot \binom{8}{0}=4 \cdot 1=4$ posibilidades
    $\square$

    -oOo-

    Referencias:
      [1] Hernández, V.; Vélez, R.: Dados, monedas y urnas, UNED, Madrid, 1995

    Otro problema de distribución de bolas (iguales) en urnas

    Seguimos con los problemas de « bolas y urnas », ligados al patrón de combinaciones con repetición. Y, por supuesto, aprovecharemos lo que se ha estudiado ya con anterioridad.

    ENUNCIADO.
      a) ¿De cuántas maneras es posible distribuir $n$ bolas iguales en $k$ urnas (identificables), de manera que una de las urnas contenga exactamente $r$ bolas ($r\le n$)?
      b) ¿De cuántas maneras es posible distribuir $n$ bolas iguales en $k$ urnas (identificables), de manera que, elegida una determinada urna, ésta contenga exactamente $r$ bolas ($r\le n$)?


    SOLUCIÓN. En un artículo anterior se ha resuelto el problema básico de repartir $n$ bolas iguales en $k$ urnas, en el que se había justificado que la solución consiste en calcular el número de combinaciones con repetición de $n$ bolas elegidas en una gama de $k$ clases: $$\displaystyle \left(\binom{k}{n}\right):=\dfrac{(n+(k-1))!}{n!\,(n-k)!}=\binom{n+(k-1)}{n}=\binom{n+(k-1)}{k-1}$$
    a) Si una de las $k$ urnas (cualquiera de ellas) tiene que contener exactamente $r\le n$ bolas, debemos resolver el problema de repartir $n-r$ urnas en $k-1$ urnas, así que, en la solución básica tendremos que $n:=n-r$ y $k:=k-1$, con lo cual el número de posibilidades es $$\displaystyle \left(\binom{k-1}{n-r}\right)=\binom{(n-r)+((k-1)-1)}{(k-1)-1}=\binom{n-r+k-2}{k-2}$$

    b) Si una urna determinada de las $k$ urnas tiene que contener exactamente $r\le n$ bolas, el problema difiere el algo del del apartado anterior. Debemos contabilizar primero de cuántas manera podemos elegir la urna que contiene exactamente $r$ bolas, y ello se puede hacer de $\displaystyle \binom{k}{1}=k$ maneras. A continuación, razonaremos de la siguiente manera: por cada una de esas $k$ posibilidades, sabemos que existen (por la solución encontrada en el apartado anterior) otras tantas $\displaystyle \binom{n-r+k-2}{k-2}$ maneras de distribuir las $n-r$ bolas en las restantes $k-1$ urnas. Finalmente, por tanto, tendremos un total de $$\displaystyle \binom{k}{1}\displaystyle \binom{n-r+k-2}{k-2}=k\,\binom{n-r+k-2}{k-2}\,\text{posibilidades}$$

    -oOo-

    Veamos un caso concreto: EJEMPLO. Supongamos que tenemos $n:=8$ bolas a distribuir en $k:=4$ urnas, de entre las cuales:
      (1) en una de ellas (una cualquiera) deberá haber $r:=3$ bolas
      (2) en una determinada urna (prefijada) deberá haber $r$ bolas
    ¿De cuántas maneras se podrá hacer eso?


    SOLUCIÓN.
    Recordemos ahora que $n:=8$, $k:=4$ y $r:=3$, luego de las soluciones genéricas deducidas arriba, obtenemos los siguientes resultados:

      (1)             $\displaystyle \binom{8-3+4-2}{4-2}=\binom{7}{2}=6$ posibilidades

      (2)             $\displaystyle \binom{4}{1}\cdot \binom{8-3+4-2}{4-2}=4 \cdot 6=24$ posibilidades
    $\square$

    -oOo-

    Referencias:
      [1] Hernández, V.; Vélez, R.: Dados, monedas y urnas, UNED, Madrid, 1995

    jueves, 23 de septiembre de 2021

    Del problema de contar el número de maneras de distribuir n bolas iguales entre k urnas identificables (n mayor o igual que k) — de forma que no quede ninguna urna vacía — al problema de contar « rachas »

    Nos vamos a plantear ahora un problema que encaja en el patrón de las combinaciones con repetición: el de distribuir un cierto número de bolas iguales en un conjunto de urnas, de tal modo que cada urna vaya a contener por lo menos una bola. Para ello, aprovecharemos lo que se ha estudiado ya con anterioridad. A su vez, este problema constituye, como veremos, un patrón para resolver el de las rachas que se obitienen al extraer bolas de manera sucesiva de una urna que contiene un cierto número de bolas blancas y un cierto números de bolas negras, hasta que ésta quede vacía.

    ENUNCIADO. ¿De cuántas maneras es posible distribuir $n$ bolas iguales en $k$ urnas (identificables), siendo $n\ge k$, de forma que no quede vacía ninguna urna?.

    SOLUCIÓN. En el artículo anterior se ha resuelto el problema de repartir $n$ bolas iguales en $k$ urnas, en el que se había justificado que la solución consiste en calcular el número de combinaciones con repetición de $n$ bolas elegidas en una gama de $k$ clases: $$\displaystyle \left(\binom{k}{n}\right):=\dfrac{(n+(k-1))!}{n!\,(n-k)!}=\binom{n+(k-1)}{n}=\binom{n+(k-1)}{k-1}$$ Sin embargo, ahora debemos garantizar que ninguna urna va a quedar vacía, por lo que empezaremos ubicando exactamente una bola en cada urna; y, a continuación, procederemos a distribuir las $n-k$ bolas restantes entre las $k$ urnas. Así, el problema es análogo al que ya tenemos resuelto, pero con $k$ bolas menos. Entonces, la solución al mismo es: $$\displaystyle \left(\binom{k}{n-k}\right)\overset{def}{=}\dfrac{(n-k+(k-1))!}{(n-k)!\,(n-k)!}=\dfrac{(n-1)!}{(n-k)!(n-1-(n-k)!}=\dfrac{(n-1)!}{(n-k)!(k-1)!}=\binom{n-1}{k-1}=\binom{n-1}{n-k}\quad \quad [1]$$
    -oOo-

    Veamos un caso concreto sobre esto: EJEMPLO 1. ¿De cuántas maneras podemos distribuir $5$ bolas iguales entre $3$ urnas, de manera que no quede ningua urna vacía?.

    SOLUCIÓN. Ahora, $n:=5$ y $k:=3$, luego podremos hacerlo de $$\displaystyle \left(\binom{3}{5-3}\right)=\left(\binom{3}{2}\right)=\binom{5-1}{3-1}=\binom{4}{2}=6\,\text{maneras}$$

    ***

    OBSERVACIÓN (El problema de las « rachas »):
      Una bonita aplicación —de la que se habla en (Hernández, 1995)— es el de contar las rachas al extraer de manera sucesiva de una urna que contiene, en un principio, $b$ bolas blacas y $n$ bolas negras, hasta que la que la urna queda vacía, obteniendo secuencias del tipo $BBNNNBBBNBNNNN\,\ldots$. ¿Cuántas rachas formadas de $k$ bolas blancas y $k+1$ bolas negras &mdsh; donde, lógicamente, $k$ deberá cumplir que $k\le a$ y $k+1\le b$ — es posible obtener?.

    SOLUCIÓN: Para resolver este problema podemos pensar en el problema patrón de distribuir un cierto número de bolas iguales en un conjunto de urnas, de manera que ninguna de las urnas quede vacía, esto es, de modo que, tras acabar la operación de ubicación de las bolas en las urnas, cada urna acabe conteniendo al menos una bola. Cada racha una de las $k$ rachas de bolas blancas puede asociarse a la distribución de $a$ bolas blancas en $k$ urnas (sin que ninguna de ellas quede vacía); sabemos, de [1] (haciendo $n:=a$) que esto puede hacerse de $\displaystyle \binom{a-1}{k-1}$ maneras, y contabilizando también las $k+1$ rachas de bolas negras intercaladas entre dos rachas de bolas blancas, vemos que, por cada una de esas posibilidades ($k$ rachas de bolas blancas), hay $\displaystyle \binom{b-1}{k+1)-1}=\binom{b-1}{k}$ (haciendo en [1] $n:=b$ y $k:=k+1$). Así pues, tendremos un total de $$\displaystyle \binom{a-1}{k-1}\cdot \binom{b-1}{k}\,\text{maneras de obtener}\,k\,\text{rachas de bolas blancas, y}\,k+1\,\text{rachas de bolas negras}$$ EJEMPLO 2. Consideremos una urna que contiene $8$ bolas, $3$ de las cuales son blancas y $5$ son negras. Nos dedicamos a extraer bolas, de manera sucesiva, hasta que la urna quede vacía. ¿De cuántas maneras pueden darse $2$ rachas de bolas blancas ($k:=2$), estando intercaladas por tanto (dichas rachas), entre $3$ rachas de bolas negras ($k+1=2+1=3$)?.

    SOLUCIÓN. Ahora, $a:=3$ y $b:=5$, y $k:=2$, luego tal cosa podrá suceder de $$\displaystyle \binom{3-1}{2-1}\cdot \binom{5-1}{2}=\binom{2}{1}\cdot \binom{4}{2}=2\cdot 6=12\,\text{maneras}$$
    $\square$

    -oOo-

    Referencias:
      [1] Hernández, V.; Vélez, R.: Dados, monedas y urnas, UNED, Madrid, 1995

    Combinaciones con repetición: un patrón para llegar a la solución del problema genérico

    En otros artículos hemos analizado problemas de variaciones, icluidos los que, en particular, se ajustan a esquemas de permutaciones con repetición. Ahora vamos a ver un problema de combinaciones, cuya solución, en particular, se ajusta a un problema de combinaciones con repetición, solución a la que llegaremos empleando el recurso consistente en realizar una representación equivalente en la que podamos utilizar la idea del cálculo de permutaciones con repetición.

    ENUNCIADO. Tres personas se reúnen en la terraza de un bar. En dicho bar solamente sirven dos tipos de bebidas: infusiones y cafés. Cada una de los tres personas pide una única bebida, una infusión o bien un café. ¿Cuántos pedidos pueden realizar?.

    SOLUCIÓN. Podemos recurrir a representar las configuraciones o repartos utizando únicamente dos símbolos: el símbolo 'x' para designar la elección efectiva de una de las dos bebida por parte de cada una de las tres personas, y el símbolo '|' para separar los dos compartimentos separadores en la representación de las tres celdas dispuestas en hilera necesarias asociadas a cada tipo de bebida. Así, el problema se reduce a permutar $2-1$ símbolos '|' y $3$ símbolos 'x'. Por tanto, la solución (el número de repartos posibles) es $\displaystyle \dfrac{3+(2-1))!}{3!\cdot (2-1)!}=\dfrac{4!}{6\cdot 1}=4$.

    Nota: Denominamos combinaciones con repetición (de $n$ objetos en $k$ clases) al número de $k$-combinaciones con repetición tomadas de un conjunto con $n$ elementos (o número de formas en que se puede extraer un multiconjunto con $k$ elementos de un conjunto con $n$ elementos), y escribimos $\displaystyle CR_{k,n}:=\dfrac{n+(k-1))!}{n!\cdot (k-1)!}=\binom{n+k-1}{k-1}=\binom{n+k-1}{n}$, lo cual también puede designarse de la forma $\displaystyle \left(\binom{k}{n}\right)$. En este problema en concreto, $n:=3$ y $k:=2$.

    ***

    Como problema genérico/patrón, análogo al que acabamos de tratar, puede servirnos el siguiente: el de distribuir/ubicar $n$ bolas idénticas en $k$ urnas perfectamente identificables: la solución es $\displaystyle \left(\binom{k}{n}\right)$.
    $\square$

    -oOo-

    Referencias:
      [1] Hernández, V.; Vélez, R., Dados, monedas y urnas, UNED, Madrid, 1995
      [2] Grimaldi, R.P., Matemáticas. Discreta y combinatoria, Addison-Wesley Iberoamericana, 1989

    miércoles, 22 de septiembre de 2021

    Matrices y submatrices

    Consideremos una matriz $m \times n$ ( $m$ filas y $n$ columnas ). Sin pérdida de generalidad, pongamos que $m:=3$ y $n:=4$ $$A=\begin{pmatrix}a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34}\end{pmatrix}$$ a la cual le corresponde los siguientes conjuntos de índices de filas y columnas, respectivamente: $I=\{1,2,3,4\}$ y $J=\{1,2,3,4\}$. Pues bien, podemos referirnos a una cierta submatriz $B$ de $A$ seleccionando su subconjunto de índices de fila $I_B$ y un subconjunto de índices de columna $J_B$; pongamos que $I_B=\{2,3\}$ y $J_B=\{3,4,\}$, entendiendo dicha submatriz como una matriz de tamaño $(3-2) \times (4-2)$, que, concretamente es $$B\overset{.}{=}A[I_B;J_B]=A[\{2,3\};\{3,4\}]=\begin{pmatrix}a_{23} & a_{24} \\ a_{33} & a_{34} \end{pmatrix}$$ Diremos que una submatriz $B$ de una matriz $A$ es principal si eliminamos las filas y columnas de igual índice, esto es $I_B=J_B$, y lo abreviaremos con la notación $A[I_B]$. Así, por ejemplo, si eliminamos la primera fila y la primera columna, obtenemos la matriz principal $A[\{1\}]=\begin{pmatrix}a_{22} & a_{23} & a_{24} \\ a_{32} & a_{33} & a_{34} \end{pmatrix}$

    Por menores complementarios de una matriz $A_{m \times n}$ nos referimos a los determinantes de las submatrices cuadradas, que obtengamos al eliminar una o más de las filas o columnas de la matriz dada.

    -oOo-
    Matrices cuadradas de orden $m$

    Si en una matriz cuadrada de orden $m$ seleccionamos las filas y columnas $I=J=\{1,\ldots,k\}$ ( con $k\le m$ ), obtenemos una matriz principal superior; y si seleccionamos las filas y columnas con $I=J=\{k,\ldots,m\}$ obtenemos una matriz principal inferior.
    Así, para una matriz $B=\begin{pmatrix}b_{11} & b_{12} & b_{13} \\ b_{21} & b_{22} & b_{23} \\ b_{31} & b_{32} & b_{33} \end{pmatrix}$, hay tres submatrices principales superiores: $B[\{1\}]=(b_{11})$, $B[\{1,2\}]=\begin{pmatrix}b_{11} & b_{12} \\ b_{21} & b_{22} \end{pmatrix}$ y $B[\{1,2,3\}]=B$.

    Y también tres matrices principales inferiores: $B[\{3\}]=(b_{33})$, $B[\{2,3\}]=\begin{pmatrix}b_{22} & b_{23} \\ b_{32} & b_{33} \end{pmatrix}$ y $B[\{1,2,3\}]=B$

    Si se elimina una sola fila y una sola columna, los menores complementarios que así se obtienen se denominan primeros menores de dicha matriz cuadrada, y se necesitan para encontrar la matriz de cofactores, la cual es útil para calcular el determinante y la inversa de matrices cuadradas. Además, en el caso de que la submatriz cuadrada formada sea una submatriz principal, los correspondientes primeros menores se denominan menores principales.


    -oOo-
    Nota. Los determinantes de las matrices principales superiores/inferiores se denominan menores principales superiores/inferiores.

    Al eleminar la fila $i$ y la columna $j$ de una matriz cuadrada $A_{m \times m}$ obtenemos el menor complementario que suele notarse de la forma $M_{ij}$; o, como también suele decirse, el $(i,j)$-ésimo menor complementario de $A$ ) y que, lógicamente, es de orden $m-1$. Dicho menor puede entenderse como el que resulta de eliminar la fila y la columna a las que pertenece el elemento $a_{ij}$ de la matriz $A$. Recordemos que en el caso de obtener un cierto menor eliminando una única fila y una única columna, hablamos de primeros menores, por lo que si se obtienen eliminando dos filas y dos columnas, los llamaremos segundos menores, etcétera.$\square$