domingo, 3 de mayo de 2015

Algoritmo babilónico para calcular una raiz cuadrada. ( Artículo escrito en catalán )

Hi ha diversos algorismes per calcular l'arrel quadrada d'un nombre real positiu; un d'ells, és el conegut com algorisme babilònic. L'algorisme babilònic és especialment interessant perquè es fonamenta en una noció geomètrica senzilla: la longitud del costat d'un quadrat és igual a l'arrel quadrada del valor de l'àrea del quadrat. [ Observació: en aquest article parlarem tan sols del valor positiu de l'arrel quadrada ].

Per exemple, és clar que l'arrel quadrada d'un nombre quadrat, com ara 4 (valor de l'àrea), és igual a 2 (valor de lna longitud del costat), perquè 2·2=4 ('àrea d'un quadrat es calcula multiplicant la longitud del costat per si mateixa).

Si el radicand r no és un nombre quadrat, llavors caldrà imaginar un rectangle l'àrea, de costats a i b, l'àrea del qual sigui igual a r, és a dir, a·b=r. Evidentment, hi ha vàries possibilitats per escollir a i b, això és evident, però no és rellevant com s'escull a i b. Fet això, cal redefinir les dimensions d'aquest rectangle per tal que, conservant l'àrea, s'apropi a un quadrat , de tal manera que les la diferència entre les longituds dels dos costats desiguals sigui més petita; això ho farem de la manera següent:
$a \leftarrow \dfrac{a+b}{2}$
i
$b \leftarrow \dfrac{r}{a}$
Continuarem aquest procés fins que la diferència entre els valors de $a$ i de $b$ sigui tan petit com vulguem, d'acord amb la precisió amb què desitgem fer el càlcul de l'arrel quadrada. Llavors, complirà
$\sqrt{r}\approx a$

Exemple:
Considerem el radical $\sqrt{13}$. Com que $13$ no és un nombre quadrat, cal anar fent el que hem exposat:
--------------------------------------------------------
Iteració número 1: $a =4 \quad \text{i} \quad b=13/4=3,25$
--------------------------------------------------------
Iteració número 2: $a=\dfrac{4+3,25}{2}=3,625 \quad \text{i} \quad b=\dfrac{13}{3,625}\approx 3,5862$
--------------------------------------------------------
Iteració número 3: $a=\dfrac{4+3,25}{2}=3,625 \quad \text{i} \quad b=\dfrac{13}{3,625}\approx 3,5862$
--------------------------------------------------------
Iteració número 4: $a=\dfrac{3,625+3,5862}{2}=3,6056 \quad \text{i} \quad b=\dfrac{13}{3,6056}\approx 3,6055$
--------------------------------------------------------
Iteració número 5: $a=\dfrac{3,6056+3,6055}{2}\approx 3,6056 \quad \text{i} \quad b=\dfrac{13}{3,6056}\approx 3,6056$
(...)

Resultat:
Com podem veure a dalt, les longituds dels dos costats s'igualen a partir de la cinquena iteració, coincidint amb tres xifres decimals exactes pel cap baix; és a dir,
                        $\sqrt{13}\approx 3,6056$

Si desitgem més precisió, caldrà fer els càlculs prenent més xifres significatives; fent, és clar, més interacions.

$\square$


Aquest algorisme es pot implementar fent ús d'un ordinador o bé d'una calculadora programable, escrivint un programa. Hi ha molts llenguatges de programació adequats (C, Java, el llenguatge que incorpora MAXIMA, etcètera; per això, a continuació, donarem un esbós del programa, escrivint-lo en una mena de pseudocodi:

        // Càlcul de $\sqrt{r}$
  COMENÇA
        // entrada de dades
    radicand:=r // entrada del valor del radicand (volem calcular l'arrel quadrada d'aquest nombre)
    a:=a_0; // entrada de la longitud d'un dels costats del rectangle (a_0 < r)     b:=r/a; // longitud d'un dels costats del rectangle
    precisió:=p; // valor més petit de la diferència (en valor absolut) entre a i b
        // càlcul iteratiu
    FES MENTRE abs(a-b)>precisió
        a:=(a+b)/2;
        b:=r/a;
    FI DE FES
        // sortida
    ESCRIU "arrel de r=",a
  ACABA

$\square$


[nota del autor]

Cálculo del máximo común divisor mediante el algoritmo de las diferencias. ( Artículo escrito en catalán )

    Una manera molt natural de calcular el màxim comú divisor de dos nombres naturals a i b consisteix a prendre al més petit de tots dos com a quantia patró i mirar si comprèn exactament al més gran; si això és així, el màxim comú divisor és igual al més petit de tots dos i, en cas contrari, cal iterar aquest operació de resta, canviant el minuend pel resultat i mantenint el subtrahend si aquesta diferència dóna un nombre més gran que aquest (altrament, cal intercanviar el minuend pel subtrahend). Això es repeteix fins obtenir una diferència igual a zero. Llavors, lògicament, el màxim comú divisor de tots dos nombres ( a i b ) és igual al valor del minuend (que és igual al nou subtrahend). Escriurem aquest algorisme d'una forma més polida:

procediment mcd_diferencies(a,b);
comença
  defineix m:enter; // variable auxiliar
    fes
        {
          si a < b llavors 
             {m:=a, a:=b; b:=m}
          a:=a-b;
        }
    mentre |a-b|> 0
  escriu "mcd(a,b)=",a;
acaba.

Exemple:
    Calculeum el màxim comú divisor dels nombres naturals 15 i 12 fent ús de l'algorisme de les diferències:
------------------------
pas número 1:
    $a=15$ i $b=12$     (a és més gran que b )
per tant fem
    $a \leftarrow 15-12$     (a=3, b=12)
i com que |a-b| > 0, continuem
------------------------
pas número 2:
    $a=3$ i $b=12$     ( a és més petit que b )
per tant fem
    $m \leftarrow 3$, $a \leftarrow 12$, $b \leftarrow 3$
    $a \leftarrow 12-3$     (a=9, b=12)
i com que |a-b| > 0, continuem
------------------------
pas número 3:
    $a=9$ i $b=12$     ( a és més petit que b)
per tant fem
    $m \leftarrow 9$, $a \leftarrow 12$, $b \leftarrow 9$
    $a \leftarrow 12-9$     (a=3, b=9)
i com que |a-b| > 0, continuem
------------------------
pas número 4:
    $a=3$ i $b=9$     ( a és més petit que b)
per tant fem
    $m \leftarrow 3$, $a \leftarrow 9$, $b \leftarrow 3$
    $a \leftarrow 9-3$     (a=6, b=3)
i com que |a-b| > 0, continuem
------------------------
pas número 5:
    $a=6$ i $b=3$     ( a és més gran que b)
per tant fem
    $a \leftarrow 6-3$     (a=3, b=3)
i com que |a-b| = 0, concloem que mcd(15,12) = 3 i acabem.
$\square$


Observació:     Aquí s'ha implementat l'algorisme a mà perquè els nombres de l'exemple són petits. Si els nombres fossin més grans convindria fer ús d'algun llenguatge de programació per poder implementar de manera automàtica l'algorisme en un ordinador o en una calculadora programable. Suggereixo MAXIMA.

[nota del autor]

lunes, 27 de abril de 2015

Calcular la suma de los términos consecutivos ... ( Artículo escrito en catalán )

Enunciat:
Sabent que
      $1^2+2^2+3^2+\ldots+25^2=5525$
esbrineu el valor de la suma següent:
      $2^2+4^2+6^2+\ldots+50^2$


Solució:
Observem que en els termes de la suma hi ha el següent patró (regularitat):
    $2^2=4=4\cdot 1=4 \cdot 1^2$
    $4^2=16=4 \cdot 4= 4\cdot 2^2$
    $6^2=36=4 \cdot 9= 4\cdot 3^2$
    $8^2=64=4 \cdot 16= 4\cdot 4^2$
    $10^2=100=4 \cdot 25= 4\cdot 5^2$
    $\ldots$
    $50^2=\ldots=4\cdot 25^2$
és a dir
      $2^2+4^2+6^2+\ldots+50^2$ és igual a
        $4\cdot 1^2+4\cdot 2^2+4\cdot 3^2+4\cdot 4^2+\cdots+4\cdot 25^2$
          $=4\,\big(1^2+2^2+3^2+4^2+\cdots+25^2\big)$
          $=4\cdot 5525$
          $=22100$
$\square$

[nota del autor]

Un algoritmo para calcular el máximo común divisor ... ( Artículo escrito en catalán )

    En un altre article exposava l'algorisme de les diferències successives per trobar el màxim comú divisor de dos nombres naturals, un algorisme molt natural i ben conegut pels antics matemàtics grecs. Ara, n'exposaré un altre de molt eficaç per trobar també el màxim comú divisor de dos nombres naturals: l'algorisme dit d'Euclides. Aquest algorisme està emparentat amb l'anterior pel fet que també es fonamenta en la idea de fer ús d'una quantia patró (el màxim comú divisor) amb la qual cobrir exactament dues magnituds (els dos nombres donats), però fent ús, ara, del teorema de la divisió euclidiana per controlar el valor del residu de les divisions, quantitat que, quan és nul·la, ens indica l'assoliment de la mesura patró, que serà el valor del divisor en el pas que toqui. A sota, escric aquest algorisme d'una forma més acurada:

procediment mcd_euclides(a,b);
comença
  defineix D:enter; // variable auxiliar que representa el dividend
  defineix d:enter; // variable auxiliar que representa el divisor
  defineix r:enter; // variable auxiliar que representa el residu 
  si a < b
    {
     { 
       D:=a;
       d:=b; 
     }
    altrament
     {
       D:=b;
       d:=a; 
     }
    }
    fes
        {
          r:=residu(D div d);
          si r < 0  llavors 
             {
               D:=d;
               d:=r;
             }
        }
    mentre r > 0
  escriu "mcd(a,b)=",d;
acaba.

Exemple:
    Calculeum el màxim comú divisor dels nombres naturals 15 i 12 fent ús de l'algorisme de les diferències:
------------------------
pas número 1:
    $D \leftarrow 15$ i $d \leftarrow 12$    
i obtenim
    $r=3$ ( el valor del residu de la divisió )
i com que r > 0, continuem
------------------------
pas número 2:
    $D \leftarrow 12$ i $d \leftarrow 3$     ( assignem al nou dividend l'antic divisor i al nou divisor l'antic residu )
i obtenim
    $r=0$ ( el valor del residu de la divisió )
i, per tant, concloem que mcd(15,12)=3     (ja que aquest és el valor de $d$ en el pas que $r=0$ ), i acabem.

$\square$


Observació:     Aquí s'ha implementat l'algorisme a mà perquè els nombres de l'exemple són petits. Si els nombres fossin més grans convindria fer ús d'algun llenguatge de programació per poder implementar de manera automàtica l'algorisme en un ordinador o en una calculadora programable. Suggereixo MAXIMA.

[nota del autor]

domingo, 26 de abril de 2015

Averiguar si las siguientes funciones son periódicas ... ( Artículo escrito en catalán )

Enunciat
Esbrineu si les següents funcions són periòdiques:
    a)   $g(x)=x\,\sin \,x$
    b)   $h(x)=\sin^{2} \,x$

Nota 1:  Recordem que una funció $f$ ( definida en $\mathbb{R}$ i amb valors en $\mathbb{R}$ ) és periòdica si, per a tot $x \in \text{D}_f$, existeix un nombre real $T \in \text{D}_{f} | f(x+T)=f(x)$.

Nota 2:  La funció sinus és periòdica, atès que $\sin \,x = \sin (x + T)$ amb període $T = 2\,\pi \; \text{rad}$.


Solució:
  a) Si $g$ és periòdica, de període $T$, s'ha de complir que $g(x+T)=g(x)$ però $g(x+T)=(x+T)\cdot \sin\,(x+T)=(x+T)\cdot \sin\,x \neq x\,\sin\,x$
Arribem, doncs, a la conclusió que $g$ no és una funció periòdica.

  b) Si $h$ és periòdica, de període $T$, s'ha de complir que $h(x+T)=h(x)$, i, efectivament,
  $h(x+T)=\sin^{2}{(x+T)}=\sin{(x+T)}\cdot \sin{(x+T)}$
      $=\sin\,x \cdot \sin\, x = \sin^{2}\,x = h(x)$
concloem que $h$ es una funció periòdica.
$\square$

[nota del autor]

Expresar la función dada como suma de una función simétrica ( par ) y de una función antisimétrica ( impar ) . ( Artículo escrito en catalán )

Enunciat:
Expresseu la funció $f(x)=3^{x}$ com a suma d'una funció simètrica i una funció antisimètrica.

Solució:
Recordem que una funció $f(x)$ ( ha de ser contínua, però ) és simètrica si $f(x)=f(-x)$, i, és antisimètrica si $f(x)=-f(-x)$. Existeixen, però, funcions que no són simètriques ni antisimètriques.

Així, per exemple, la funció donada no és ni simètrica ( $ f(-x) = 3^{-x} \neq f(x)$ ) ni antisimètrica ( $ f(-x)=3^{-x} \neq - f(x)$ ).

No obstant això, és evident que qualsevol funció $f(x)$ sempre es pot escriure de la següent manera
    $f(x)=\dfrac{f(x)+f(-x)}{2}+\dfrac{f(x)-f(-x)}{2} \quad \quad (1)$
Per altra banda, sabem que (propietat):
    a) la funció $f(x)+f(-x)$ és una funció simètrica, que anomenarem $s(x)$
    b) la funció $f(x)-f(-x)$ és una funció antisimètrica, que anomenarem $a(x)$
Llavors, podrem escriure (1) de la forma
    $f(x)=\dfrac{s(x)+a(x)}{2}$
és a dir
      $f(x)=\dfrac{s(x)}{2}+\dfrac{a(x)}{2}$
i donat que
    $s(x)=3^{x}+3^{-x}$ i $a(x)=e^{x}-e^{-x}$
arribem a
      $f(x)=\dfrac{3^{x}+3^{-x}}{2}+\dfrac{3^{x}-3^{-x}}{2}$
que és la suma de d'una f. simètrica (primer sumand) i d'una f. antisimètrica (segon sumand), tal com s'ha demanat.
$\square$

[nota del autor]

viernes, 24 de abril de 2015

Determinar el dominio de definición de la función ...

Enunciado:
Encontrar el dominio de definición de la función definida de $\mathbb{R}$ en $\mathbb{R}$:
      $f(x)=\dfrac{1}{x-\left[x\right]}$
donde $\left[x\right]$ representa la función parte entera de $x$.

Solución:
El dominio de definición de esta función, que es una f. racional, está formado por todos los números reales que no anulan el denominador de la misma; como los únicos números reales lo anulan son los números enteros
$\mathbb{Z}$, el domini de definición pedido es $D_f=\mathbb{R}-\mathbb{Z}$
$\square$

[nota del autor]